From 4155dda36ff4f4710f45278b12b2ac070dd76c97 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Thu, 6 Jun 2024 20:18:23 +0300 Subject: [PATCH 1/9] Support Cairo 1 --- .tool-versions | 2 +- runner/src/main.rs | 12 +- src/air/layouts/recursive/public_input.cairo | 115 ++++++++++--------- src/air/public_input.cairo | 8 +- src/lib.cairo | 15 +-- 5 files changed, 83 insertions(+), 69 deletions(-) diff --git a/.tool-versions b/.tool-versions index de9f4ab17..2ae95d245 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -scarb nightly-2024-03-16 +scarb 2.6.3 starknet-foundry 0.20.1 diff --git a/runner/src/main.rs b/runner/src/main.rs index 414b0ecdd..1a4ff0cfd 100644 --- a/runner/src/main.rs +++ b/runner/src/main.rs @@ -16,7 +16,9 @@ use std::{ #[command(author, version, about, long_about = None)] struct Cli { /// Path to compiled sierra file - target: String, + program: String, + /// Cairo version + cairo_version: u8, } fn main() -> anyhow::Result<()> { @@ -25,7 +27,6 @@ fn main() -> anyhow::Result<()> { stdin().read_to_string(&mut input)?; let parsed = parse(input)?; - let target = cli.target; let function = "main"; let config: VecFelt252 = serde_json::from_str(&parsed.config.to_string()).unwrap(); @@ -45,7 +46,7 @@ fn main() -> anyhow::Result<()> { println!("proof size: {} felts", proof.len()); let sierra_program = - serde_json::from_str::(&fs::read_to_string(target)?)?.into_v1()?; + serde_json::from_str::(&fs::read_to_string(cli.program)?)?.into_v1()?; let runner = SierraCasmRunner::new( sierra_program.program.clone(), @@ -54,11 +55,14 @@ fn main() -> anyhow::Result<()> { Some(ProfilingInfoCollectionConfig::default()), ) .unwrap(); + let func = runner.find_function(function).unwrap(); + let proof_arg = Arg::Array(proof.into_iter().map(Arg::Value).collect_vec()); + let cairo_version_arg = Arg::Value(cli.cairo_version.into()); let result = runner .run_function_with_starknet_context( func, - &[Arg::Array(proof.into_iter().map(Arg::Value).collect_vec())], + &[proof_arg, cairo_version_arg], Some(u32::MAX as usize), Default::default(), ) diff --git a/src/air/layouts/recursive/public_input.cairo b/src/air/layouts/recursive/public_input.cairo index 454ca9145..ad8e71750 100644 --- a/src/air/layouts/recursive/public_input.cairo +++ b/src/air/layouts/recursive/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{CairoVersion, PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -19,7 +19,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl RecursivePublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput) -> (felt252, felt252) { + fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; @@ -39,63 +39,66 @@ impl RecursivePublicInputImpl of PublicInputTrait { let builtins = get_builtins(); let memory = self.main_page; + let offset = match cairo_version { + CairoVersion::Cairo0 => 0, + CairoVersion::Cairo1 => 1, + }; + // 1. Program segment assert(initial_pc == INITIAL_PC, 'Invalid initial_pc'); - assert(final_pc == INITIAL_PC + 4, 'Invalid final_pc'); + assert(final_pc == INITIAL_PC + 4 + offset, 'Invalid final_pc'); let mut memory_index: usize = 0; - let program_end_pc = initial_fp - 2; + let program_end_pc = initial_fp - (2 + offset); let program_len = program_end_pc - initial_pc; let program = memory .extract_range( initial_pc.try_into().unwrap(), program_len.try_into().unwrap(), ref memory_index ); - assert( - *program[0] == 0x40780017fff7fff, 'Invalid program' - ); // Instruction: ap += N_BUILTINS. - assert(*program[1] == builtins.len().into(), 'Invalid program'); - assert(*program[2] == 0x1104800180018000, 'Invalid program'); // Instruction: call rel ?. - assert(*program[4] == 0x10780017fff7fff, 'Invalid program'); // Instruction: jmp rel 0. - assert(*program[5] == 0x0, 'Invalid program'); - - let program_hash = poseidon_hash_span(program); - - // 2. Execution segment - // 2.1 Initial_fp, initial_pc - let fp2 = *memory.at(memory_index); - assert(fp2.address == initial_fp - 2, 'Invalid fp2 addr'); - assert(fp2.value == initial_fp, 'Invalid fp2 val'); - - let fp1 = *memory.at(memory_index + 1); - assert(fp1.address == initial_fp - 1, 'Invalid fp1 addr'); - assert(fp1.value == 0, 'Invalid fp1 val'); - memory_index += 2; - - // 2.2 Main arguments and return values - let mut begin_addresses = ArrayTrait::new(); - let mut stop_addresses = ArrayTrait::new(); - let mut i = 0; - let builtins_len = builtins.len(); - loop { - if i == builtins_len { - break; - } - - begin_addresses.append(*public_segments.at(2 + i).begin_addr); - stop_addresses.append(*public_segments.at(2 + i).stop_ptr); - - i += 1; - }; - memory.verify_stack(initial_ap, begin_addresses.span(), builtins_len, ref memory_index); - memory - .verify_stack( - final_ap - builtins_len.into(), - stop_addresses.span(), - builtins_len, - ref memory_index - ); + if cairo_version == CairoVersion::Cairo0 { + // Instruction: ap += N_BUILTINS. + assert(*program[0] == 0x40780017fff7fff, 'Invalid program'); + assert(*program[1] == builtins.len().into(), 'Invalid program'); + // Instruction: call rel ?. + assert(*program[2] == 0x1104800180018000, 'Invalid program'); + // Instruction: jmp rel 0. + assert(*program[4] == 0x10780017fff7fff, 'Invalid program'); + assert(*program[5] == 0x0, 'Invalid program'); + + // 2. Execution segment + // 2.1 Initial_fp, initial_pc + let fp2 = *memory.at(memory_index); + assert(fp2.address == initial_fp - 2, 'Invalid fp2 addr'); + assert(fp2.value == initial_fp, 'Invalid fp2 val'); + + let fp1 = *memory.at(memory_index + 1); + assert(fp1.address == initial_fp - 1, 'Invalid fp1 addr'); + assert(fp1.value == 0, 'Invalid fp1 val'); + memory_index += 2; + + // 2.2 Main arguments and return values + let mut begin_addresses = array![]; + let mut stop_addresses = array![]; + let mut i = 0; + let builtins_len = builtins.len(); + while i != builtins_len { + let segment = *public_segments.at(2 + i); + begin_addresses.append(segment.begin_addr); + stop_addresses.append(segment.stop_ptr); + i += 1; + }; + + memory.verify_stack(initial_ap, begin_addresses.span(), builtins_len, ref memory_index); + memory + .verify_stack( + final_ap - builtins_len.into(), + stop_addresses.span(), + builtins_len, + ref memory_index + ); + } // 3. Output segment let output_len = output_stop - output_start; @@ -103,13 +106,17 @@ impl RecursivePublicInputImpl of PublicInputTrait { .extract_range( output_start.try_into().unwrap(), output_len.try_into().unwrap(), ref memory_index ); - let output_hash = poseidon_hash_span(output); - // Check main page len - assert( - *memory.at(memory_index - 1) == *self.main_page.at(self.main_page.len() - 1), - 'Invalid main page len' - ); + if cairo_version == CairoVersion::Cairo0 { + // Check main page len + assert( + *memory.at(memory_index - 1) == *memory.at(memory.len() - 1), + 'Invalid main page len' + ); + } + + let program_hash = poseidon_hash_span(program); + let output_hash = poseidon_hash_span(output); (program_hash, output_hash) } diff --git a/src/air/public_input.cairo b/src/air/public_input.cairo index 8382fd39f..92154aa90 100644 --- a/src/air/public_input.cairo +++ b/src/air/public_input.cairo @@ -34,8 +34,14 @@ struct PublicInput { continuous_page_headers: Array } +#[derive(Drop, Copy, PartialEq, Serde)] +enum CairoVersion { + Cairo0, + Cairo1, +} + trait PublicInputTrait { - fn verify(self: @PublicInput) -> (felt252, felt252); + fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252); fn validate(self: @PublicInput, stark_domains: @StarkDomains); } diff --git a/src/lib.cairo b/src/lib.cairo index 6545a1b82..4bff68054 100644 --- a/src/lib.cairo +++ b/src/lib.cairo @@ -19,7 +19,8 @@ mod tests; // === RECURSIVE END === use cairo_verifier::{ - deserialization::stark::StarkProofWithSerde, stark::{StarkProof, StarkProofImpl}, + air::public_input::CairoVersion, deserialization::stark::StarkProofWithSerde, + stark::{StarkProof, StarkProofImpl}, // === DEX BEGIN === // air::layouts::dex::public_input::DexPublicInputImpl as PublicInputImpl, // === DEX END === @@ -42,16 +43,12 @@ use cairo_verifier::{ const SECURITY_BITS: felt252 = 50; -fn main(serialized_proof: Array) -> (felt252, felt252) { - let mut serialized_proof_span = serialized_proof.span(); - let stark_proof: StarkProof = Serde::< - StarkProofWithSerde - >::deserialize(ref serialized_proof_span) - .unwrap() - .into(); +fn main(mut serialized: Span, cairo_version: CairoVersion) -> (felt252, felt252) { + let stark_proof_serde = Serde::::deserialize(ref serialized).unwrap(); + let stark_proof: StarkProof = stark_proof_serde.into(); stark_proof.verify(SECURITY_BITS); - let (program_hash, output_hash) = stark_proof.public_input.verify(); + let (program_hash, output_hash) = stark_proof.public_input.verify(cairo_version); (program_hash, output_hash) } From b0c504753a559727c19e894af8452614272607d4 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Fri, 7 Jun 2024 09:11:49 +0300 Subject: [PATCH 2/9] Add CairoVersion to FactRegistry --- fact_registry/src/lib.cairo | 30 ++++++++++++++++++------------ fact_registry/src/verifier.cairo | 14 +++++++++----- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/fact_registry/src/lib.cairo b/fact_registry/src/lib.cairo index 18f6cb4ee..f1155b1c7 100644 --- a/fact_registry/src/lib.cairo +++ b/fact_registry/src/lib.cairo @@ -1,11 +1,13 @@ mod verifier; -use cairo_verifier::StarkProofWithSerde; +use cairo_verifier::{StarkProofWithSerde, CairoVersion}; use starknet::ContractAddress; #[starknet::interface] trait IFactRegistry { - fn verify_and_register_fact(ref self: TContractState, stark_proof: StarkProofWithSerde); + fn verify_and_register_fact( + ref self: TContractState, stark_proof: StarkProofWithSerde, cairo_version: CairoVersion + ); fn verify_and_register_fact_from_contract( ref self: TContractState, contract_address: ContractAddress ); @@ -14,18 +16,18 @@ trait IFactRegistry { #[starknet::interface] trait ISmartProof { - fn get_proof(self: @TContractState) -> Array; + fn get_proof(self: @TContractState) -> (Array, CairoVersion); } #[starknet::contract] mod FactRegistry { - use cairo_verifier::StarkProofWithSerde; + use cairo_verifier::{StarkProofWithSerde, CairoVersion}; use starknet::ContractAddress; use core::{ poseidon::{Poseidon, PoseidonImpl, HashStateImpl}, keccak::keccak_u256s_be_inputs, starknet::event::EventEmitter }; - use fact_registry::{verifier::{CairoVerifier, ICairoVerifier, StarkProof}, IFactRegistry,}; + use fact_registry::{verifier::{CairoVerifier, ICairoVerifier, StarkProof}, IFactRegistry}; use super::{ISmartProofDispatcher, ISmartProofDispatcherTrait}; component!(path: CairoVerifier, storage: cairo_verifier, event: CairoVerifierEvent); @@ -53,19 +55,23 @@ mod FactRegistry { #[abi(embed_v0)] impl FactRegistryImpl of IFactRegistry { - fn verify_and_register_fact(ref self: ContractState, stark_proof: StarkProofWithSerde) { - let (program_hash, output_hash) = self.cairo_verifier.verify_proof(stark_proof.into()); + fn verify_and_register_fact( + ref self: ContractState, stark_proof: StarkProofWithSerde, cairo_version: CairoVersion + ) { + let (program_hash, output_hash) = self + .cairo_verifier + .verify_proof(stark_proof.into(), cairo_version); self._register_fact(program_hash, output_hash); } fn verify_and_register_fact_from_contract( ref self: ContractState, contract_address: ContractAddress ) { - let mut proof_array = ISmartProofDispatcher { contract_address }.get_proof().span(); - self - .verify_and_register_fact( - Serde::::deserialize(ref proof_array).unwrap() - ); + let (proof_array, cairo_version) = ISmartProofDispatcher { contract_address } + .get_proof(); + let mut proof_array = proof_array.span(); + let proof = Serde::::deserialize(ref proof_array).unwrap(); + self.verify_and_register_fact(proof, cairo_version); } fn is_valid(self: @ContractState, fact: felt252) -> bool { diff --git a/fact_registry/src/verifier.cairo b/fact_registry/src/verifier.cairo index 15638fa55..76e0d7e47 100644 --- a/fact_registry/src/verifier.cairo +++ b/fact_registry/src/verifier.cairo @@ -1,13 +1,15 @@ -use cairo_verifier::stark::StarkProof; +use cairo_verifier::{StarkProof, CairoVersion}; #[starknet::interface] trait ICairoVerifier { - fn verify_proof(ref self: TContractState, stark_proof: StarkProof) -> (felt252, felt252); + fn verify_proof( + ref self: TContractState, stark_proof: StarkProof, cairo_version: CairoVersion + ) -> (felt252, felt252); } #[starknet::component] mod CairoVerifier { - use cairo_verifier::{PublicInputImpl, stark::{StarkProof, StarkProofImpl}}; + use cairo_verifier::{CairoVersion, PublicInputImpl, stark::{StarkProof, StarkProofImpl}}; #[storage] struct Storage {} @@ -32,10 +34,12 @@ mod CairoVerifier { TContractState, +HasComponent > of super::ICairoVerifier> { fn verify_proof( - ref self: ComponentState, stark_proof: StarkProof + ref self: ComponentState, + stark_proof: StarkProof, + cairo_version: CairoVersion ) -> (felt252, felt252) { stark_proof.verify(SECURITY_BITS); - let (program_hash, output_hash) = stark_proof.public_input.verify(); + let (program_hash, output_hash) = stark_proof.public_input.verify(cairo_version); self.emit(ProofVerified { program_hash, output_hash }); (program_hash, output_hash) } From c7b8e5e0df779d3e2571fe2d9092eb36ecef1148 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Fri, 7 Jun 2024 09:26:57 +0300 Subject: [PATCH 3/9] Add CairoVersion to other layouts --- .../workflows/proof_verification_tests.yml | 36 +- .../recursive_cairo1/example_proof.json | 1423 +++++++++++++++++ src/air/layouts/dex/public_input.cairo | 4 +- .../public_input.cairo | 4 +- src/air/layouts/small/public_input.cairo | 4 +- src/air/layouts/starknet/public_input.cairo | 4 +- .../starknet_with_keccak/public_input.cairo | 4 +- 7 files changed, 1468 insertions(+), 11 deletions(-) create mode 100644 examples/proofs/recursive_cairo1/example_proof.json diff --git a/.github/workflows/proof_verification_tests.yml b/.github/workflows/proof_verification_tests.yml index 9c48ce1fd..36d3fe95a 100644 --- a/.github/workflows/proof_verification_tests.yml +++ b/.github/workflows/proof_verification_tests.yml @@ -44,4 +44,38 @@ jobs: run: scarb test - name: Run verification - run: cargo run --release --bin runner -- target/dev/cairo_verifier.sierra.json < examples/proofs/${{ matrix.layout }}/example_proof.json + run: cargo run --release --bin runner -- target/dev/cairo_verifier.sierra.json 0 < examples/proofs/${{ matrix.layout }}/example_proof.json + + verify-proof-cairo1: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Scarb + uses: software-mansion/setup-scarb@v1 + + - name: Setup Rust toolchain + uses: actions-rust-lang/setup-rust-toolchain@v1 + + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Configure layout + run: python configure.py -l recursive -s keccak + + - name: Build project + run: scarb build + + - name: Test project + run: scarb test + + - name: Run verification + run: cargo run --release --bin runner -- target/dev/cairo_verifier.sierra.json 1 < examples/proofs/recursive_cairo1/example_proof.json diff --git a/examples/proofs/recursive_cairo1/example_proof.json b/examples/proofs/recursive_cairo1/example_proof.json new file mode 100644 index 000000000..414f407b2 --- /dev/null +++ b/examples/proofs/recursive_cairo1/example_proof.json @@ -0,0 +1,1423 @@ +{ + "annotations": [ + "title cpu air Proof Protocol", + "", + "P->V[0:32]: /cpu air/STARK/Original/Commit on Trace: Commitment: Hash(0x48b0a11196ab4281994e8d2422070f6a0a56d4a454dbcbf5376d8037ba1a4cb)", + "V->P: /cpu air/STARK/Interaction: Interaction element #0: Field Element(0x442dde5ded564c671eb365c508390123d5144072fcd9ed3b5fb1b3a075c3967)", + "V->P: /cpu air/STARK/Interaction: Interaction element #1: Field Element(0x72ef92de8c1f28ffe09a06cac6317cbc814cb309df285f52fe3533db773fabf)", + "V->P: /cpu air/STARK/Interaction: Interaction element #2: Field Element(0x200c7a8ed67027cb63b04cc97a7d3e3fb436082bfb15d272c08282d5dd0ed34)", + "V->P: /cpu air/STARK/Interaction: Interaction element #3: Field Element(0x56dbb417c52dacc21e5e7bf880f3ff4c1a567dd817938eb239609b2718a0b7e)", + "V->P: /cpu air/STARK/Interaction: Interaction element #4: Field Element(0x538671c533ab5fce1d16b2c49358e5864887f91e44b72295902c1ea04b55247)", + "V->P: /cpu air/STARK/Interaction: Interaction element #5: Field Element(0x338ac17f0276aa9a6524d7a635fc7a42aafd53732837eb9850d689f2e719194)", + "P->V[32:64]: /cpu air/STARK/Interaction/Commit on Trace: Commitment: Hash(0x1575e31e86c01103b15150dcaa4881a3c4e299e571a04c5f61822f93ca61567)", + "V->P: /cpu air/STARK/Original: Constraint polynomial random element: Field Element(0x58967675e8346110f877882ffd61a5d515b0c80827e1407cce36b18df16c2b6)", + "P->V[64:96]: /cpu air/STARK/Out Of Domain Sampling/Commit on Trace: Commitment: Hash(0x74b4d10d395af8c02dc8cd3c9fa3a971da8c266e324e3d8588f2afe742634f8)", + "V->P: /cpu air/STARK/Out Of Domain Sampling/OODS values: Evaluation point: Field Element(0x4c2611e4895e54abae7f1d76b1b31e534401c513d65cc0502f05ad4a90715b8)", + "P->V[96:4416]: /cpu air/STARK/Out Of Domain Sampling/OODS values: : Field Elements(0x3de54f877d599f6f7ea12f0b81b8663dff6115261dc9de4cceccb2deee5ece7, 0x31b715dce18c98b88160e94c4c550b29ce2c88d5a8c8ea335765f685e21dc43, 0x2000ad244eba8c53f3ff619c133a2698abd4768e89d47daad005b5e3ccf04c1, 0x5e9d2a6767025dd7f4f750740994282def8955a8fa5887cb630633ad7567bd3, 0x42d7196f8f7a421c31302301ff264c8e60192c3559ec6e5f71a8ea820d44592, 0x24d934f42108e17c730ae3d0d00a3a84401d52a36efd74f339f439897099cb0, 0x44a00c08b68053b9fccd1657b0e58365333898fb921946cb8f98130a3b059, 0x6d1ba500e2a6538c66aebe0c4f77d386f51612d4105660d7f1e61bd2b454968, 0x6e2afca679f5a091184755df4a70fb2b6796cbe4a399b301726453ac8540ecd, 0x250d9c32db2b3363b9e77cdf1b004d7e8c750e351e8004661f8e2086d30e62, 0x5c1407d9f84d4361547d50efaf26a4f7f24cfb63556a48aa9d690257c714008, 0x266abf13b33a76b5f26564aff14d3407bccc10c6d90be772dff9ba8f561cec5, 0x85f5e929826b59f9c7747c95ccbf208c8a47be4bf38df3c9d4b150f1e967ce, 0x2adc3b5dddf4c8fc80d0ee4ffb67c6a14590fdd5cfe9128e9919c1fa15bf003, 0x47f2d176ef9c3bc7d0be506d60c76f1d7309a44896aa6f5671582c538af009, 0x5b49ba097598776a1f2027187f679e3be1fcb860821dd6d1c321cbdd4d87208, 0x4c6ee38c09de495c701a05545862c1832d57f4f0af54a1bd48492b10538a51f, 0x2190867e8b3b132160b5de613dabb282988eb8823ae081d373642a32121e9b5, 0x6bed8e1ef11db96c8e28d0404999891d1e5c37f583fc2aaf642feacc479e2ec, 0x4fb8655d8e2db7b557a6270fed8a47b9e69bde88fbb1e268c06ce1631f850c7, 0x3664118d8a99098b2e21a9a96a4cb1266738c48141a5bd04d9789a50dbb2085, 0x3df0892815cf39200e38ff21b47007ed96bfd5aa7073daefd83fc707fe6949, 0x77310506db0e4c81f2064e712399e92d0b29b48db62e77fc12b3d91d3c3fb05, 0x500d5ad1d74fb5fa9fa1d8bff31f420b2d5958a053a9ea593f3cbdf9ecebf92, 0x1790c7e2836066391c6420b017e330b3c38ea96d2c09c01294cf1ac1985f03f, 0x216e5e79f61f228bcd7867ef3140a1039d890a4a785ecc777e0c4d7fcf5faaa, 0x20a801763376c29d65a3adbbf2c95a0801b51d160c4c8feb24211a2708af587, 0x4481644f4e0b965bf23db84edd9c817760ee33ea2c9020386deb052631ef085, 0x17597443968edad006cdf47693fe2c118baac1d9abb6dd358e4ba5cb51b84c9, 0x1290a84753d26e5e849b523fa10b466a5e2fcd140b9abd7dcafdb6adb31ba1f, 0x7d77d24b411ef0723d66c40d03711001adb615a4aa7c93326e80a2b8af5b405, 0x7794e0dd24fac5cdcd016d52be6830773281f9ac2785ad409ee4376c16be6b, 0x5e4ec7fcdf972626c3d1db51771e3373d55ebf902da466571dd37238a6406f2, 0x333ae9c1717d9612de2061261c2d2efae271e1edff9e89a1e872bdbe969e1cd, 0x7dc44e7db3d89bcdc2268584d4c1da6cfefe29c5da2dd9a5194af11ada5fd36, 0x4dc594e19afd47c1787854831ab775941956049a491e603bb876430a827cbc, 0x373e65a093e296110d6895307ef0a9a9c6f7b38d3fceefd2e811c3a2e00653a, 0x7086d823b1128ebe0cf7dee5e52c4ee941d99873695f84ee44cfbc37ecdace4, 0x5e214c45652e625ef1320421ae001b77d965828e1eacdcea600bf4ba054bae, 0x37e9620ed5b61e6296bbf1af532094c36a42934fddf5a869815184c6287fa0a, 0x3c49a81d80548a806eae7c1787cd64e1c877a11a685f9de5ffb972b227d6c11, 0x1f85dfcc8d2dda07a5c32021a8c4a9268cc91e70b3f7b5f78072895009c2aaa, 0x17bb193a9afe57270fbcce55f02ee37f4da5e9e07e977b5a6f4ae6d53dae068, 0x16d10cc90eada1630fa23fe1a3d79b714c2a7fe3a670b3146c7ea3df456b105, 0x31a132e2bca913e836488b9f7d8330d07cc49ce81e79bf4b30e96fa74e11393, 0x3dd200a70d033361fa98b11059bfbc1e1ec6cb05f5c35fd266099aa2b9ccc82, 0x2f4a96a719f2649f9c35f4f07da561c28e96749bc2d7b3999f0a778ba13979c, 0x3dd7a25f284fce7b286ae048ccbbecc53f1822198cca88f27b8d4bde82bd1a0, 0x2098baa8bf1f3f031571a0003a10514fdecbb72c55a7aa98b89fbb0ac28cf82, 0x3a3c8d8a6d0c5e1ad59ea8185b1c34a0bcea9bbaa3bec22b1d2916dd4c6f103, 0xa317183a8e3ef0126a6d811b2290f23be345276bc0b3de452b101e34ab20c, 0x2f6aa23d7e59a03abcb30513175c5b0e9f419b89361bca3fd739dea949c6a56, 0x558a372adda477627ec2c20f0fb26fa043f394b5815fa93feadc008c23929de, 0x35488cb267180668d03f0c029ac704b7c6044fc6726a21000cbed843d0941e1, 0x70b5080533b3baa3fb39b6d15fddf193efe30572d2892255b812aff96a847e8, 0x794ba8cfdd44cd1cabff48a6e37c053692884c680d7937829a8a89230e82100, 0x27e35623670359c79d0b0af0dc00f7ac8ffc44d0af1213606d685f81b24b64e, 0x7d10c7b29192da1124525ebb0feff25af238d4f11ca6e12c27b3f381dc42ae8, 0x74d6d5f95538bd2bcc0821e504f0f5ca55b0615b8dbe7aff95130521bdc67cb, 0x285e88da3dd22346026bb557044adb4e450e994eb4cfa5971fa96068d11b2c3, 0x2f7813d94de548cf347ba20048821eafd832b7deb12fe18e4cdff2186d2f2f1, 0x1261ccb18047e5ec220b2ea0db9def52721b00b77bcf7ff153bd9ecf59305ae, 0x79d39a427d2c2c21e5bc11beb45272d180bd3b338047a21cf684399d41aa6c5, 0x23228ecce18f11f77a260a7209e6dc6e27d01e920fc283895a40cd4b894e1fa, 0x7c0c92fc1d97ba1d494cf531b0cfe60e3512c3cf6d7c60900eff6f480798ae8, 0xbba183ec779188e56e9caca46a8675f0b6d0b46fe1a73f52246d437cf27985, 0x2603c27708303de9d6080fa8551c4133dd5e816359c7199afb2889b9798fdac, 0x72ef1a85b068b6feb7c7b65387060d7b7e38a1ca4774818f0498ddb0506b34a, 0x4003a505c51d1246ff37613569d071ba2dd99b5878708790f563b4155c3347e, 0x1c6a4799961b62fc17aa107246ea1ea4c68f9e6a609eed7693df3a17b9b1fb3, 0x3cce5a9b03e7b8337119aab29f858d1ea9e49d7daf245d1e96eabfc053d85f0, 0x7209564a6239c1a5c0f2e10e8ed97672a73e16ee0265e87934f901841fc654b, 0x68260c9b44ffd2de200a8aa504e4e32383706ac2e375b62022d06084c7bf4e2, 0x76bf219d6d5c8ef4a15b79169285dbe36256d5348d82d4546f0435b7543ea1f, 0x7a03e5a6366ab6d54b223f4694a8fff593ab2f9d9917f7b15340deece5c7eaf, 0x6b3303fb7aedec6dda7aebf1b109ea0049a1832bd82c450374ad5387cdd97e1, 0x5ddcb9c991e13ce2847b99a50d287d1794f6aa7de0e1ff1271300e6428588fd, 0x37b8515a28cae1032b0e7d581c73442a254baeadbe54cbef1cd1dfc291b8d86, 0x722ff73a8c8c13b5f2d03832dc5091af0cfdfc57acbba25a2976d0a9708b2e8, 0x18d8c052db2bbdeb0a4deb2023e7819e47c518621b2aae722c7f02380362cf2, 0x7ba4c40611820ddb8abde6e41d676b4870c3d4a1e3ee539a97f681648d4c684, 0x5c3c1478a29adc3a2028bfaa7e0fa6be751cf53966b7bc7102e7d31fb52e060, 0x6e212c5fd69dacafb46430c96445608f955a0fb1562bb83fba6aef9190c789b, 0x53d376946c70eb9e178c6dca8e0099c3c1d1732fbc239c0078dbb96c3bcb3f1, 0x306f477b24b87bd192017c6c7d37953548449a7575ea4941848edfdd166dbf6, 0x177b180e26b1e05b41592f69c485169a02eeae3fe10a7f5b4d29b841058f57, 0x6ce18b53b364fed067ac8ebbef2e0c253209bd34928059ef32b834f99722681, 0x4a44b6523cc5e9c7e31e81a527b584e3ae10973e833c6472b5cdaefa4174ec7, 0xf0ab6d43ce420c806c23bdbc31513dcf6c6a4fbabe5908b6f7267a7e57009a, 0x2689b21c0ed7404be57663e3828cf478d7f2b76ba15ebb5ab0237b6653ad714, 0x6c3360c1d9382c311c7bbd8085d565ff8869cf77d5f7e37bfc1285d59b12513, 0x4babef345c40c3a8cc39be234f98c444adce9d59db2dd7ad2c3d957bb6ba573, 0x3392dcf3f771726766724ecc2e202b15fb9d32967a5fd5730417bb8e40e94af, 0x20b9c851353391e0463277dfa8e64ecfd8df8981d566eec97f5fbe5956d4d3f, 0x68269b80c0a477ba0b430d6230f6667042f487519ec9cee42fd164fbd5dac2a, 0x54b2b40a4bfedc843cd4e92b0e21bb8779de73e064ee34369f49971bb81aa42, 0x7e320540bd9071965af275d91eb69e287f2a87eb7de4198b7d4275a7014c1cc, 0x78440d860e25e1cfb89f345a872744e9e93eb54755abb1e5d048503af4f6fbf, 0x5c6c0e79207513f2a69454409be31cb6e2d4da3af3ea97b5a7419a334f42ab9, 0x1b56506f096a136f30b874e4a9ea3d42fe2e9a0f30ebea8c73318fff2356932, 0x1df26601e09aa81b7286dd78e9a35dd11b1057f502f25497f9d8ece915680e3, 0x459bade8dd9ffcb7311805214ff268b5e883297000c03f8fbc09e30002ac2fa, 0x55ddee3c857f3a14b94cddb1324388ddabe5dee323007365dc83da9b843e9c5, 0x149291e3abaaff2a35fd6de1bd21218470e81402dd4b72b3935e52c352a1bdf, 0x5a58dfb948d0047811d1b23807e8130ee95865adfd085fcec7b13cf59464bf8, 0x2412cd0afda93993db087d1b23e99199ea40fe72ff0d6cf5dec692a6afdf5e0, 0x4c8479e6551c7ee1cdeed9e24775b57b0f1a70498025646b1b73576c7a15d47, 0x6478f50d6798d1719773fb2c1efd0353d85cb272440510267b2263ecd10d977, 0x62e42b9057e5a1304f44198f75ad6df773db1b898cb68949837a589f38bc4fd, 0x5ea3f640756546ca3182301f93c4a8f3a7de564c19d69b9698bf8a076ccf927, 0x3f752c53941a48a61acaa9a028f40ad4eeb7dc4e74b60bad9656b8d8dbf67ae, 0x203ae965552f2a4eb82c73d8bc1b2be9e6a0addbe7c536ea17e3cd711505edc, 0x7384630bced0225d9a7413627f7ebe97f782ccc5d71da4a5a0cc9a40e484c64, 0x1f77381ab86c9d619f6245b45d06c77083281d4dd3ad1f6e7334e3ed0285b42, 0x9f59c2de9d197c31b50f52e1d0e120350fe57ef1cf8fd895d3e8bd14fe6951, 0x5838c7801a22f528df75ebd25f26178de071e20d7876d1ed1d01efc7527a7b9, 0x51633f896f8ad353ff8f8f9a9e675e01eabd1fd4a23668167fc3ed354de3996, 0x7ec582ef7c2d2188020bacaeb59068ba6a3a2e902589788708a7a7ca6011f63, 0x30f4b1f4221a2ce89b834d89a09313164fbd3775c1b6052f91cea8df5c403bf, 0x1e76f018e7ec22215bc974cc61ba5e65cab5ca3d751fe72f0b999377fa4bb9a, 0xd01ddf5f4edaaaadb52a712226db1e6b539af5e036c7eb52c0e63c46d129, 0x753973acf41f10c5e9bb940716411bbdc9a5e7432feb234199729a971954bf2, 0x61450b13747dd8ff8e2bb40eba816adaa53a8eff1e25f2551fa1cc8ffb736f, 0x745add44cd2f3036f945d1d91a66de2eda503c31327538668143084993c1316, 0x33ea6d5a82db0fec63a99716ab117679e43cbca295b4d938aaf8b0d5cc44522, 0x3dd2a92a91f0dad295562db6b52d0f698f5d3fe95dbdc0c4ab954cab7468731, 0x6fab6ea282b519e13bf290522022215320ccc8079070b5cb029587fe17c42cc, 0x240195e2f83ec9f12563537549f4789e0e9b4e9c16f081edb842b1e783266d6, 0x73b4f8628a80789bce644943f1b746673323a591d67c92bcb4d682bd604482a, 0x2e94535452eb4d6779c7fb8ff94b4881c597b0cf5d1cbd392bdb312ac436c02, 0x60cf7e6d2e69b67427b120a7e3e2b2ba0fd48d2d59df5ddf3834811f8cfff1, 0x26a0cf8da64b01284a41702092621ed1f6c0dbebcecb97fd018d0c292f4310a, 0x4ac77f10ebf2a4129e2b3b146679d50e374280f2b03ae964fb8158408658624, 0x5ac12d97148a3610d660f7c35ecb37488b86443060880b560a36a8c815d0e36, 0x4b3e3e01d419e927313f797e6ba94522c99acf1040e2b83015ee9c820fe3f86)", + "V->P: /cpu air/STARK/Out Of Domain Sampling: Constraint polynomial random element: Field Element(0x5f8767fe1f9d33c3bbbb8bed40e05b34f2017fd4b66037feffd8d26437f3e0e)", + "P->V[4416:4448]: /cpu air/STARK/FRI/Commitment/Layer 1: Commitment: Hash(0x6e5760ef3c4128991677ea16de81ad91758bd9b2688734f65318232da10ded8)", + "V->P: /cpu air/STARK/FRI/Commitment/Layer 2: Evaluation point: Field Element(0x3b8cf0f26da4a93884f9bf1292b70fd0c6a7c5ce9a619bd9f3ed1415471a95c)", + "P->V[4448:4480]: /cpu air/STARK/FRI/Commitment/Layer 2: Commitment: Hash(0x5694f64ac8081afafe112e19e66c29173bc3a798ff66d8d254d8a18d3ff94da)", + "V->P: /cpu air/STARK/FRI/Commitment/Layer 3: Evaluation point: Field Element(0x378657bc79670e5e435f0b83d1883d1af935029f6aeb8bc24811fb3edc620cf)", + "P->V[4480:4512]: /cpu air/STARK/FRI/Commitment/Layer 3: Commitment: Hash(0x6ff7f4131ef97ee0b6527a03dba8eb31bc6772665dc2e370a984b62d35cfdfe)", + "V->P: /cpu air/STARK/FRI/Commitment/Layer 4: Evaluation point: Field Element(0x111ed9c3f4e1cd7bf1d6f660130aaf3e39cf7b26813b2ce9f42e502720d323c)", + "P->V[4512:8608]: /cpu air/STARK/FRI/Commitment/Last Layer: Coefficients: Field Elements(0x33af935e7acfec9fdd3c7e653a086b56a9799659eb0f92b3156c5f2c5d2e9de, 0xabc30985ec00d4b24a3ff0f759c6a5aad9b32f1f9081165c26da8bed1c93a, 0x517f31ff251fe64cff2e0a017e60c5351d5d373a3d63d72b4d6517c0648c849, 0x7d42844e776696bf47157490135c22c335c8a30102e6c1aad5201f11cb14948, 0x43edbece9db7a1cbb7f852c387519ab2d72a67aa87d9199881e7a350ae80a17, 0x50e697f4cbee97eb6b0565a3b2262c45ed16fe918dfcf196046b0e4d9e39a11, 0x52b0412564323e40903523e3270b5b67febe0af6f4a6823a9b77c9a32d81d34, 0x446b23d17d814db99e91b242d93804abc91b3de473ef2caf4e5ae3bb352795, 0x7b265e7a27357194273f5af0a0986038b68bdff61e02d46319215e3070c0b01, 0x658ddfffb2e28f2d0c9e9e3392b43a70d7416f04005756401871e5697bc6aa2, 0x7896e1c7f7d5ffd4174045b62b0c6ebe36cbafe26fca6a7f35b508e05219096, 0x6812827556131551f98c2eb3d73d48cd570714eb6c64016d944f60057b4fc81, 0x51755a24198d64c50dff257527286a26aa6e2b3797a7530b6ab9c107da72baa, 0x66d1ebc3baf0c742f6114a11823aa35332c65c08e3c3d9f60fb37cc35c41fd1, 0xd795c33657501272f4e60041119b376eed2064cdafcb39fdc65e8594ed7afa, 0x49e9375d028febd2b3b77a1a6d6f7a9755537765469e8a9bfffa9a3b044890b, 0x5859e472749e2d0f15d0d068b9c96af2795d720e01fdf1280f86d28b2e0084e, 0x5f2eede9624f222f1694d4d57dc3cec64d9c8a0024ac7150677561c9ecf190d, 0xfec09cf2353e69ad4c26f24acb61168d1846adc6e8d81614a90577c5895f47, 0x2ce68aa5534a3234ecc2a0473539b31e3064b61c5f7cc2d2a9497d0526acd46, 0x40fa387edd9d42d3a3ee23fb2f15196b8777549e5b77fa7cfad325e0d39f018, 0x67a54a4ee5c37f2c1e2c87d928a866b2184e696a95b8876cb599837b5bdc1a6, 0x258e9cf90d5fc69c784b4b5906168998485c095fef1684ffd15e1a4251ba5de, 0x448ecfea3d531d2b31756d9a850daf78d93034c45826e13749131273792d9c8, 0x67f51e38b1fd778acf77cf9d41ad1ecc0861eab70adea892888b4c02f974687, 0x52688b8db5ba0ddda156ce7391ff3a5589781860ed6510645ad9e2953b1f0f, 0x488a3b644ef20383308e079dc20f5a9868e6774f289f78750a7e74a346af76d, 0x1bcf00af32b4fe1ca6c34dc853adf917554dccacde5f0e6b13732816bdf6889, 0x2a672b5bff189e6683a87d025c305994782163f73ed6bb912ca7ce4742dbd73, 0x7253963a198bdf134eb1fdacb9ad49d60a843177cc4c4fe591f9eb81fff0cf2, 0x7e6d1a2747f52c742a80ac10d6e5fc3a5961faea0d808f78f6f9678b8974bca, 0x8c3d3ff542f72413afb15f5852d1b5dfcfb940b16f9892fcb75808c06b659f, 0x294ab6c402f6a829d9db116fde1f204def3f7a73f220dbccdcf07ac091a8ec2, 0xb8ec1475caa6073796cae067890974115a9a9b0d197dd1597509984c97e9e9, 0x5ace3c21a50302e7571bd42a4cf4a8fcd0b5d66843c520bad54c0b310c05e8e, 0x35b7a24a58d0a21e434e349f0e981ed36afdaa92c11bd6486394d72ec6bf1e2, 0x71e11adcdb0d2d2c764a4fc6e58e2c646707238eb6e3a57c821a7dc806c30cd, 0x4a55704bda5c357d2a1bce4a8281a850590a5e38b096597ec7dea25caf9490c, 0x6b2685e8df813c9d89eba2b10a47ed7ef0729d017922af1d3402d915c520160, 0x6fc69a8106d5a9f7ea0686e5895ca591c9f9e5c4ccac6dbc7b6ff4694e71395, 0x3366e61de0e5959738cb6349ff203bbf9578f07859cfb912f542c2f4d3aa187, 0x5d383e020d8c4874cb79bb1da95e875cd09834b59a800201531a508620d630d, 0x1b116ea9f2f910906c2700043d1585b67f0e91bdf4332b52ba773e2d92cec5a, 0x7553e63609509b32b00d6cffcd422fe9a7d0c922fa3b43fee9c3450f24b3390, 0xa18ef0c0c6ce48d2c493534443ed8cc31df632fcc1e77f676f9a8151a1df78, 0x1ea9141c0d9750f9b6f64b4edb483eea2318caeb5b3a0d7e632d25b2482181a, 0x7adecd08933739979ff3c94a6b52b4d889a4a60a303e16b1f0e2a6b7ca15d56, 0x687852fe7b5c660dfd3ff5b5aff6adf2a10c385e6626ad71c09e88fa0bb78cb, 0x16aec12caef0d75cd008bc063f230464fd0d033e4331ea3cdd8aa771eb0990, 0x243afa34bff4a81ddd64119e8e3fea893e9fd62c748be022dbcf295741d06d8, 0x1e496b3d5a2ccbeb4297dba5b6b1df1fa2d7c1524f236c0a2a8427cf2322dd8, 0x66a1cf84bad2b1c890061e51f752c14ac3c8e98be5eae26f2dd7bb09c23148e, 0x4bb17106932a9d6c408b66af50899fa1b10ee4666277aca1e879bdfa50fdfa4, 0x3a03bc87eee4f39d1b50178363c5545ed311530c9c6e900f4ff7a2165a6cbc0, 0x54317ff9b20bd8f4c0522dedb61d4c963301a171e63b8cc8e871aaca2670ca5, 0x66b8720edcb357f783c2469e9fe200d5ea26906eedaeef8890bb71b8d1a42de, 0x16f697512da7bd03c5f6d37849a72fefb15ef54e4694f68881782415ef1d31c, 0x549525a1c2c0b6152fb14988cca55ffd7bcdbc189faea0680269e902a25ccb, 0x43aed2ea1506ce93289b43e229de87f52c6a53b069932c3c3b9f718fd90d3af, 0x53f5055635c1bbdf08994a3507cbb8496537b08c72f88a7aa9d473ac513681c, 0x225eee30ec4b5d968477f905006221d2beeeeaa1c41b5bb2b0721b28c2e58c5, 0x1726a127d9147f0b8a6c002eea8f714a9cf31fade141f68db1b4f4c93ac4a8e, 0x7d5a522043b709c5797ebdd2c60e95ed2f9e1a24467b5dab9ed9764f5045d3f, 0x6cf74c6521d5f06604a0da1331e0122f917a09ad46ac83c384c7ef7e0d12945, 0x4947a785c644fc7454a0e673a75798afacfff899837216e85a7467b19052027, 0x4075ee64c38fd5b6507ec8a78a4a06241390d4d294dc5d6e1ca78c132eff6f2, 0x78c1022b55510180e310f48f23bd1cfe4e6f17fe25ed556c9330cf62dc8aaaa, 0x4f4fd427661c4c3832dd317efcb732f616e6109dd3941acefdf85e6564cce89, 0x5910d8694bb074403aad4ea87bc818e148fb28aa4b8d6070fe2e265724872d6, 0x7f88527238a0eb68cede39bd783648175a909bfdc2eabfc1c2ea048f0e5114, 0x2b8e88a978e162f58482faec9720ff3ad152e94deb3586d46335c0598c3dbc7, 0x48cb6b109d3a5bf3a984ac21ad791564deb0dcb3e64cd271eb6fb085f731497, 0x3772b4f24ac05e85debb7fdff34459aabbc7e9d19d6265775a8285920880cea, 0x35ca90aceb66766dff752b4a8d9d7af293c2dcda347376715054a32d81a5d09, 0x47fe3018f8f53cc6eed6b3bd1fb146eaffb0ca02b9e1813edb76e62e883c06, 0x5cfff7475acdad3cccaa3a4e0cd99ef8e7e642b3cd78e7b06c4083661535c79, 0x75caeab0c2b2b2c2d957bcf73c6b132cb325ae638ad4e6a332a9491b69316a4, 0x58843efdbf44721cac1f7eaaad64609690e05a771a32c4f14af7e4a932fafaf, 0x7ff1e1485bbb9b7ca417aba92a592edc327d1fdcba4a985a87753c48680057b, 0x8805ab11180bc93551094a3d88f24b6e0056dfc625add09427391096751c8a, 0x500efee76bc84af30748a1ef67fdec82acdce0f46c39b96cafbfce8a735e05e, 0x655ab4e25a7ee9b79a8b33f0328debc21c20caf8cb879907738de72137618ba, 0x16b837e63329faca9054fa0b2012a780407b03092e5898a8cb3063810497bd7, 0x60c6dc04f9b1dbe4f826670818838b69f3c70e5cddadbee95d31f527f35c619, 0x79ab62ee73fffcb6610d4efe41e1d532e8177a50a78c6c9faff20deb54b9052, 0x2d546aac2a4afb4557969cc34e95fe24f0c1599f32db971b5baf50e421c7288, 0x318382f3be9217b3b97db37fe54a8577214567b69aed658e9d9e55574fa7f75, 0x102261f2a2654c580f37666bb61ddb9f13d78867355d0a01b6541d2223b1a1b, 0x1554119d3f325e5d92954a6efee24186722366ab95ec36f4f8f950ed6611df6, 0x4ea18a286707f53f9143b91d291bb41b01ae5ae14f886d2cc7d60b5af2698f5, 0x439043a1425fe39c105b55d76845107924d52ada9c1f14c112c0c2b1c1d8f9, 0x4895b95e275dd07992acc904aff70bcbadc7ac0ff68e0b316ba67af87b6a8e8, 0x654df2b4e11a731584db5451e7aa7137954d8c8c3db6d709e5c3e3a5ac66c8b, 0x36929697f56b7f83045d044a2a74454b884c3784923f084707f10fbb72ec064, 0xaf957b23cb34622c72d63cce0322fbcd68a946818c02ce75ab8e0d07928cf0, 0x4f6ac2ea389850f7f648f8009128074d92d554c59ed759f9856e2e1107f07a2, 0x71e225184e32e1a34bb51ad24c47fee366daadc662b6e0b1773c99757ce5e2c, 0x1b6592e60176f4182fb44a229e7d7aac035026b7d583fcca4f1bcd8ef4490fa, 0x3d26d449670361adc575cdd8088bedfd006cea1fb39ba0dbb1e72adc2d52a6, 0x29860cb4a28d46b48841fc0287c764acc37d9f58802b6b804c83e0af9aca73f, 0x1a9060cc5f007614aec229ace5c6a70809f28295c36d8b5657a2a0ca3e55395, 0x2f9489b3d22daf2f28c15940c79671f5878e2e1de7997c8e7f5f9ac0354002e, 0x33ea622fcb776f7b92e5825f903ea129e7cad7f1573c9ec938c4164e7f10f4c, 0xf973a14c3aa33f6687a811b35aeff0c5fe56356fbb0655f7f2fb342e6e3fc1, 0x1cdf850ef8fe5eeb3b0d4aa7dc90c4b2f255f5a46f0d94dbb9e3112493ba034, 0x1a17ef4243cda11906ac818ad167cf899e34840c00b3ea4bdc05e29a21e34d5, 0x524d709ed663aa6ad5e0f780be11df81148765d4fccd1656ce7ba5df3060195, 0x2e7c5ec734a35b3171093106f6f974c147e30efaa7e279dbb61f807d051e31f, 0x1b1e848d3db01b0d2cb2a9549a56a0bf7f3844c624a51aa54df3e66eb7b8984, 0x30eef95b8aa8c0c6ed70f1968a0a068268076ec5edbb6d3c725d5477a4980aa, 0x1e214e40a718f6b1a60950229fd236c4414f42f7981ed8e881e9c1e755ec275, 0x24093049ae61dcd7008f46b019cdeeeb1f1bce029f4b4af79846d5fecb8cf30, 0x10e92e238a287646061ac2e82ec9302b168f90badc088df31589d66f6822509, 0x14971eae9c5dc385b6b34bd6911a2d26f9cf8200d061efd4c20ad52ccd0635b, 0x31dd7aae998cf02026dfd7927dbd1c3c0fd7dbc453a280a362a7e9566609fd9, 0x399471df6d34f8f35fc5821fe6e9c520b7f325cac7c1f284bc25462b803c4fc, 0x757b6ec0ec3ebf157d730b0fd413031f340c11f9ff6314f0caf1ef7e6937b15, 0x45d0b47f65997d8b507e9602e8e48e977cedfba7a59195b2e798bf79df6f264, 0x1b2f1852edbe297cfb788472296ab2298f01f7663dc670c6a9414744c383cc2, 0x3ef86d637ad373706ad831f4b47d5d9e307b2b024ee4086717cc91f5efe43b7, 0x20dd341077f92938ab5594b255c22c7639d408fa650a798ea3cddc11f47b411, 0x59eb26cfacb13b3b9e4d9d270f56b723c7431b9cfc7ef7486ea4ff711dd509c, 0x54849bd25e4c892192020d7c8f0db0fbdf9a6c1bc1879782783bc4c2fafc934, 0x2ea847350d11654303157502dc3ef1986c8c0881c76e519bc9161494e5073ed, 0x3ba40208f0289faca34be9ac02eb5240a6424627564fecb6372cb505bcb5ab9, 0x6c6b8dc0f041bb4e09eec385f450253d3d704acdd17d066f09cc96eca5df45a, 0x7718d2280754a4eec87ba7f30f7534cea79d12022f725a51c71e788bafe78df, 0x2d60433f10371bbcd0633ec47629d1523961b346bf518f02c0b67e52ec3bd5c)", + "P->V[8608:8640]: /cpu air/STARK/FRI/Proof of Work: POW: Data(0x4f0e8ed9)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 0: Number(934957)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 1: Number(465699)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 2: Number(964523)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 3: Number(112655)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 4: Number(41434)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 5: Number(174378)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 6: Number(179407)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 7: Number(535642)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 8: Number(125916)", + "V->P: /cpu air/STARK/FRI/QueryIndices: 9: Number(963494)", + "P->V[8640:8672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 41434, Column 0: Field Element(0x1756693ff75b354fd5497a300d0fe83de7b72bc7b88d8ea76b613eeb913b5e5)", + "P->V[8672:8704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 41434, Column 1: Field Element(0xca22b6fbdc165c96b6ea9b56e261274ed197486d15697688261f9edcdd958f)", + "P->V[8704:8736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 41434, Column 2: Field Element(0x1d27359fd0a567c02d0156585aa5c9f82baab14b261943bc34de285b72cfc0d)", + "P->V[8736:8768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 41434, Column 3: Field Element(0x3e004a46e846ab03d281f778f527aa1a98e99594924efcd71458630fd3a7759)", + "P->V[8768:8800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 41434, Column 4: Field Element(0x607ffb15a76d0ed1f7ef495927a032deac5ad3c896bc279ed45bcf442465229)", + "P->V[8800:8832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 41434, Column 5: Field Element(0x5b002f89c72cb44b260ff7e910fc297758ba7f30de23021f3f27d7c91fe132)", + "P->V[8832:8864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 41434, Column 6: Field Element(0x7508de2bfa28c129428e7ad4bb1e192ffc7866f39049e80363ea121f74b788b)", + "P->V[8864:8896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 112655, Column 0: Field Element(0xbcc3406d081118c04be7bf6da6c9aac7a1d68e092993d833a649ae49e07c24)", + "P->V[8896:8928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 112655, Column 1: Field Element(0x6a470e5a2bcdca3a57d68369ab02a0581eb15286014cbcbe5f7f539658cf275)", + "P->V[8928:8960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 112655, Column 2: Field Element(0x6819922922d6be037730f20f53eb2d08379529a44daa3e97e0854760a0f4e2a)", + "P->V[8960:8992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 112655, Column 3: Field Element(0x7ef8863eca19d22cbd685650510e44f51cff228a5efa52c6ee1186109a25593)", + "P->V[8992:9024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 112655, Column 4: Field Element(0x7bc4a9e340b5a6852eee1e727bd56605a244f61a57c3808b80553c3b6742df9)", + "P->V[9024:9056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 112655, Column 5: Field Element(0x4d3feb13d0af9a943cfd63686e7424cd33d1e58d7ab436c14909d1160df189c)", + "P->V[9056:9088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 112655, Column 6: Field Element(0x52c02ebcca0f0e653c5933f484c0be57c9e0b1af5dc16243f8e78253193373d)", + "P->V[9088:9120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 125916, Column 0: Field Element(0x4f33434eb74330b32148858c34e4501476ddd866ce78f33739fb0530562179b)", + "P->V[9120:9152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 125916, Column 1: Field Element(0xd16c54895850fb81be3305ce3bb85ca5f9a7bd2db80740dfb5af93f80ccc0b)", + "P->V[9152:9184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 125916, Column 2: Field Element(0x724064e10058e450d146cdfbcb992602fa2e0ccf9acb53f5541f7cd7a9c0da2)", + "P->V[9184:9216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 125916, Column 3: Field Element(0x7dced576142b56d791ca2efa5fbe9e711cf9ad0f28c5c03dec20f6ff384f868)", + "P->V[9216:9248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 125916, Column 4: Field Element(0x78cd11267eb42838c1563c313dc93c3b379452a9df40e8dcec4f43497a88db)", + "P->V[9248:9280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 125916, Column 5: Field Element(0x557a501d0ad6edcc0cf351c4fc8c0fdb787811407447e1a525afc269627811e)", + "P->V[9280:9312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 125916, Column 6: Field Element(0x103c35ceff36da01c48c1c1f7025567cfbcf0fd3621ac4ae9231763fa93f5d9)", + "P->V[9312:9344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 174378, Column 0: Field Element(0x26c9a938f5e540bae469c6d0910640c11aa94bf68f2822cff0776444c17ee59)", + "P->V[9344:9376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 174378, Column 1: Field Element(0x25a3200c86ad045b52bdc6d0f042c40a05967b398ef4883e5e146f248edfafa)", + "P->V[9376:9408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 174378, Column 2: Field Element(0x331f1d41872ed4e183331d56a2523cb7ec399325d188dad279cd8003bea6dab)", + "P->V[9408:9440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 174378, Column 3: Field Element(0x2945bc4b0e0916af3029fc60f71d372fd8313830a14556e0bcd83ab615faf01)", + "P->V[9440:9472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 174378, Column 4: Field Element(0x21c5afcea2a4092070194d3b88817691ca5e76c24ec68ed3d1f1bb5fb2b346b)", + "P->V[9472:9504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 174378, Column 5: Field Element(0x4caf8b21874b1b3d4af92dfd714c27db37a0b4712fb8ea244418875ef1e43e1)", + "P->V[9504:9536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 174378, Column 6: Field Element(0xe1a94b1622b3a48d3ec646fe7e45024657cbe327e9221f31379852c0e7d9a0)", + "P->V[9536:9568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 179407, Column 0: Field Element(0x5e4ecac11cf47223fd7aa532524690d395a7b74598c8aa78c15e9b17dd72053)", + "P->V[9568:9600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 179407, Column 1: Field Element(0x70fd69627e87e1bc92c425f70a1e6108b1eb272d47b8d3e332af07c54b81853)", + "P->V[9600:9632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 179407, Column 2: Field Element(0x4b85ea9f209ac5ba8d6fa49707be4b69c2671715d66062ba331613764708ce)", + "P->V[9632:9664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 179407, Column 3: Field Element(0x261dacc16cdd84f505537973af00548e3b7184733a1a5edf5f67d33aa30a699)", + "P->V[9664:9696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 179407, Column 4: Field Element(0x2018b1e04cdf6c841d08e9b536ec063b5cd94950e525d2df0451c3f19e375fa)", + "P->V[9696:9728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 179407, Column 5: Field Element(0x31473f16083beba973d2c2f48e30d7105fe9f0ad72214722b59d847f579e442)", + "P->V[9728:9760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 179407, Column 6: Field Element(0x24351316cdd5b042ad3ab90eaf93126dd0dc6e8f265273af17a2a1426e95baf)", + "P->V[9760:9792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 465699, Column 0: Field Element(0x200c19d023b02fc848601c9e9eb7d42e4c0c72e25af110401a0634a69eecc1b)", + "P->V[9792:9824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 465699, Column 1: Field Element(0x7d2caaa98cf815e0554cdbd66311ca0e3bd71dad3f0fa7414fc6a39898ca998)", + "P->V[9824:9856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 465699, Column 2: Field Element(0x71351e74d0584699fc1bf44edb5add06fd4a52ff99f875c9dedd37eb5ab6450)", + "P->V[9856:9888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 465699, Column 3: Field Element(0x5708945ce4c2da69c250b34b096d22169020e4a0be03023f833fb72af75ddee)", + "P->V[9888:9920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 465699, Column 4: Field Element(0x4c92cafc5243d7f60a98b20963945220ffb41ee90a8e45b3e64f0052e95c43a)", + "P->V[9920:9952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 465699, Column 5: Field Element(0x7dca2f71f76f95c44dc3f89457e236cb4e1752d0d5dc0b7db311d1b61677e51)", + "P->V[9952:9984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 465699, Column 6: Field Element(0x3afd2c7076a31c9cd2a109a6a72b0e0af3932e4c816e96ff890dd90fa70ff68)", + "P->V[9984:10016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 535642, Column 0: Field Element(0x1d151ed0aadec99d7433912f88ae00043f8d63b5c950739b99e5c35b63c016)", + "P->V[10016:10048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 535642, Column 1: Field Element(0x126e9a30ecb6d9b225fd88c6ebf827fe17015d9341493c7b678c5545845434c)", + "P->V[10048:10080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 535642, Column 2: Field Element(0x1a7692934547424cba5364d1cc7a34a461627c3a14a9ace036e2a6382cc94c4)", + "P->V[10080:10112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 535642, Column 3: Field Element(0x586e882ec7173b81d549cdf93fe93d8675466687980fcbb71acd96c29ce6379)", + "P->V[10112:10144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 535642, Column 4: Field Element(0x4a0f40a84e300e857f034a48588e0780692ee294227c74a5c215444ece41fa6)", + "P->V[10144:10176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 535642, Column 5: Field Element(0x32c7cf4900ce33769501aeacf6ff5be13b46d4f02dddb7c1e6047a6a5677e02)", + "P->V[10176:10208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 535642, Column 6: Field Element(0x635716ef9b624ac6ebf809c6efbf0d22e2cebbe3861654036c282086be2f053)", + "P->V[10208:10240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 934957, Column 0: Field Element(0x427a369fe522257a1cefb0f1a84a278c8eacc2182d130cd00c0e428e228de1)", + "P->V[10240:10272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 934957, Column 1: Field Element(0x2a011ed8b8e6abdf132956caefd02d0c6e64b6e731dac6541c173a2b4daea24)", + "P->V[10272:10304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 934957, Column 2: Field Element(0x23712c693901becbe08abe2173622cd2242e0cea47fea150b4927ac5d28e334)", + "P->V[10304:10336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 934957, Column 3: Field Element(0x55602908d36d8c3dbe8817792013cd76d9e25cb15bad799fcf889ac8dad181a)", + "P->V[10336:10368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 934957, Column 4: Field Element(0x6babd3f5001355680adfff617c81eba3bab6225d1947a66c59d03581134946a)", + "P->V[10368:10400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 934957, Column 5: Field Element(0x3020a4d03bea491ff771d15e65384588c3cef3201e73a7d53dd0ba7b7f9586e)", + "P->V[10400:10432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 934957, Column 6: Field Element(0x6d08884b3ab5fa5e181a5b84f1874b5c5d995e6eb228edabbb5984c066667b1)", + "P->V[10432:10464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 963494, Column 0: Field Element(0x5680957088e180e4fa7bbc665475144477dc7486e0d9c5465e5feb96c8d13c8)", + "P->V[10464:10496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 963494, Column 1: Field Element(0x25cd34fc652b8d794767c39877d4e5628f88d8c3012f05c28fa16682ec00ab)", + "P->V[10496:10528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 963494, Column 2: Field Element(0xe323aa5d3430b84706a887e22355e7a9f19838d647b5744389144eafc495cb)", + "P->V[10528:10560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 963494, Column 3: Field Element(0x2c0fc3f6391c6ca6f13dee5e1b6179d7919ad519fb7974aaf7d5dc8ba839795)", + "P->V[10560:10592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 963494, Column 4: Field Element(0x6d368555f90f440fdd36b4345c81dc4c4837e00a89f0d156c185cb7f765f39a)", + "P->V[10592:10624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 963494, Column 5: Field Element(0x7b62c3b687782cd94aa11f4fe1d57fd12bb8afd527e418b1589b96351d2504)", + "P->V[10624:10656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 963494, Column 6: Field Element(0x314fe98b3d3f04165b836c6d7a3e4de8758ba1467dfbf648721e7f986bfa844)", + "P->V[10656:10688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 964523, Column 0: Field Element(0x44515a88be6b0895760c257fcc4fe2010d526851860d46bb1c5fa0909d1d2af)", + "P->V[10688:10720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 964523, Column 1: Field Element(0x2b8711a4abba53e7ff4202b70fea40483534835bdc7a86bd38297a1e9111525)", + "P->V[10720:10752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 964523, Column 2: Field Element(0x2e08ec293c1a9d55109ac9714885c9b37d47d8d865e232d80da51458d118886)", + "P->V[10752:10784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 964523, Column 3: Field Element(0xacdc6a02746d9aab21b10354fba6c046ab750c73383099d0941abe29f0a90d)", + "P->V[10784:10816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 964523, Column 4: Field Element(0x40366c975a4964b6e94abbc87134b2f446e6b9c7737dbbeb57255f498ab89c5)", + "P->V[10816:10848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 964523, Column 5: Field Element(0x29b8ea67789324915480a87a36b78bc6ed2c648f771c08668d7a623291ab1dc)", + "P->V[10848:10880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: Row 964523, Column 6: Field Element(0x3799bd6e2616f6eac8ab839e8791aa9c2964af62c9fe562eafb8f2bb36ddc9d)", + "P->V[10880:10912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1090011: Hash(0x4f21a641ee9330e246238ea5a0635f0a15576453fd10307c57ce361498dba2d)", + "P->V[10912:10944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1161230: Hash(0x5094a9812804a86974980051fea508a29330e28dffa8342a3bb43ea02fdc7e5)", + "P->V[10944:10976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1174493: Hash(0x531590c8d77c89a4eb983f1b0ae2fb69ae80e06d8e47f02349abba814da7c4)", + "P->V[10976:11008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1222955: Hash(0x6cde48d5c12ae21525e8b764579140f0f3f5baadfb0f85229cfad339517da8d)", + "P->V[11008:11040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1227982: Hash(0x32051cc8b6638c2f21271bf986bb5a8fcc7b48f0fb4ffa34c17b38ae774bc7d)", + "P->V[11040:11072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1514274: Hash(0x17a333995db8f9c9cb4c2aa5e8a0bf96307f9401e5ba82615792d49798ce35b)", + "P->V[11072:11104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1584219: Hash(0x11caaa69d705ce39a16fbfd7238bd7c06e0d365ebb1fe8c5657b8a48617f4e5)", + "P->V[11104:11136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1983532: Hash(0x57c3bb2d4db557366fad3ad2bde9084b2fdf9ceac9b4fb69f4dd9a4166de959)", + "P->V[11136:11168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2012071: Hash(0x7597856b699bc4e7e019294565dcadb7b59659282b95315539f5c863e936f30)", + "P->V[11168:11200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2013098: Hash(0x9ac5436f81e786117674dd7726f4a947c5f326b1864d4fed437e41cf3be74f)", + "P->V[11200:11232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 545004: Hash(0x1c633cdc649ee951cb41a73b730d9d36a98bbd8cc732685165042f858051e1c)", + "P->V[11232:11264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 580614: Hash(0x183ea537f876732f9a03b1348224a469cdde07d458a06499d93d20daaf89c87)", + "P->V[11264:11296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 587247: Hash(0x13a694af0aaffdaa7a09d4f8e546f96dc623a30869f9cb6c6ef9e31a0fde7a0)", + "P->V[11296:11328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 611476: Hash(0x7b8d2e037e8ae062737c2b58d78e4dce6e8a34b24def6fda036d8e12078c963)", + "P->V[11328:11360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 613990: Hash(0x73c0c91be1ef56d216b994fd2db6bb85c51c6d29a96dab68f6c15d050a022b4)", + "P->V[11360:11392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 757136: Hash(0x477e2ac615df2b79c595303fcb61a541d594c4600c77d88633b5087a89495e8)", + "P->V[11392:11424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 792108: Hash(0x2ee927c95e1b19f138257ba8d27e10eca5811f99f5c9c513213e468e2245881)", + "P->V[11424:11456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 991767: Hash(0x70e0e1085805ee60bed13270bbcf5319d84ed62cb9661a34e29eb758972eacb)", + "P->V[11456:11488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1006034: Hash(0x13626b1f9514fde897196548784ca1af3426bf603d86308031e13b6b6ac1b21)", + "P->V[11488:11520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1006548: Hash(0x7e4446440560c34b145bff6172d05265a6a71b9762e3c5c3971c4c60fcfc3de)", + "P->V[11520:11552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 272503: Hash(0x7c6283e55956a014ba84a1c4c72e51188aad3dfbd1bc09dfbc7e80ce23d2ee8)", + "P->V[11552:11584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 290306: Hash(0x1c9987cc64023fac7aaa9666b7eb9f5f0654e97cd8c22fd9506bcc8accabc54)", + "P->V[11584:11616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 293622: Hash(0x4dd8df4391bf0641e09cddb98ae593f593ab870a6616be3f33a4cb3b6f4b7fc)", + "P->V[11616:11648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 305739: Hash(0x2623ff650d768dce222184aea874ffe7213f29f9573a24323cecf4e94df2dde)", + "P->V[11648:11680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 306994: Hash(0x2bde0d59a6af82f0d02b046e6a4b71fba23253af1de2a4105f77cc3c2bf42f7)", + "P->V[11680:11712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 378569: Hash(0x10ced3c44faa40fec17890c6599430f4ab946c1a5c110f3b1592c10d69c2668)", + "P->V[11712:11744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 396055: Hash(0x35a701d4fc08a9ee360c62965f810af1643d166cf2f2bc53f49250469e0dec4)", + "P->V[11744:11776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 495882: Hash(0x3193acc46798781f8d3ebedde21bab8619d0da342b1dc2fd52a9782c716fe72)", + "P->V[11776:11808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 503016: Hash(0x48736e9005bbf7ba4179cdbed5e98168130c89297e9ea5113171ad7a53bb804)", + "P->V[11808:11840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 503275: Hash(0x528356479f5cdba3de4781107e6687d51227783e7b2424f23812b10a689f680)", + "P->V[11840:11872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 136250: Hash(0x10b1c8091ea2d70c28da3f6726edecf5fa80d4aff16c1a164bbfacec0765ddf)", + "P->V[11872:11904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 145152: Hash(0x7c54c645be40962173ea5d3991c0b65a9fec41dd737266ec432fd1e124aef5c)", + "P->V[11904:11936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 146810: Hash(0x49f58ccda0ba6d922ed9d09f404bbf365c9070720988d936ffc9307cb1874f9)", + "P->V[11936:11968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 152868: Hash(0x369bfc7aa90051630c86325dc0e7b0d0b2814df5843a0c0b30124f95499ff67)", + "P->V[11968:12000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 153496: Hash(0x708d295c206d65245ec9556cb7aebe3eb7bec588ce9d0f93b82b421c9de2bd5)", + "P->V[12000:12032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 189285: Hash(0x62adc4e97dc3b616c4cc501c5662d309a3832c332dbc3ec410ac5d75fb963eb)", + "P->V[12032:12064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 198026: Hash(0x662351672eafb2ba5532ec1eea417a5433806c7ad42e023c9a661eb8f4b0222)", + "P->V[12064:12096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 247940: Hash(0x329446a53ab09519f2c52afb32b6d4ca69720efffdcfc8e38c039410daf4a15)", + "P->V[12096:12128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 251509: Hash(0x6dc8fc18fff6e687d2a59445475b9193a5cbd86b2dc05196809b7b1372beb2f)", + "P->V[12128:12160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 251636: Hash(0x54adf6a5384ac3f44a65b5a7f8adf44b81d27bbd4c9a8ed346e5a182d83f4f7)", + "P->V[12160:12192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 68124: Hash(0x161e04b862106aa1c5efa1250c6447ebc789869fa975e406c1390e7dc61396e)", + "P->V[12192:12224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 72577: Hash(0x38267ddc9f5f87a32af33df1c12e46c3cbb6e811c1c4f6e1416286d9e36cc8a)", + "P->V[12224:12256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 73404: Hash(0x4c38aadd7c799fde404396bcb9f4cdec606dcc5aed6c87118053c0a3a42a272)", + "P->V[12256:12288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 76435: Hash(0x173dc7f9e2abec79f2508d884d6e463be303cd34dbe6e2636186b7cb646d7fc)", + "P->V[12288:12320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 76749: Hash(0x46ac2176a6a57e0e875e2ca65a26fb66fcb7c54af569b22a53930f4d5c709)", + "P->V[12320:12352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 94643: Hash(0x23e5bbcd3c3747808e354dac86e75c921e741d4345a1318d3b8f5677fc8b336)", + "P->V[12352:12384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 99012: Hash(0x404d8e2b0c86e5a1c4a830d19e991a349c71cdc084b17af2320358acaf0d134)", + "P->V[12384:12416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 123971: Hash(0x170be3da62bc72345ba279a6982df41e5e169de1eb110fecafe49fbfbf82611)", + "P->V[12416:12448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 125755: Hash(0x225f662d7330ebcb368e36b400ccb6376440ef2e02069bf61d6314d6d48bd75)", + "P->V[12448:12480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 125819: Hash(0x37bbf8f3b6567d7ebca149304c23706b9922670273fe9680ed73ab8f4ffa02b)", + "P->V[12480:12512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 34063: Hash(0x44f566c9b2e729461a24fe22bb885a8fa3f8dbabb1fb7ac63d56260f9bac2b8)", + "P->V[12512:12544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 36289: Hash(0x3f8dd29e54cbcffd38ad2f5ae48b8dce5f63f74ce4fdc3dd4d6d54a3cbc16e9)", + "P->V[12544:12576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 36703: Hash(0x7d9edfefc1802835950ad99b10f185d9053d8b2d6d3cccb41606f1a4d7a335e)", + "P->V[12576:12608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 38216: Hash(0x513647f47bedd5bf65503e130e941144bc238c14b47b751a0fa64a0a035f510)", + "P->V[12608:12640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 38375: Hash(0x140214f07c1b545cc9b3d4f2f06f35d6d6cc3a8426d967c9d5cb07174a16485)", + "P->V[12640:12672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 47320: Hash(0x4c106826e06a1c8637e401ee2060969257b9752ef2c917d23681ec137c78b50)", + "P->V[12672:12704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 49507: Hash(0x3f6125977e0c48b1b756bfb1704091df0a6e89617d12111422a57a0a3a46084)", + "P->V[12704:12736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 61984: Hash(0x5217ed18b03ec6bacac553e57295316777cffed2b03153b2f91e88b708ba6b8)", + "P->V[12736:12768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 62876: Hash(0x50f504deb63f7ea9f88ccd090d70b89b5621f9f5e14f7bfa3287b3e1139cfd0)", + "P->V[12768:12800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 62908: Hash(0x20e89ca16f97c04568d12cca17178ab6891b97a0528830237cc52e9c7f6057)", + "P->V[12800:12832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 17030: Hash(0x11f91c9c8a79a8edf504a233d7424630942cbc0b55397f33c7655d83ecddf9e)", + "P->V[12832:12864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 18145: Hash(0x2c687c10002324b63161214a5a37b61e7e4a5bd19c20a142b173698fce12cc0)", + "P->V[12864:12896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 18350: Hash(0x70e119ce5f0b277aacadd1d29d2ce396770a382cb6d2eac69e4243581870c3f)", + "P->V[12896:12928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 19109: Hash(0x7cd9621f878c2fd5cb78efa964e4b15ac984fac1e74a48ff725c30816a66a14)", + "P->V[12928:12960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 19186: Hash(0x20901d72b1b2aeeb9be977b58fe1108eae68e7d9ea32b0d07514a63b0c6eea3)", + "P->V[12960:12992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 23661: Hash(0x5552238d23239c74373473d059286ec2450ded1021216ef6402c82dc443ed9e)", + "P->V[12992:13024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 24752: Hash(0x727af0a32de72eb92fae357bf63800ab452ed0046b9e102c74f5429f8fc2bca)", + "P->V[13024:13056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 30993: Hash(0x4ddc2472cf111e53de6a70f7aefb9bb32d570b56a2ba49e82a735f5b6d65c9d)", + "P->V[13056:13088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 31439: Hash(0x4d405150cbfa4aa11aa59efc06ae898ceba0048af46558dbf79f354c3137099)", + "P->V[13088:13120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 31455: Hash(0xa2f75dcfd59037429fa605cc1780b94bde29a22cac3cf63546fd3364102153)", + "P->V[13120:13152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 8514: Hash(0x6b66858827b7d973101b64c4fd095553e69906a170e4b8261780ad031eb3d5b)", + "P->V[13152:13184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 9073: Hash(0x40c82090e8c0aeea35ecdda13235b7800ed0faa1d7c58b99a7ea10713290fa4)", + "P->V[13184:13216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 9174: Hash(0x487e2ab3da042c129571eb76f386590a7cf02052642fc56c1cb8a4ab32e3879)", + "P->V[13216:13248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 9555: Hash(0xab8fd76036aee118d15ba5b9eaa491ebe43abc205479e265b089a051d36576)", + "P->V[13248:13280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 9592: Hash(0x6ed812b7b5ebae86a87be1d4febeaa103deb892b9e8073248001d9966debdb6)", + "P->V[13280:13312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 11831: Hash(0x4c5020ab38684f0d78a8d02440e9d71f56e1946c0fa22b791ea5c9912cf253a)", + "P->V[13312:13344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 12377: Hash(0x54e0ecc319e2b479794b93ab55ad99b7580ed5bc45b12b44ecc7ed7b1989914)", + "P->V[13344:13376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15497: Hash(0x209760346f9e690ba17c39c82bff1196caebfcbdf7c84f0e3fc90580963be09)", + "P->V[13376:13408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15718: Hash(0x5baa14c0434187175580dfda9bf2bb61caf9db141bbdd6190937348d31f2589)", + "P->V[13408:13440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 15726: Hash(0x777f30fa7c3f204dd14f438abe57266052d28d0a3e250c5203c6d5083317e7a)", + "P->V[13440:13472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4256: Hash(0x3ddc7d231817123527a07ac01d3af99faaf337c596839d14bf38669944aa211)", + "P->V[13472:13504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4537: Hash(0x44fc133a09f79c85367d7bce874a875ce7be7600d26a16d88cbdf2e8671dd7f)", + "P->V[13504:13536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4586: Hash(0x2b77adfca3716671d24405c6383917188b8ddd1f4ca8aa8504a110559b884ca)", + "P->V[13536:13568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4776: Hash(0x1bc7121981fee6286a4bd308cd3cf6fc99ea1cb781552e9adee3e1d7f269111)", + "P->V[13568:13600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 4797: Hash(0x546435ecaa6f876961d083750552857a30b4911faf2b6dc38584d1f1a35f370)", + "P->V[13600:13632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 5914: Hash(0x2165f3507647dd4ecb58aa253cbe4e9391855e8662617cb6f2d2c5427b31fce)", + "P->V[13632:13664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 6189: Hash(0x3b0d611aa2c844d4f26d8647d5847cdddc148c9ee489435d61cb6ea5d1c664f)", + "P->V[13664:13696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7749: Hash(0x5bd67dcc2529f408d91a8193bf95c27757c97c28286952f72ae51504adda78c)", + "P->V[13696:13728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7858: Hash(0x530c02ebac897636eddb62f582adda010949ba0e2b112cb444fd5ededef9f0c)", + "P->V[13728:13760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 7862: Hash(0x4bd4cd83e715f4e912347504934c6503472f86c3d380904f8dbdc94c5bd2bde)", + "P->V[13760:13792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2129: Hash(0x15592cd6539c355b7fa566def73bff28871f7be404d8d1b9155336d37125a84)", + "P->V[13792:13824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2269: Hash(0x70ace5f6a682aa11cec5e6dbd6e85735f9578146a34d238105dffc024da057b)", + "P->V[13824:13856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2292: Hash(0x790f060dbef0ff857ef59b1ef726a15a820a602dd79754d93394663ce6053df)", + "P->V[13856:13888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2389: Hash(0x616e67786f96f88d9b0e8dc500a1fcdaf9bfe56cc67e7ad62399e3dbae75e48)", + "P->V[13888:13920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2399: Hash(0x7b7a7608543b67b31a97b226d4ee7052a17d9dc8203293e5630ba03ba57e066)", + "P->V[13920:13952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 2956: Hash(0x567ca5a00e8f56c5ea34b618c124b55673d1cc498a4c567345c571012d92458)", + "P->V[13952:13984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3095: Hash(0x33abcd8fe72a1ec9e73326d38f1e6450be000bdb3fb8ccb8efd19c2d0c5a97e)", + "P->V[13984:14016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3875: Hash(0x2a1bcc768854da71a7a836025e1c6885a14c57b4641bfe11eb37712f1b249cd)", + "P->V[14016:14048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3928: Hash(0x5d6450efc9c19aae0b3b926b4060efa3ebc1535b68a7b4673e5e34e120c3ab5)", + "P->V[14048:14080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 3930: Hash(0x1f25ac285b0016ca0b14ab3fe7f2973c9c765703bf8dd70254eb4feda0c6e8c)", + "P->V[14080:14112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1065: Hash(0x14ae457f752fa98aa839bc8b13555c6cf50b857502c6f49395c632423f9449)", + "P->V[14112:14144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1135: Hash(0x452717bcce18a5e8d3de33dc30c945798e827c4ba39d8870af0a31b6b763485)", + "P->V[14144:14176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1147: Hash(0x7d0042c598e2fceb1c0510a42ba06867f7020f30152f02829b8b809833701ee)", + "P->V[14176:14208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1195: Hash(0x7d14d8401030b7311df4e61ca44e923af45c4cf22425edb5386d37c05d56f4f)", + "P->V[14208:14240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1198: Hash(0x7328ea2c0fee627b61dfe4adee051e830811a5dff1182e052e7e821ea41928a)", + "P->V[14240:14272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1479: Hash(0x4cef1dcdf3e6a2b4c680de2e52bb33f4c806d310498a97ef4c7f25876a9af88)", + "P->V[14272:14304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1546: Hash(0x582d2d0604388536865e5cce61ed053b9f0943bc88589c1f27e54e9c1a5c159)", + "P->V[14304:14336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 1936: Hash(0x235513e160618bfe7ae0f3df4fadca9d247987168cc70de093768a4f78cd9ee)", + "P->V[14336:14368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 533: Hash(0x64b87e53534bdb934f9ccd2bac00560ac90926916f3e92c7b897298cd057f74)", + "P->V[14368:14400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 566: Hash(0xbb6ce838a234f50b26d5563887ff08a99ddbd2a1a5aeabbe053b392e178390)", + "P->V[14400:14432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 572: Hash(0x40f479035c92df80fb67d04ca77e90732931586d4a0fed2289565064dcb90b0)", + "P->V[14432:14464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 596: Hash(0x23e41249f97e30d710423624135c586095241de8b437176eee752585cd21f71)", + "P->V[14464:14496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 598: Hash(0x584580285984c7758dc4d118822ce9a3c68d243dd06749e983d0d11ffac4654)", + "P->V[14496:14528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 738: Hash(0x105ae789bc092f448c300754c3ba39952d024cc8789e595068b26d91650445c)", + "P->V[14528:14560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 772: Hash(0x7b65a19d10c773334bac8b2db086d4815503dc0937f1ee47a4d84c6284fd3e1)", + "P->V[14560:14592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 969: Hash(0x3f2ccf414efe7092bcee87df84249e71d0e8a66abde9538d7fe9552cc634d31)", + "P->V[14592:14624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 983: Hash(0x311b141584519299ae7512e84abf3ad097b83dcb9af44976b7c7ea50971bfd6)", + "P->V[14624:14656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 267: Hash(0x74f40920d8648ed6e9d125f95f72b67e7b76e99dcd920b20631f51c23357c82)", + "P->V[14656:14688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 282: Hash(0x62575aba169dc31b86bc1b41696452bcec93d0c1e232e7480ccd0c42214fdbc)", + "P->V[14688:14720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 287: Hash(0x42f256d9a1b045c9a8f74d522f8fbc9b9f7e5229bd64bf3fd682eddd30af7e3)", + "P->V[14720:14752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 368: Hash(0x7005b63dc8d7f8424adf7c566911297315ab335c896c914428fa057eb0df421)", + "P->V[14752:14784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 387: Hash(0x3cf950391440937e5a61e038b3a62d7914af2cba6bd11102c5e2962efb99915)", + "P->V[14784:14816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 485: Hash(0x6a63cca62996e2998d4d197b3ca28fc67d5d017a551f2cc77f8fc15f66a7e07)", + "P->V[14816:14848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 490: Hash(0x7d3836e2232941aab8e18ef2ff05616cc6d908fbc79a1017a02b50ac1a6fd86)", + "P->V[14848:14880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 132: Hash(0x244af87be8a5a56de9aded221c15fd5c42eeb9ca8f50f23cafccc35b2b45762)", + "P->V[14880:14912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 140: Hash(0x4c27f885dab3836b4b375945804f1ce9383fac4a62ec5857af802bdf25e0143)", + "P->V[14912:14944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 142: Hash(0x67b2b828872a43ff1ba4d7d7f4114528d1dfdf81af91d49d1548574f5b313d2)", + "P->V[14944:14976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 148: Hash(0x1d0050c9ffaf03fc8c186d47ca770e6bfd9ef9c67cbd2449a9f203314f28471)", + "P->V[14976:15008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 185: Hash(0x552bd4364106cce8e1dd9c1d6a21350edd6ba91b0223c136784efa77e9603ef)", + "P->V[15008:15040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 192: Hash(0x2c3fedf295c58e9b741cf3ff893a0e8425c9855dbf82d533f9e1321f365e687)", + "P->V[15040:15072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 243: Hash(0x49f6be517b8adee7057a8abf58289d274120e2c0d9d12c71efd5ad50667834b)", + "P->V[15072:15104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 244: Hash(0x73255a3c40efd8ec6520e06b510b2f58056ab8ea78b8e77f73ad3c0dcebc254)", + "P->V[15104:15136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 67: Hash(0x30c69dad2a1318dc12c285b044b931e44605c1f507b06d49c8d44a961f4b0ed)", + "P->V[15136:15168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 75: Hash(0x6ab97992ac8dbf60d41566feb69653725bd3f2cc051513e16f9002550765549)", + "P->V[15168:15200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 93: Hash(0x21c245adfde90561ddc119c33d06b82f94dd6d11a3cca9f45418d480c654a28)", + "P->V[15200:15232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 97: Hash(0x48cfcce260c535823e217f950ba5fc025b7440f3486a527f016d164a8ee459c)", + "P->V[15232:15264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 120: Hash(0x1e8109e3be89b14e8f5a186a0dbf2286e9f9f62067bbfa4b45a6ce567b77b3c)", + "P->V[15264:15296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 123: Hash(0x4599a3c0e0957b32bbcc98b1b411c96b4ef8d3925ab8b734d6e12aa03d55ae9)", + "P->V[15296:15328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 32: Hash(0xbd3110c1e5ab676f842d4b6ee54b4a68f18037e45af32d4feb647ee739b5c6)", + "P->V[15328:15360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 34: Hash(0x44be114b40e9b3e75ebdbe5262a7ed66a1552e87dff6ddf7b9deac729676375)", + "P->V[15360:15392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 36: Hash(0x12b71648b8701b2869345f9e5713c2dcc37a529bec799bb30ff7bbe5cae1d7e)", + "P->V[15392:15424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 47: Hash(0x3684437beae678adca4408da441f116b994cf8229f2f56b1b98b4e53c49a046)", + "P->V[15424:15456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 49: Hash(0x190658338af8ef69ed28847ae1da693700d76f49918b60159e395c9f9af19d7)", + "P->V[15456:15488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 19: Hash(0x727faa650932e87bc333b9979273515178fc8044edc8a5d0823fda2c452309c)", + "P->V[15488:15520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 22: Hash(0x383bc66b87a70072fcd343025945dcc2517405c5c40505a69d088d1e7496666)", + "P->V[15520:15552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 25: Hash(0x792977407a60bf6f1b227f8673f7ce27ac3db1f7cdb1a71720da3900e439e7d)", + "P->V[15552:15584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 31: Hash(0x2462248b1318dd1ff275274636778309634f95a00c1a896d202dd4d5f0bcb4)", + "P->V[15584:15616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 10: Hash(0x6290ccfe3fcf12dd858042a97b5c9b0e96bf5af41c0b18be768859629fc289)", + "P->V[15616:15648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 13: Hash(0x2b8eb5915b23137254ab7d00e1e7a4f1c22f316ea974b8423d7454753e72d40)", + "P->V[15648:15680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 0: For node 14: Hash(0x2d102761eba9299e0ab62f101f84d8d7811f6ce6dc81681fcc604e7372be3a8)", + "P->V[15680:15712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 41434, Column 0: Field Element(0x77788015c0fb6919314dd18893703f2bff5f930467db88e313e379236ff904b)", + "P->V[15712:15744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 41434, Column 1: Field Element(0x13ef9b9b718f2ad2bddf6c16b1423ee21b1aef305d0c9840da3585191d34d95)", + "P->V[15744:15776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 41434, Column 2: Field Element(0x2509f157cd592baa91bf330f548a6ab92d8406f59eda8883b5eb4cd429fc20a)", + "P->V[15776:15808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 112655, Column 0: Field Element(0x516400af4014406ba788e4f445f5944158d8aa92bd2a0eccdf0895321f14b42)", + "P->V[15808:15840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 112655, Column 1: Field Element(0x2231de4912efc582747dc7dc31cb4ef78b040ef6b5e8fdc432ac4973fed9a9c)", + "P->V[15840:15872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 112655, Column 2: Field Element(0x4914b2cf03d26bdb50233831a3f7a26c97a12c4a5a5d944da58694779f303d4)", + "P->V[15872:15904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 125916, Column 0: Field Element(0x4f2532a1cbe00452617ff9d9fce22b5b7fd925022c54e96d7312d113aed414b)", + "P->V[15904:15936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 125916, Column 1: Field Element(0x3a352c7cbfffd085705551481d10b75665687f2887e38f8731b3158fec33896)", + "P->V[15936:15968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 125916, Column 2: Field Element(0x14331c1fa67560314a8e0a3b296490581297091cebb4d852f9cfc25644892c4)", + "P->V[15968:16000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 174378, Column 0: Field Element(0x4ced7f62cb6650da532f152d6d14e4addf94411affd1179a29ca182fb82c633)", + "P->V[16000:16032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 174378, Column 1: Field Element(0x4a71ac49aec95dc9ed53f147f7f1826e1c470e1b8de6f7b79ef6ff57904bead)", + "P->V[16032:16064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 174378, Column 2: Field Element(0x5fc6bb4057c03624cc6cfd61154d15a6c9aca8bef313b33b6ed17298ebe875c)", + "P->V[16064:16096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 179407, Column 0: Field Element(0x756aeab492f6ccef0848785a1a6fefb1c066d85eb0314fe090862c9cafa3868)", + "P->V[16096:16128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 179407, Column 1: Field Element(0x5910db81f7e7ab15d4b84e66009ba695ec22438abb4fc572ab8dfd7d5ec80fe)", + "P->V[16128:16160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 179407, Column 2: Field Element(0x40430dce0f7393e9209e78b413e7a2df449259b6b89ddcd561173cb549e0cac)", + "P->V[16160:16192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 465699, Column 0: Field Element(0x2b6b32bcb0585998fdbad68062ac54feb08ba8a345f42e8b1b0d8617c5465a9)", + "P->V[16192:16224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 465699, Column 1: Field Element(0x2d97dbfeedfeb36f4202f47ed690df1b3a9b6e897c5d7d47d728d14009e8d91)", + "P->V[16224:16256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 465699, Column 2: Field Element(0x33749db57e928bcf1749abbd45befdfd88202a2b98fc4d87d2e0cf8901ea43c)", + "P->V[16256:16288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 535642, Column 0: Field Element(0x57630eb83fed0690e6253707871554ddd2537eaab5ea5635448018d69334817)", + "P->V[16288:16320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 535642, Column 1: Field Element(0x63346d650da9de4d24cfd74e926d583607b5a7a0925ec44813aab72156947cf)", + "P->V[16320:16352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 535642, Column 2: Field Element(0x4dbabc375740f29173077afdc265ff57abc727c063c55846108cdec561259e3)", + "P->V[16352:16384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 934957, Column 0: Field Element(0x7ca5d6f9a3340b128ff21919c58d8a9d2fb5505477ffb4fcfecef2d95d2e457)", + "P->V[16384:16416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 934957, Column 1: Field Element(0x4669ba0005149e9116585879554d88efb1a53d0f66cc8529945fc0bfcb16148)", + "P->V[16416:16448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 934957, Column 2: Field Element(0x5af108f97912336a4eb67015b9c5028218d4e8ccbc81d4d42332c7a4d2479d7)", + "P->V[16448:16480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 963494, Column 0: Field Element(0x2c788bbd0f908a8445fe7bd92a6f3b8e30a05355c890e43cf354ba0ea7cecb8)", + "P->V[16480:16512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 963494, Column 1: Field Element(0x55649a43ad2f7e4b9eba35b1886be9e1639b363f5baa5919f62a66c1f2a9dc3)", + "P->V[16512:16544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 963494, Column 2: Field Element(0x50131898da1a54fd0ff5777595ed5b80fa4bf6c769a7926b17a83dd45483587)", + "P->V[16544:16576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 964523, Column 0: Field Element(0x73b9da02071845b90d081f77cc5bda61516d7f6852fb47f339b87573edbf439)", + "P->V[16576:16608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 964523, Column 1: Field Element(0x2e810fccb1a924e174ef1bd70931ada45f51b1f77bd63719312dc331981ce07)", + "P->V[16608:16640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: Row 964523, Column 2: Field Element(0x2c1098f22c834eae7eb5a49a53a8e0f5f381fa31b595d28ca2afb17aa2bf6e7)", + "P->V[16640:16672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1090011: Hash(0x76bf874a5d9d80e3dd061fdf54bd05f3ccd705f47e067b817c14e8b86c457f8)", + "P->V[16672:16704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1161230: Hash(0x6e43b5ab785b7bccf3e2d7bdeb69cf4ba536005c2303b3c4a34534eb777f7cc)", + "P->V[16704:16736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1174493: Hash(0x5bcec8caadeee02c50de89d8b70b1e5acfd109c4d5b26f32030639ef93931ae)", + "P->V[16736:16768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1222955: Hash(0x23c836429e7ff356a69e00937faf563003b1318facdf577098483907b2b5145)", + "P->V[16768:16800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1227982: Hash(0x32b8d378d4414f1f8d267703de3aede1f73618c9b98f6a63aa02dd357faea7a)", + "P->V[16800:16832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1514274: Hash(0x34f489743b24a91edc9b52f5433c3be095adbe6494f7d966d750a0c9546eef2)", + "P->V[16832:16864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1584219: Hash(0x67e0523c8c4817934b2f2bfda91af27c62a364505369c1580d84b2715058688)", + "P->V[16864:16896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1983532: Hash(0x7898ae8a4e40ea247bf9c1d4be35d109b7c92d7c440382ff913640fa00efcae)", + "P->V[16896:16928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2012071: Hash(0x7113e7ef8fd4105ebbabc524fbc859baa17d14322ed299d1926645350084876)", + "P->V[16928:16960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2013098: Hash(0x60201609891fc23c4d02c321200a601b4f0866ab89abb56ff17452ae870c117)", + "P->V[16960:16992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 545004: Hash(0x35f0657dc3221cfcad77a1d428d11c6a0d4dfd6552d6347613d0cfe7a66c40e)", + "P->V[16992:17024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 580614: Hash(0x4adadff35c18ec20964bd036fa629b75fb51606ca4642ee9dc90bcaf529632b)", + "P->V[17024:17056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 587247: Hash(0x73b6e15d0be031b9a8a8f626c0c56c9d44969d7ba308262b7a37736c5b868c1)", + "P->V[17056:17088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 611476: Hash(0x1e0ac8888f7f44148d80674f2e63c844a8150527a521efe539a5db8b0bbeab9)", + "P->V[17088:17120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 613990: Hash(0x3dd2e08a6ce8009231d6969cf1dc64bc1afbb4b5291dfec45e8f476f20522be)", + "P->V[17120:17152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 757136: Hash(0x4241cb34fe0bb7d55eca9bb41bf227ee1e19311635d0f1f19cb7f3d294f7411)", + "P->V[17152:17184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 792108: Hash(0x7b715cdd9049bbb81d32b363ac2d4e33a3ebffc794cfbb80040c2b0472748a8)", + "P->V[17184:17216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 991767: Hash(0x2477d6fb660d3e05c7efee9bb2e8b571e8cd9c3d1e2128654070331b821fcf2)", + "P->V[17216:17248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1006034: Hash(0x58122dea0c487ce4ca526716ec60244535d3d659dcdaa8dba1040d0b80d43e)", + "P->V[17248:17280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1006548: Hash(0x571acbb5658de0d912b53e072f8dafb8a8f5eed65cb808b2de00165ed54c29c)", + "P->V[17280:17312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 272503: Hash(0x1406212a9f295dda7c673247dad028bac31bfb556632d9f94fd6c9a0a7053ed)", + "P->V[17312:17344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 290306: Hash(0x61b9dcb7fcb84b68fce2d47fa88eaa04b568587bd0c77c23f7cd6caa601c5f3)", + "P->V[17344:17376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 293622: Hash(0x42fef98f02ff5189bc87d48c555c6e789248305c666d4ddfbae945da1780f3c)", + "P->V[17376:17408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 305739: Hash(0x13b477f1902d528ad56e8ff0f75cb139ebd199546cf6b8c674d8926079ac628)", + "P->V[17408:17440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 306994: Hash(0x45d9e024be939aa3b786ee8ef0ab5913cda073e4eb3d8f7312e76e93267f514)", + "P->V[17440:17472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 378569: Hash(0x19bc7096a47d960744a0786935d2edd46dcb75d7fa386826dc8e5a520a95cf2)", + "P->V[17472:17504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 396055: Hash(0x75310138f72f0a72aacd343c0dec2681c37542650a3f31dff41b533f7acacbf)", + "P->V[17504:17536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 495882: Hash(0x476565d20dbb72d4590597edb225a3146b67bac73fa830f3db43010d79568d4)", + "P->V[17536:17568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 503016: Hash(0x2ec58662328d7674e4b811445c158c9877ebd2261bd42f8f76f3374a4204866)", + "P->V[17568:17600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 503275: Hash(0x70764c962266fc21dc96adf19a3a58fb76e933ad74a67b790645e22b0cd304e)", + "P->V[17600:17632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 136250: Hash(0x295395b052d709d4fb3a33247ef48f1d7b9a2dad6505ebbcc68a53e27136bb8)", + "P->V[17632:17664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 145152: Hash(0x1b29628a6a681775fb12c9bd56a95b26c4a3ba123ba7756c0f285371bb059c8)", + "P->V[17664:17696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 146810: Hash(0x6584878cb65caa76c9e4b04f08d77dd36de59845d9d257aadc3af6c16ab244b)", + "P->V[17696:17728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 152868: Hash(0x6953c915d8a112472eb48feab829c0e7c4f27ec5371f3eed27a906c656f9945)", + "P->V[17728:17760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 153496: Hash(0x883d31b71c5ae1c3ec2c731cabb9f9b90341eaeaa052a1f00ba7e38535708b)", + "P->V[17760:17792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 189285: Hash(0x53284754b8cbb16867246bb8922e1f2999a5ec18b4a9f7989266738519a491c)", + "P->V[17792:17824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 198026: Hash(0x3a34d6b2de924c3df7aa907e71b9e80ac12eed5cc1d5e00c5cc60bddb07e16a)", + "P->V[17824:17856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 247940: Hash(0xd2a4fd6e1e08d86287c5b6e36b865d7e9793ebb8a4a0ddb030f5a987acbff5)", + "P->V[17856:17888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 251509: Hash(0x5d2c4bb48de834a825bd467d501e1d71474a865c66e7d073dd73ab20510db35)", + "P->V[17888:17920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 251636: Hash(0x52a841c77521a3c8b1a6c6b9a4e19a156bc746f3679532ee58567a0b9b593db)", + "P->V[17920:17952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 68124: Hash(0x1ed0e254681d4215b5657bb73f3417158f11d0ac3eee01712c1a45bfaf0d776)", + "P->V[17952:17984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 72577: Hash(0x72935ce59678d21e97c251aa637931de7fdcc5ab2ed4b771a994066491e6d70)", + "P->V[17984:18016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 73404: Hash(0x4844a3502eff4c876892e6984dcb72eccc9aa7178621f4a0d804f2699bb896b)", + "P->V[18016:18048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 76435: Hash(0x3617bb41192823d289fda98f69611ce0b1adb9c32c7025a50df5d7cb9701dd9)", + "P->V[18048:18080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 76749: Hash(0x233d2870f6f929d3571924b2690cae5e6accbd5e52381a21bd36214a6d766f8)", + "P->V[18080:18112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 94643: Hash(0x4b8209a4b330f7956fbbe484fb6fe7aa383054de61bd44eb41a1297b04fb49b)", + "P->V[18112:18144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 99012: Hash(0x1fb48628aa25eb84d64ce4b8e0ae365f123db076c7c94818d392320a169f858)", + "P->V[18144:18176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 123971: Hash(0x31de61557ce965a3c306a5f4950190411324ba7e2024510209f50f5ba32775a)", + "P->V[18176:18208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 125755: Hash(0xd197232cca3fd09abc8f6422a366a5f61d7697c94c9429794c5e9460ec3250)", + "P->V[18208:18240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 125819: Hash(0x22f3860d19330ab669f6152a2f7e161f3fb33f153355a8c6a504477c157a93)", + "P->V[18240:18272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 34063: Hash(0x4b45b874d7f2e4b3aad18f0382974e838ef507511fa7939db4197a3527074b7)", + "P->V[18272:18304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 36289: Hash(0x584f99f26f99a7efcbd56db4286e67f921ee8a9c6bd812834e6e681601f352d)", + "P->V[18304:18336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 36703: Hash(0x68c424ce132c79b8fda91671fdea950518037bc9f1e22dcb976cf3b7afa23c9)", + "P->V[18336:18368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 38216: Hash(0x3e84b931fae2e9fa5c2acda4d50bdb93a78c481cb2337a0faa428a574475e35)", + "P->V[18368:18400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 38375: Hash(0x3efc7d9d4eaae8fffd92491230b74568e881deb9cad54e31963f0886b40018f)", + "P->V[18400:18432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 47320: Hash(0x7a715530906e67675c45732bca2cd413bcda381c28f81d906a7a8abb2ab0d78)", + "P->V[18432:18464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 49507: Hash(0x44587ed8177268e0178ecd7c12eb048379984844442ef8dd48fed63a772a187)", + "P->V[18464:18496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 61984: Hash(0x38a85055adebae631cececcdf17cd1efeaba753c85e75061da96b66963ad51b)", + "P->V[18496:18528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 62876: Hash(0xc29b2e28c223db2470ac85b6a6720c87f5b9f7ee89d63b1754fff744c081f4)", + "P->V[18528:18560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 62908: Hash(0xd22561081a1685f38ec4b32b0a02e20f9503cdf1da43eb649dbf76915aafbb)", + "P->V[18560:18592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 17030: Hash(0x32798a158bd7690c012be958ca33130db59ccf5629fe76c1a28d4be437d6dfb)", + "P->V[18592:18624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 18145: Hash(0x2fe913d3f308f0de61647757876a52e699d9c6753c33304b7dfaf345e71bb59)", + "P->V[18624:18656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 18350: Hash(0x61a41c7635e5d46abe79ffd64ef22b741fab385f92eb794ab52bef3f26e9efa)", + "P->V[18656:18688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 19109: Hash(0x51f481f446d83193109bed6bba111e9be88391a6bf0d6e2c7d0934a6bd231e6)", + "P->V[18688:18720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 19186: Hash(0x637eedc919440737000c1617d199bedd099f465f3251f8ae4b8f121f1b451f)", + "P->V[18720:18752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 23661: Hash(0x47ff2d938d1eddf5d6780c17fd6b859c1f9b939ec0623718419240882980ea3)", + "P->V[18752:18784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 24752: Hash(0x5a7fb194cd3c70df4d67af07d9f748a585a0a0b3210cc44a2b3c4f57948940e)", + "P->V[18784:18816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 30993: Hash(0x56f60596bbd4cd0dff81cefcf6d00a68feb8ec126d12021ab36355fce94a90d)", + "P->V[18816:18848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 31439: Hash(0x7208c001bab262b7e5b65e88690c4873c3384814a90b1e01a68d50e354782a1)", + "P->V[18848:18880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 31455: Hash(0x40377ffdc30761eced1421659d3f2a6ddad8308cd10db3d0e058f6dedb6b3f6)", + "P->V[18880:18912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 8514: Hash(0x45bd766a4e4da89986c47ef545fbac0bd68ab618e563ad9bc1bb0ac7bfab5a9)", + "P->V[18912:18944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 9073: Hash(0x6a944296ea742ac0e8bbbe74d6a481bb2ab4074ea0d6a43ab6842e7a6c6cdd7)", + "P->V[18944:18976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 9174: Hash(0x42ec13211cd2d8ee23487abe7132cf3ba616df255239570e216bd42416a0753)", + "P->V[18976:19008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 9555: Hash(0x596bde8824f484b06de645dbc33503b23b4aa34f070a35a30d093924666a936)", + "P->V[19008:19040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 9592: Hash(0x6efdc198012d6c3be05a0ce57b21f38b141b4330757ce951b732de7ddbcc1f1)", + "P->V[19040:19072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 11831: Hash(0x5045bf4499b2051c5bde8c00d825ee3335fc9d44f0fb52f59ee07e96412fb3d)", + "P->V[19072:19104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 12377: Hash(0x33f151248cbf99e82a98bb318667d8eb8187ac774ae02a5d1b84c38dfdd4d9)", + "P->V[19104:19136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15497: Hash(0x1df46ba1f131b4dda72e7e12e2c117441ed9579bcf8f1a69caf1b423db965bd)", + "P->V[19136:19168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15718: Hash(0x20e3697a12273cc8099520e8215b9a9a66ca53765c851a537e064cb3cd8d5b6)", + "P->V[19168:19200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 15726: Hash(0x3dfdacb9a6e120d4d2a23d224519bd895a1e6ab6c410ac7efc1e6f4c5523d4f)", + "P->V[19200:19232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4256: Hash(0x16b74a74e32c885e881ec4ccbbc65958faf02b95ba31df5a5acd2cb81b007d6)", + "P->V[19232:19264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4537: Hash(0x29ba149b82f61d99a2449d79a9ea649e1c7d4c5c52d423acbcb8f7bfdbfcbf9)", + "P->V[19264:19296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4586: Hash(0x7b82d446859cb7d2b646dafa7d9060c1053bcd90bb06dac3be5eda1a3ad57f5)", + "P->V[19296:19328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4776: Hash(0x745147dd4b41da43a5be48d060fe35bd755e38e8a0be286dbd0d346c2869092)", + "P->V[19328:19360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 4797: Hash(0x454b9131c07140dc7d181845a3925ce6b2ba4fe265c51bc18a24b52da6255b)", + "P->V[19360:19392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 5914: Hash(0x5a058cb962b5fcf5b7a8f844cc2748c42fa7d066063fff15aecd212e9bcc58b)", + "P->V[19392:19424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 6189: Hash(0x9f5886591dfdb5d228b0ab419ac0d24ae4b2f99e135ada9cb9e29bb99d522d)", + "P->V[19424:19456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7749: Hash(0x155a4da90416718db13c6d8ba5514189144d47a39a263b9f52bd1cb605f7dcb)", + "P->V[19456:19488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7858: Hash(0x211104553c63d5cbbe55ca12746256284d92ec61cba0a09e7b26d4405761a2e)", + "P->V[19488:19520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 7862: Hash(0x71cd6c91611cb6bf014f8b3194b8f905564072121f5f55383d878abffe174f2)", + "P->V[19520:19552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2129: Hash(0x77264fadf661fc58f8615bcb572b950d6356ac44e170f83b46aaa72ac8324a)", + "P->V[19552:19584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2269: Hash(0x768326431ac08c0d33d901f86fafaceee1862652337f878f37fdafe72c69b97)", + "P->V[19584:19616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2292: Hash(0x61c6eb95dc7d2a92f46f85f43afb4e0eb7b2f0a5072b48dc8f65186497f9e0b)", + "P->V[19616:19648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2389: Hash(0x2b7b0c818f17ef1dbefda953012a2eb7738ebd56c5398d93b97f8920fcf4be2)", + "P->V[19648:19680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2399: Hash(0x24e689519f34be941f286f8130386b76377cb8f2ed61c301009ebcaad871b47)", + "P->V[19680:19712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 2956: Hash(0x2fafa3b3ff211fa56d8092dbe2335e733648e1e8c75b76f9b99dee5d57c9cec)", + "P->V[19712:19744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3095: Hash(0x4e6ecd495b5fca51c1fc43e97fa5850f7390bff1e087c280012dd7fb81ae5d6)", + "P->V[19744:19776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3875: Hash(0x704e1ba79af4aaa64f2d856ef034e3a6ace7f8d6a13fce33c3afcbca36499d0)", + "P->V[19776:19808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3928: Hash(0x54ebc40eab1aa545e5ccf91bf1aa930e1ba2153b2d5c50efe981316ed7c169f)", + "P->V[19808:19840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 3930: Hash(0x5196c0cd49e505a9dabededee03641133d67f67e8f2633c2faf9b0980c4d0f9)", + "P->V[19840:19872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1065: Hash(0x38cd1db688e36ca8fcb3b86ea686432195984099f527472ac2f5c9b5bc1771a)", + "P->V[19872:19904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1135: Hash(0x411fb1cf098d31a9baf3f9b6871ba5885860cb641fab4ea9c87036918e6d398)", + "P->V[19904:19936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1147: Hash(0x18437216f2d5b22b1783ef9b59ca62fc995b6c6d3868a6fbdaa3933eaa0dd3e)", + "P->V[19936:19968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1195: Hash(0x19033ef2511dc885a83c6f0c52619f732930c18212997241770a7bc86fa9a11)", + "P->V[19968:20000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1198: Hash(0x41d1309ebbe6f053ea70004298322027b5019301db5b306c09182d9ef1f1f86)", + "P->V[20000:20032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1479: Hash(0x2ad5d90fe3e4f94c2d12c4e4b9fea612a84cf8993a57125910f92f3c0fb98cc)", + "P->V[20032:20064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1546: Hash(0x2716c072e86dc47d52247f222d28808cfef39fcf4634c09408175a2679ce9ac)", + "P->V[20064:20096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 1936: Hash(0x4d5b5d72bdeacd1392d95b163ab558b6bc7479a7fee7753c879a8724e82012a)", + "P->V[20096:20128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 533: Hash(0x1184de175406cd9859bdecf5e4939db23c64702016e7265f911fa677a127570)", + "P->V[20128:20160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 566: Hash(0x15ffde23aa935555e6bc1844ab4a6e95c9e64538b37b90f4a48dd9f6abc2b44)", + "P->V[20160:20192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 572: Hash(0x740b93af0cb4a47aae64a72c6afe61e73b8899f45e7388be3450c4e30f708b)", + "P->V[20192:20224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 596: Hash(0x40c6c260ed65af4ae8a2c8972047c153012feef9e72e7d6587cd853cfa78991)", + "P->V[20224:20256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 598: Hash(0x1f29dddfb4b19b83b6763f6b81b7dfa983688f685f2517114471ac14903ba60)", + "P->V[20256:20288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 738: Hash(0x6b53f9cbb6aae978f6caf54f537f86b58b5b99c325dbc444bb0f8534c033f6a)", + "P->V[20288:20320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 772: Hash(0x5e12aa2b37e26c1090655964d8139dad8e433f79c0a2a9f86ef6efcd4373294)", + "P->V[20320:20352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 969: Hash(0x1072b831adeb71c4bd93fe2bf173ed9d31f840b6444fb1a7ead745ea2a46d52)", + "P->V[20352:20384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 983: Hash(0x5580448cb256190d86aad60e3609816f992b5cd5d97f568f21d6f7ee53bffd3)", + "P->V[20384:20416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 267: Hash(0xf9b5f0fe6a7cc452bdfda3b80b047919b4e85f86bad8723f4cb0bac498ad29)", + "P->V[20416:20448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 282: Hash(0x5e606b1b26b2ce666e99e7af99e286ab29a56f6159f4799441a9c2e88aba92d)", + "P->V[20448:20480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 287: Hash(0x490a20e622d7feed1feb253cad5e5b6a97aadab5b1bb074202405d48c64b494)", + "P->V[20480:20512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 368: Hash(0x63f7c8a4cd566b89d40a72ff100079c1ce9ede3b2c8abf00e9a7e7b3f1424)", + "P->V[20512:20544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 387: Hash(0x4026302d307702c153dcabfbba8c8825d45dd07ab37cb2084d445ebacccefe4)", + "P->V[20544:20576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 485: Hash(0x4c8435d8ce2cbdc8e9cd3b93b8dc8f8b574e3b19343552c7ce1fe3a2baa954d)", + "P->V[20576:20608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 490: Hash(0xe511cdb41ae562ed7b4851f20a9f56fe5898d0b70a6129facb35d51f2fb3ed)", + "P->V[20608:20640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 132: Hash(0x6c6029f7642763da9fb86e005ddf9bad4e683d56613e110b4172a8b94287110)", + "P->V[20640:20672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 140: Hash(0x55fae970142d7e706f9db5cb895aa58a0f80f8e7ebf8950ffcea30f0d3c6692)", + "P->V[20672:20704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 142: Hash(0x18ccb38b6f16df508c6835a2077707b201847feb761d85b4858ef8e569f7771)", + "P->V[20704:20736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 148: Hash(0x2a80ab1b33f6617692c49bc6334be5ff148b2b519d55c27e7e62af88f8da2ea)", + "P->V[20736:20768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 185: Hash(0x167e0eff239b0b2ea1c7a87e331f3551b189059a0e4936e16906f6293bf8939)", + "P->V[20768:20800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 192: Hash(0x365155116808ae815f1496867ecfbcafdba742edbd735395c27cfebef37b1cd)", + "P->V[20800:20832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 243: Hash(0x77601782c4abb8240f4e1a1f5d454ce7b8410f6e24ae9c4904746dd5ffb9ac)", + "P->V[20832:20864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 244: Hash(0x5798acf2e44a3362fa109f1c6c2bc7abe5b3593c879279a892d77317e28b51d)", + "P->V[20864:20896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 67: Hash(0x6cdb3deb6b200c08b85f37e0d9dca4f5f95b92b88c05984f1e680fd70bee333)", + "P->V[20896:20928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 75: Hash(0x3bf7e71b516a4b3184fd703f01d4e78b9e7f4000974aebd3b6fdcf621645d11)", + "P->V[20928:20960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 93: Hash(0x2dd0b8fb3d65fd4f7a237b4c162a864332d18399d7b4b958088941acbcdc68a)", + "P->V[20960:20992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 97: Hash(0x45fb1daf16e3fea3086fbcd3cf318b1cd839d7f7fb3809dc6765bd0c1c452b3)", + "P->V[20992:21024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 120: Hash(0x45c238c9a036dcc8899e7f2acb9896d37fdbfb6bfe83ac3403df3b3ca08e547)", + "P->V[21024:21056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 123: Hash(0x491c2d66797aa503809fdb3c22712ec0ff0096e6619eb927abf8642c8e256ca)", + "P->V[21056:21088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 32: Hash(0x259627aaf0c908cd4d552dc95ef6aa31dc9208295ec769a9498975afa5ebb3b)", + "P->V[21088:21120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 34: Hash(0x67493d0e29f35ba5ae8d3dced531d2c49c0968256e1e8d7aca9325d73a37980)", + "P->V[21120:21152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 36: Hash(0x2ca6ae07f14864b8a4f9668e71590387b8049e330d9cd877add91519a566f2e)", + "P->V[21152:21184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 47: Hash(0x6b595da6c5d92b68df9f8e86d0a24080b5ff4bf2f889cb5e9d307bb4d2825b1)", + "P->V[21184:21216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 49: Hash(0x74686f6df7daf221bc44e7a30b8a3bb7cee7af21cc9dce34f717c5c37ff68fc)", + "P->V[21216:21248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 19: Hash(0x10ae13007e505c55cdbe53fa8aca0c4e4ed17f06d0d7166db5d9c906af26ea7)", + "P->V[21248:21280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 22: Hash(0x315a7bfdba21527c98cb3b2fdae04e6c3dd72a122871324133a865586a802a8)", + "P->V[21280:21312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 25: Hash(0x424797f365fa05e70e24c69df07158098fd7aa06874563107100404ae54c2d9)", + "P->V[21312:21344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 31: Hash(0x45114abcd1ab14231da5dc92d366cd3095acb93968535fb932dce76a7201f01)", + "P->V[21344:21376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 10: Hash(0x7b1932aace3cc5708c12deac631311e43933a1896c214ca2d7489d683dfdae6)", + "P->V[21376:21408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 13: Hash(0x7ce4b6d82068a3e64048fdda30b70d24d9a4639ba1d889c3de179a91ddb5825)", + "P->V[21408:21440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 1: For node 14: Hash(0x17f4652e7c74d4042b8fa7381368990855b9069d78a029dae4894f3696e779a)", + "P->V[21440:21472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 41434, Column 0: Field Element(0x9f5f1aa9b99b5eccf65dc0faa499655c0f6abdeee3c18cc623f1c4748b2f9)", + "P->V[21472:21504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 41434, Column 1: Field Element(0x72bf27a3274a3d0835d78d7989e053b6df461554dd252e7812f7cd0b628b7be)", + "P->V[21504:21536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 112655, Column 0: Field Element(0x13b82f76344441eb44d9000f2d4a2ed0d9771d047f4ae32e96c293a42bc2b31)", + "P->V[21536:21568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 112655, Column 1: Field Element(0x4fbd1380f4ed0cef41d2786a08d88f8926e5e955523584321f12d73f501a5f6)", + "P->V[21568:21600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 125916, Column 0: Field Element(0x171fff55e989ee06b238047370702414f34bd776b846dd6d311cde3e382722f)", + "P->V[21600:21632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 125916, Column 1: Field Element(0x410bb3fd591e8d9d725bb0fa6b3b64593148b8f2f1a671366317b811b8f4da9)", + "P->V[21632:21664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 174378, Column 0: Field Element(0x57aea48ab57c44c247ad1e7e75cd9d5e4e887bcdb4672705651add2e02c6f38)", + "P->V[21664:21696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 174378, Column 1: Field Element(0x79999b60c65c1bcef7a051ee12af9659c937789864aedebb0f555a9d6ebb193)", + "P->V[21696:21728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 179407, Column 0: Field Element(0x5f9a9397421a59b8993d8b277bd714562ed809bb4869f67e6bf5eb04431aed)", + "P->V[21728:21760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 179407, Column 1: Field Element(0x79e28600612c86499df2fcc43e6481a7edb6f676053ee37d3de662bfc630e10)", + "P->V[21760:21792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 465699, Column 0: Field Element(0x63cfde5a527133882b896118bffa55f2c185faba325c1d28d13c6f6ee7be156)", + "P->V[21792:21824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 465699, Column 1: Field Element(0x1abff36b2277bc56ebd71904f908e0d4a47314d432569bee33e442889c3bc66)", + "P->V[21824:21856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 535642, Column 0: Field Element(0x559accd10bd9226dfb1671d4b27637b387be94b49254edf46efdc16fbc7bee3)", + "P->V[21856:21888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 535642, Column 1: Field Element(0x34c8b9dfa53d02c27dc144e885efaad4756bda49dbcae7550f567b122601e07)", + "P->V[21888:21920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 934957, Column 0: Field Element(0x4819ba9984eab26dac89de6ea8d6ded5eedc0869a45d1b035f7e42c21d46093)", + "P->V[21920:21952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 934957, Column 1: Field Element(0x4f70ffee1511c2db27233edd90ef0b0a5e43ed733be6c950db371fcf5b26601)", + "P->V[21952:21984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 963494, Column 0: Field Element(0x30958d7c67f5e4755a78baf1056a1bdb428364fa4de0d0f8e136bcd94abf9d3)", + "P->V[21984:22016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 963494, Column 1: Field Element(0x62e05bf0eeeee788ba214b9970ca1fbe3dfe9f3fb9af1d66562df654027c7f)", + "P->V[22016:22048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 964523, Column 0: Field Element(0x1e06247ef443ea3fc6d4ee9f88d034c1f6b0a9836ffb83ea2ca756eb0fa2bf7)", + "P->V[22048:22080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: Row 964523, Column 1: Field Element(0x291c2700a282cca7de999fe5e630f15938e4fe8ae7aa1ce7fbf387c1beba083)", + "P->V[22080:22112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1090011: Hash(0x5ed0ad56f9a386e63f7ba96e3abd3084dd92fa8d5000ff5555ab510ea2cc5ae)", + "P->V[22112:22144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1161230: Hash(0x442b69b9f50d2c1ebce658254e1be1799fe9ff7365f090f7544c4ad8133c3ad)", + "P->V[22144:22176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1174493: Hash(0x41b6e16e7c1298934d50c51eab30662cb83837776257a36ee2992bb73138bb8)", + "P->V[22176:22208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1222955: Hash(0x553a86a4bd6316afa56ef2e1d2c8493327d890bb65291d977b4878eba362fd3)", + "P->V[22208:22240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1227982: Hash(0x3c591b60e44cc63be431d6db8e9af86939e772b4ffe9223bf130476818626a1)", + "P->V[22240:22272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1514274: Hash(0xb24b777fa6b2abda830adea0baef75f577a7a151286b47d486360317852558)", + "P->V[22272:22304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1584219: Hash(0x26f931aae9b68e1908b7415c8836901061632b403683d2bf17d7b3ebec9becd)", + "P->V[22304:22336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1983532: Hash(0x1b76681469cc9aa4c271fb17d88296d9ee26ba373f08cb51c150727aa690148)", + "P->V[22336:22368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2012071: Hash(0x1a0f3624e8f3e77a131af0600911b541d3a538f0d03bc49e9bea5a385c51e27)", + "P->V[22368:22400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2013098: Hash(0x1b389a05444050ac51c3081c64ea1c06b3984eb00e826a8e9cbb6336cad8172)", + "P->V[22400:22432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 545004: Hash(0x1d00f88de77d84b8008a5b3acc92b8f24c2b75225e3423f8182fef274dfb0cd)", + "P->V[22432:22464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 580614: Hash(0x22f43de3b9ec09c06ed26a4564192a1cc51cfd9d06f990143a403e1db77f436)", + "P->V[22464:22496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 587247: Hash(0x304f7f1b70cce14afb15693a79be28bea72aa2864087578e5bc400664981fed)", + "P->V[22496:22528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 611476: Hash(0x18c75e4fe62072560d1b14a277914451485bf3d5016fbc14a3c700de2a3112)", + "P->V[22528:22560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 613990: Hash(0x1610d88979df7750884c604b0ae655acf131161d3dd3bed4dd53216e1ec106a)", + "P->V[22560:22592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 757136: Hash(0xc54cdbdcaa652919564f159b9db0adc5b1a23b0a58d275112eb95d51df3b6a)", + "P->V[22592:22624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 792108: Hash(0x6254642f00f8116081f70e83c2f39a25a48eec71d8da9f2a906a5ec5a2b7607)", + "P->V[22624:22656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 991767: Hash(0x32f6ba93e33fda5ce122a9af2f138c2b49d605511e45feee9a82a434fe49af8)", + "P->V[22656:22688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1006034: Hash(0x7838080ea300b209bdbcc98a0538901fa51d5d9163b44811e359b967ac27ea5)", + "P->V[22688:22720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1006548: Hash(0x71ac2aba2c44bd811ae8a2e5d6616babac81969c11dc0f998268680e564d35d)", + "P->V[22720:22752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 272503: Hash(0x613c33420748a1d01e4b872862ecb38317e431da100150113bfc11a245ac8b3)", + "P->V[22752:22784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 290306: Hash(0x74c38c710fa1a7b2cb6f27519817ca9a3205705f553979e7f85aee7ec6c22f8)", + "P->V[22784:22816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 293622: Hash(0xf6b1c872e3adffbb127c9346cb84e4411d5a2bd07f28f0fdeffe7ceb9b7310)", + "P->V[22816:22848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 305739: Hash(0x157398e219f62ea6ae0a0c3eabaf45e0fec2cb483f88615a8cd6e6f016755eb)", + "P->V[22848:22880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 306994: Hash(0x4e14980b2fd45bba4c17d16fbf95bf159bb62f3da71339cb05fa927149df881)", + "P->V[22880:22912]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 378569: Hash(0x13ca15942d5f9c532ff492d5ca17b585a07259f2c547102aabed7ce142f4804)", + "P->V[22912:22944]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 396055: Hash(0x2a711e299f75f29ed89194e4b1bcf9b8b0b11c6170dcfdfc169dc65ee4d8576)", + "P->V[22944:22976]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 495882: Hash(0x3718b290b9773cf1a8a23ac6682cd86c5f22f9df071d65b9bed7e9c9d837044)", + "P->V[22976:23008]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 503016: Hash(0x711947ab059ae79f20ad8ac3370cc24cea163439c62d44db0ed3ed69a6d9db4)", + "P->V[23008:23040]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 503275: Hash(0x42ad7ac72346ae13da61e977d893f1965fd55752ccdde26532654a7e59b8ede)", + "P->V[23040:23072]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 136250: Hash(0x2198db31de1c7751bc6057575acce4b27db3a12d4cd753658233adfe9279ee1)", + "P->V[23072:23104]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 145152: Hash(0x44001956298fc292262e0cd3da64e24241f3d46f2221363193e3f624c98424b)", + "P->V[23104:23136]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 146810: Hash(0xca1d1dcab1d3a6e2b903b78f7df6c6ebf1d3dae22bf9df6d87b68808705f3b)", + "P->V[23136:23168]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 152868: Hash(0x30de7181da52bbe8ce9ac8d2b4ead3498724a74bab917a6c574cc2a6da335c2)", + "P->V[23168:23200]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 153496: Hash(0x174583523e172f47c86e5e8415bac1bd9ea7f12f15471e7a0600cff7e62498b)", + "P->V[23200:23232]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 189285: Hash(0xc04e4ea4ac3c64a00de7823932817c33fe15583ffaaad8d440a580b34f842a)", + "P->V[23232:23264]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 198026: Hash(0x143644e8ae4a76a57c00be3745fff01709c21fdd33c3114d65ca239ea5b36ed)", + "P->V[23264:23296]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 247940: Hash(0x7276d37835d73fb4ccfc438d38a4dac150aba56a16eef4b8e70e010148cb34e)", + "P->V[23296:23328]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 251509: Hash(0xcb5be962fa573ca2fed9531b4e76356ed59d90f4abd0863a32c749a1230cba)", + "P->V[23328:23360]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 251636: Hash(0x2dd02d6d7deac2a5795053b1677c383a0006a9920f6225e0bb24699a41a9bfa)", + "P->V[23360:23392]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 68124: Hash(0x27c5b9752a003e0a206ac49017c9f7af82aa94bbdf9e42e63c0a7503177cddb)", + "P->V[23392:23424]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 72577: Hash(0x574c5867b15f327ed01160779e2cbd031f4b63383004f449ce3c636c41fe6bd)", + "P->V[23424:23456]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 73404: Hash(0x4bd1348ef74a960b8e38590a59f7f6d1c10af745d5e68dafb60f0f2dc984c45)", + "P->V[23456:23488]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 76435: Hash(0x47a5cca551ca6d7831cc1a65cb8f7c4ea8004c3c36e8098be6ea15da1cd01ba)", + "P->V[23488:23520]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 76749: Hash(0x6b510510f816650fb58d67cd86553494395020edf43bc535497152fbc138e48)", + "P->V[23520:23552]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 94643: Hash(0x142797f368838d43acc7259f7f80c624d9e77b3a44f538c9bca8c17352e1c7a)", + "P->V[23552:23584]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 99012: Hash(0x3ad1d5a74f8d5c0d4bcdc08d6a619243141a2431fa873d0accb48dd3e54fbeb)", + "P->V[23584:23616]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 123971: Hash(0x4c25976fb979e3737d977df8066fbc883910afade32cf3cb7ad9e4fccd2a40e)", + "P->V[23616:23648]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 125755: Hash(0x546d6e49fdd023231a2a21bb96e69a0a85c00957b44e19522594be4b3966a35)", + "P->V[23648:23680]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 125819: Hash(0x2aedc23a5989cfcc61c5588c5998a3db7ab61ab122ed49ee9b3a33da0de4802)", + "P->V[23680:23712]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 34063: Hash(0x401bc257a54a825fb2d25197c5e2ed8b748918b078b2a223b92897eb2cc0b65)", + "P->V[23712:23744]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 36289: Hash(0x52fd115fb58788d231e2864956bd740a1ca3ddc1dfaac03aa15d29d5d722b56)", + "P->V[23744:23776]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 36703: Hash(0x3ea4fed90592184b0c345fe16b73ea05c5a1ac916db4f6c383d323cf465d418)", + "P->V[23776:23808]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 38216: Hash(0xd763b554bf8c82cda13f723a3c444638e943afc968804ae4ab3b8644a0d366)", + "P->V[23808:23840]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 38375: Hash(0x237639298a7b9b61f13435c6a10aaea67540b4143fee4cdca5815250a4f3acb)", + "P->V[23840:23872]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 47320: Hash(0x7be2e3cefcc8dcdf879e58f4db63bdb59b50ebae315a5c329d34aafd1fd2036)", + "P->V[23872:23904]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 49507: Hash(0x663ad17059a8ffae0a1f61af7e2370910c9202d5e112d389fd3c26407782e0f)", + "P->V[23904:23936]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 61984: Hash(0x1f09e935944e3dd5aec3564740ce94797502d76f3b60ab1818ab3e341222d57)", + "P->V[23936:23968]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 62876: Hash(0x42a4962eff98e2a054bac436e219c45344cb4d48de0f80b428b8613d8ef8dc3)", + "P->V[23968:24000]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 62908: Hash(0x1d26beaf80fceb694bb12e5f4494785c0c0f9e7679a4d34f06532fcdde80e1f)", + "P->V[24000:24032]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 17030: Hash(0x36310d4356bf0427c73f21d5824fbfcd144a65c5028da18418f7e62787eb11b)", + "P->V[24032:24064]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 18145: Hash(0x49ade9bc6f55fa5c7975b1aeffe78664d0d0657c9cb15489c9dca816e178606)", + "P->V[24064:24096]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 18350: Hash(0xa925755cee121cb0e71bc140d0a8a44afe1b6cc35974d7bc0d3475462eb148)", + "P->V[24096:24128]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 19109: Hash(0x4f617bcbd7ddf77488efa3cc3f92bf339a9f20749217739c5d47d222161089d)", + "P->V[24128:24160]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 19186: Hash(0x3908752a636fb4c420f1ce43c6e6c373a5b47d14324001dd6e3fb6643c75d8d)", + "P->V[24160:24192]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 23661: Hash(0x7ac404d217d87e4cc85339bbbcf8a45eab36643ade76069ff86bb56b2605b43)", + "P->V[24192:24224]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 24752: Hash(0x524b80121d526c0de43ffb41d1f715bdfc1238f80d8018f7a4f77f7e1a1f2ad)", + "P->V[24224:24256]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 30993: Hash(0x3573a39362061e9911002c91b3c038064e449d4627ce3038625ce49eb64fe3b)", + "P->V[24256:24288]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 31439: Hash(0x4449a5a65ba07a81beeee5cdfe192ba698ff98d0a4f6f383897781dfa36ac4f)", + "P->V[24288:24320]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 31455: Hash(0x278a1624a16e189528a9bb51c1a8b9f9d8def87a5d5012f42e13c0b35db1532)", + "P->V[24320:24352]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 8514: Hash(0x37f31dff50a8fbf1e7b1e925ed371c13517b34c350c9788ba5eb5976bdead0)", + "P->V[24352:24384]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 9073: Hash(0x1d8275bc4b1175b161a44cb4dc40aeeac53bb36c39c2b5fa62538e3f03436e6)", + "P->V[24384:24416]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 9174: Hash(0x67a47b379467a295e029bce8bc9c767b79a3e86d0c7b1ffeb8d99cefc98ab50)", + "P->V[24416:24448]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 9555: Hash(0x553e1aef1cae6e8614b05a5a490ab89af6faf3e00cef1a352fd5da8f0fb8ab0)", + "P->V[24448:24480]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 9592: Hash(0x2646afd5827f89941b15dd7610e1302f5007e9d0b30bd5b0c0ea174ba649c6)", + "P->V[24480:24512]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 11831: Hash(0x60ee51e04d74ee274e9de46f88c3211d8eaa4c2943467d6ffc2ac7273e0210c)", + "P->V[24512:24544]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 12377: Hash(0x9c2d96c57bab6f945a73639d24eab2b39b25780350f0a1111da20984775964)", + "P->V[24544:24576]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15497: Hash(0x15e959328ee41998a06d8873ae3ce994679fa40198223f4349cda7b34489bc8)", + "P->V[24576:24608]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15718: Hash(0x43386383822db1b2990521bbe10e205e398bab0972a419ef56dba44eae2f17)", + "P->V[24608:24640]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 15726: Hash(0x737b0589c8f6f9e2147d3217d34a56b7c833cad296fae61c716b4e3876c6799)", + "P->V[24640:24672]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4256: Hash(0x3d5f426f929e83f70671abf5ca181855efe9150c95df3beebe5366130831d04)", + "P->V[24672:24704]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4537: Hash(0x67e3112ecd28be81800c00a9c1b6ee130a95eaed947d6ea9a37025dfca6376d)", + "P->V[24704:24736]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4586: Hash(0xba256fff27749fbd1916dd4ef3110ef5fa351ea8bc1b91c099b6a550dc17)", + "P->V[24736:24768]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4776: Hash(0x1cbde48592189e5b898dfec852299dad9ba136e21d9bb9cb6e00c23b5e1b47e)", + "P->V[24768:24800]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 4797: Hash(0x558b29c810e20a7937a7f6a5d4b5e426dfaff647ebc8033fb87eb3eaf26ffa3)", + "P->V[24800:24832]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 5914: Hash(0x17d152c3a5d7a3e84bbedfa4c009d7c8d948f82000aec2051b242bd333caf04)", + "P->V[24832:24864]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 6189: Hash(0x2b644df51a8d047f3bee93cfd762faab5ad3b510f571370db064639e0399333)", + "P->V[24864:24896]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7749: Hash(0x63b172a59efc94a85d69b580805b4f48a030609fc4f65edb739b79180b35374)", + "P->V[24896:24928]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7858: Hash(0x2f4eb9ae7a218da25ee7e4a84bca63ba8ac709156f80d8e6a719806fe506d29)", + "P->V[24928:24960]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 7862: Hash(0x6923cb14fc240c9dd620dc18fedad0d9d8ab0dbf2caddd02be8557b61123845)", + "P->V[24960:24992]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2129: Hash(0x404386b8ed5fb66f2c81a77547710ffee66663ecbdadac44141a1a4ee4d3ee5)", + "P->V[24992:25024]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2269: Hash(0x4169ae44a8ae28fc940246edf53202d05434d9c26b265a4d1460ed46c0f1cec)", + "P->V[25024:25056]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2292: Hash(0x7e81870e2de663483459372a0e743f6ea94525ac864991f05f7e07e8bb983c9)", + "P->V[25056:25088]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2389: Hash(0x21e8cda96623f2c2efc3f81731fd1a49b0fa3556ea2195594ded06b02e08540)", + "P->V[25088:25120]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2399: Hash(0x1e553473ae3c9202bda279890890bc26f75735671e220413df9ebbb99e9da3)", + "P->V[25120:25152]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 2956: Hash(0x4575c9c4b2edc71bf5387d29b2230e71d6f7cad719bff900611b08525a60043)", + "P->V[25152:25184]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3095: Hash(0x4cfa62990c4ca1eae2fbee9ddd12020e1353bfa170f661e2ba9df790e252bc7)", + "P->V[25184:25216]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3875: Hash(0x61c76430f1949ab6c1cc64ce56b03a65d7ae1eb1888f5b29f9ac8adb008e86d)", + "P->V[25216:25248]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3928: Hash(0x72e07dd906562d23ca045a30ad3e6bb9af25a7743861e620f1f0bb4b5ca88f9)", + "P->V[25248:25280]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 3930: Hash(0x1df8b7f1f0067c4f5b772a3d795f13ef586e8270873674800866b5d765bfd6)", + "P->V[25280:25312]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1065: Hash(0x4ef10c6c9b1ae267c781e99e89b157a9e6803079e3752d5bb34735cb4c6f0a0)", + "P->V[25312:25344]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1135: Hash(0x7e68453eb130d0543028a5c976e359e3833eea2fff575275335682856d2fb90)", + "P->V[25344:25376]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1147: Hash(0x5c8aeaf46fbb35545ed90ea6ae4cdb3e97e01235197b027cead1299f952f04f)", + "P->V[25376:25408]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1195: Hash(0x20c874e0e0e4b47af3ee0fec4addc22b8c1f065430b050cd6c9c2047b8e10ae)", + "P->V[25408:25440]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1198: Hash(0x1b026a60e3325605cb3a2a4786b25aa4e342abd2530f650836062369489ac1c)", + "P->V[25440:25472]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1479: Hash(0x7dbd58b241124a8f25f4592164fcca9dc831327e8ceb23dd4f604219e235823)", + "P->V[25472:25504]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1546: Hash(0x17eaf24c129cfa2dcf2483cc03a401f97ec978a202dedf3abe293ef93cac17e)", + "P->V[25504:25536]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 1936: Hash(0x142ab609cddae8563923f4975fd5f65042ecd326cdb7230e9cbcae58f00f022)", + "P->V[25536:25568]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 533: Hash(0x65b89ce6e328e87500b362c7b9b7173eada2ffa6fd5dce95b5f55af1986e03)", + "P->V[25568:25600]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 566: Hash(0x5f58a48456e1cf015df5d54096466ba300cea45315ce349b70b64b1add463cb)", + "P->V[25600:25632]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 572: Hash(0x77f313ab55e72957ef3c041430568c93fc8a934ae29b7f2260edf64404301f1)", + "P->V[25632:25664]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 596: Hash(0x6acfab49fb56c908a819055a00cb87cfc5b1d5eb98a5b7f78b7e7fb838efe5a)", + "P->V[25664:25696]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 598: Hash(0x19ba2a87df14ab3a077cdb001ec3ccb5646676dd5d864934b7c880dc9f2364f)", + "P->V[25696:25728]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 738: Hash(0x4da39feaf7b9bb905206a15ecff82ed0cb3f4064b482f275617733cfc415486)", + "P->V[25728:25760]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 772: Hash(0x150b3a5eab32aba6008394d2a631e09ad93b3bccdabb1c3ca5db1081b8fe7ba)", + "P->V[25760:25792]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 969: Hash(0x522205895d72c5a9fcf9739d309e0d630154ac7706651da4c9fd487c831719c)", + "P->V[25792:25824]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 983: Hash(0x6f89886a736b708b73781ee0f61f98769cdfec3d6fb50cd39f88fa8fb2e5ab7)", + "P->V[25824:25856]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 267: Hash(0x580d3bbc243b78d11bdd4c7c83573320219c1f3cb7e68bd036e819db2ade1bd)", + "P->V[25856:25888]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 282: Hash(0x68c4af2e68a2214fe1c1cbc38b027e893c54e4ae7a62cce957d6ea98975aa26)", + "P->V[25888:25920]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 287: Hash(0xb0b26dd40b810799b3c97f1d97b57fa4874b60e4c939c5bed08946e57515b)", + "P->V[25920:25952]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 368: Hash(0x2f71628114b93ec56406243ed6950ebcd5621d7fac618f69f46fbba2251287)", + "P->V[25952:25984]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 387: Hash(0xda4c6c46ac22cf71ec6734b402d60dfe7222aeb723dfc3433d1ee5209e3dc4)", + "P->V[25984:26016]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 485: Hash(0x62de9be8f9c6e1068459d35b05962fb8cf813644f06baae24c8d8909734e59e)", + "P->V[26016:26048]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 490: Hash(0x1b50b35fab151bd41b733a3f7300096be71ddeeb71a5702270bda492253c7e6)", + "P->V[26048:26080]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 132: Hash(0x23f2d3505d8e5f6368d494c942ceb9a5d9909ba9acdc746d9a23ec8233e4a0c)", + "P->V[26080:26112]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 140: Hash(0x6bb10aa3290f98b6d0a7728f87289e6f58eb07d168f4acc53ed774fa2439af4)", + "P->V[26112:26144]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 142: Hash(0x7676138c9d6ef7837925e14614cfaf7768d60538e9468344b4bb803ac99db3c)", + "P->V[26144:26176]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 148: Hash(0x473f427f3559b339037efbfd7307e21708d5bc175e7870d85760c9527361748)", + "P->V[26176:26208]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 185: Hash(0x4a65afb192ef85ab4eceba87c337b3590a146a08a205a934ec3bcb251bbfe5e)", + "P->V[26208:26240]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 192: Hash(0xb67dbb15421ccb68834942af8555419817c97562aa6a28d88e6a9cfe1ae27b)", + "P->V[26240:26272]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 243: Hash(0x3db5119ee9d336136d5b85e796391c4205d51915bba3058ff3201d261d91605)", + "P->V[26272:26304]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 244: Hash(0x7eacc5755d6ecbd7eab17956e5b7c42313610be2e7c626bfd6609a158b8ea36)", + "P->V[26304:26336]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 67: Hash(0x2990b0a2523ef0060036105c8b120b62d609d73cc7726c860ec8c882ac28e2e)", + "P->V[26336:26368]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 75: Hash(0x558ca1eb976b9c29f93fcc5d5e5d6fc83ecfdf2dac33b73f29201dc5a3a8d7e)", + "P->V[26368:26400]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 93: Hash(0x5aea1a246a0769dc917f8cf441cce59b904cacfce2b5eb36e9c327e94540e6e)", + "P->V[26400:26432]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 97: Hash(0x6397d599fd44667c66cc04a1e242007ff17684ce97841960bd9d42744372e1)", + "P->V[26432:26464]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 120: Hash(0x2e5c1eca489406442a71640fcb6d4f42dcbe842aafc17547085f6dbbd1b731d)", + "P->V[26464:26496]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 123: Hash(0x5a9e913cadc40dae533ba825f56cd6578ea6dee31afd6e0045823d4f96f7ec1)", + "P->V[26496:26528]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 32: Hash(0x3386d06ae13ed4fb69ff929d05eb7ccf4b22182edd80833e65efb948ae62fbb)", + "P->V[26528:26560]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 34: Hash(0x362246e9a49504c53cdcdd82ffeff22118394790b12701859edb86997fada2)", + "P->V[26560:26592]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 36: Hash(0x55a3946f298b3b150509d83906a9c5b51989dd0a6573f2609a1fc4248411900)", + "P->V[26592:26624]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 47: Hash(0x69d6244c00c45ba12bcb211127b899d98c2be6dd0eadd95d09e3c7fc644267a)", + "P->V[26624:26656]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 49: Hash(0x44493e93650631ff8a1222b0161eed9582748313c81a01aa7ec0f806ed38284)", + "P->V[26656:26688]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 19: Hash(0x70831229912f77d88e4c1511e3a1413ff978b5d46636f685e76b0d119985c4f)", + "P->V[26688:26720]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 22: Hash(0x8cebe0bcc66bf0ed97641f0ed4451115df472c9aca01fa06725e4398682285)", + "P->V[26720:26752]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 25: Hash(0x6d1d6c1ff011252ee9e109ea3f08731d0d225556f7456ac72cc69fc7f690060)", + "P->V[26752:26784]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 31: Hash(0x2b205f830e6776a8ef14adeb57100636b0608676a3821e0458f728bee4d963c)", + "P->V[26784:26816]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 10: Hash(0x7914e1c47f6aa533904c12475f03c720c4cd041a10a25a091cb76415e7afdc7)", + "P->V[26816:26848]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 13: Hash(0x6f7b159cc893bdaaf5814ab13228368ce8c3095b3725ccd35dcfef8f4b375e3)", + "P->V[26848:26880]: /cpu air/STARK/FRI/Decommitment/Layer 0/Virtual Oracle/Trace 2: For node 14: Hash(0x4c7954617bbcf951b2c6b525643d782ca1842dc7f98b142df4efd7bb5ba3bae)", + "P->V[26880:26912]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 0: Field Element(0x30e784836e3cdb79822144976aab44d3bc53b7f0c000ef7f4bcb49f7dad2898)", + "P->V[26912:26944]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 1: Field Element(0x79c2e756f571f0eaf6913809d4484424c3efbe4b7f27446d20e6f6b4abc486c)", + "P->V[26944:26976]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 2: Field Element(0x13b68db9f799fdabadfdb5a6f0d2313033f21dc2f61e03a5d6ab668961da61d)", + "P->V[26976:27008]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 3: Field Element(0x195e8433f93a23230ceb435d77636dc5af3a7ef5f8f76aa783e42389826d063)", + "P->V[27008:27040]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 4: Field Element(0x62228173eb5737f100b3bab01daf46956002eab51b69aa21d98ce3627968f84)", + "P->V[27040:27072]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 5: Field Element(0x4b1132cbe27ab1db4b5c74e438115ff86b55639ac65fbfdbaf86b3b4dfe8f14)", + "P->V[27072:27104]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 6: Field Element(0x536239a40c01de9c9b3c014811a3d7c7537c80682672fed027a51a7887bbe0e)", + "P->V[27104:27136]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 7: Field Element(0x4c516e969df0dccde431d1a7fabb8bd1855c5e6887cd806a568358d66433149)", + "P->V[27136:27168]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 8: Field Element(0x30b30801b56e8740a53a1371728ed37b0cb090f1c86bc37ad6eb7b8d24a1848)", + "P->V[27168:27200]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 9: Field Element(0x7fd9b1927ad8d44c522eb4145a898430fa8d291f8ba486764ba8747cb0d0caa)", + "P->V[27200:27232]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 11: Field Element(0x2a49ba672bc2f4f709052eed74487427a298685169a03c0c5db0114a96a081)", + "P->V[27232:27264]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 12: Field Element(0x5584c0c6d58c05f366c82ac34a20a79fe0fd28c8d75f2710613a43a3c9fb6c7)", + "P->V[27264:27296]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 13: Field Element(0x76c260e59522269c1d3fe53aa737535340629bebe12e434d9bf999282b4f802)", + "P->V[27296:27328]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 14: Field Element(0x74901d64bf781aa24dff5d6174c4a9098af5a3a0e19c57ec01090fdde2333c3)", + "P->V[27328:27360]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 2589, Column 15: Field Element(0x5b2d1e62a1c76f60d8ed1622cd21cfc186044e4b26339531db6863fd53d45ab)", + "P->V[27360:27392]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 0: Field Element(0x22c19078f8fe74db20988d5cacbeb5818d6a366221e63197a5d5d52cae76750)", + "P->V[27392:27424]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 1: Field Element(0x2873402df8dabdcc131591ebf0c63d21aad8235c89ca662f2fab3f041b02d81)", + "P->V[27424:27456]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 2: Field Element(0x5601a6d59f8ad02c45260e8ad18e888d98a622e13c9b7181a70111110911122)", + "P->V[27456:27488]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 3: Field Element(0x464db4a48aaeaed0559309765b8d099cef749463dff24b07d62442fae896796)", + "P->V[27488:27520]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 4: Field Element(0x6d6fe97e9367678977c60bebb36ca3b7d37d57e1ea16548b922e314dee2d448)", + "P->V[27520:27552]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 5: Field Element(0x57be0e0ef047c1091ac859a5e9819f9a1c1ddfe47033b19c9f2700a3bb6742a)", + "P->V[27552:27584]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 6: Field Element(0x443d6ad1fdd10cffcfc27c4534eaf7803e9c2131845026b8b1dd07ad5e40331)", + "P->V[27584:27616]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 7: Field Element(0xd2119a180e890cded7bbdc187c58e37b0a15a706d28fafd0b7491859d17d8d)", + "P->V[27616:27648]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 8: Field Element(0x5ee4da918d4f06c3b06c676d359eb91bd1d7783b637f708c9967151f1c1da9f)", + "P->V[27648:27680]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 9: Field Element(0x61b736cb530443181f0c86859f9ecda2fd3aea02ca9fe9e4f7525bc13c6fb52)", + "P->V[27680:27712]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 10: Field Element(0x1a658f3554c7b9349f59bd1d7ae38e847c2f3145b0749d8bca80876fd388668)", + "P->V[27712:27744]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 11: Field Element(0x674e40abfabfffe7146207ef6507bc663f2d8820b74d95e1fe8f834a69e66a7)", + "P->V[27744:27776]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 12: Field Element(0x4b690e66292ef4a2d3a60cc1b9471f7b04697d97cb6d8a876e0e1cf60a8d57e)", + "P->V[27776:27808]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 13: Field Element(0x586460f0cfafd1bf9f3f228140d6eac9a43bc10be3c99482219aebef3647f4f)", + "P->V[27808:27840]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7040, Column 14: Field Element(0x38ff6d02043fafde743b5e5d4aca48af7ba57993c1b661c1fdbda61c3e0c940)", + "P->V[27840:27872]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 0: Field Element(0x6e3c81f3ca0c8ac6a29051148468dfc5d64cd411ef4b042eb1e13ae14e16d3)", + "P->V[27872:27904]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 1: Field Element(0x5001aa826f38608c7bb8dba24d4365b572d994f0e94a44f55b958c8d963a9e9)", + "P->V[27904:27936]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 2: Field Element(0x673d81e89f34ff32fc6d86384376d0dcd8c6ad0940cd35dd3b4e50d3c25d36)", + "P->V[27936:27968]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 3: Field Element(0x65427aa009a968974c88dad4a23d545b0bf3324c0081a8e09c9d73f2af502ed)", + "P->V[27968:28000]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 4: Field Element(0x711759198bbc1ce52bae854b3b133fe031c025a403ef1fc8719adb93eaa5380)", + "P->V[28000:28032]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 5: Field Element(0x4a8b41421ac34137c873601671045edc107c71ed58a5835fa2c9736b15fbe3e)", + "P->V[28032:28064]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 6: Field Element(0x73e38a6174dd54d3b4639062a0ca74a0eacc5c680f45a3c57f7e742b6548299)", + "P->V[28064:28096]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 7: Field Element(0x6beb11b2bed34bb08ccdac4a56bbe5be85fd5aac5e116a0bb726358226242fd)", + "P->V[28096:28128]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 8: Field Element(0xa900a7edbee9b77e4073d9d07d6645b90ea20e53ff2a730c76536746a056f)", + "P->V[28128:28160]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 9: Field Element(0x35714a2085ae52034404a6e3160a151db1b246b85053f047b9376dcb01b2b1)", + "P->V[28160:28192]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 10: Field Element(0x30d73800308eb5a28c6af1b4024d8db67e2ed5bc3354d83b842682ca64fd712)", + "P->V[28192:28224]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 11: Field Element(0x6fdeaf48e6ddaaff1f1a166961f678c3d54de7697366e93947fa602d023939a)", + "P->V[28224:28256]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 13: Field Element(0x2288e0ecc1c12d69372e065a262761019197e1882d566906bbd4b2cdb6721a7)", + "P->V[28256:28288]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 14: Field Element(0x15aedd914b9cf902368438411f3fd6ee5e361724c4df06c4e33aa9b12e3b71f)", + "P->V[28288:28320]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 7869, Column 15: Field Element(0x543a5df60821cf39e04b7b49c454446499d997fb6b480064169023d99dfad09)", + "P->V[28320:28352]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 0: Field Element(0x39621c735cab7f7ca488a31a3a2c12ee31de2b1a89fe9486a429eea031c85f6)", + "P->V[28352:28384]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 1: Field Element(0x48447d50e5c8d9ff120ffcb5452129ea4e2c1b847949011a0bb87923127e5dd)", + "P->V[28384:28416]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 2: Field Element(0xde42515385c1d84e3ffc340f2d13bfa68143a565bc18d8f48e0f37377beda3)", + "P->V[28416:28448]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 3: Field Element(0x73ee89d13b78feee7212297ccbb85f4189497e3e7a6150ab189b580897d1b80)", + "P->V[28448:28480]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 4: Field Element(0x1c294c104881b915887cae1f6d136de3956bd2fff2b20dcbc5d6cd43949cf47)", + "P->V[28480:28512]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 5: Field Element(0x3e28479c8f137a907dc3e73ae054186151dcce2e6c9da3fcf75244f5a1318e0)", + "P->V[28512:28544]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 6: Field Element(0xb501c1bfb91368f3d4dbfb00489c8eb35ba1d5def0980514af7d32eb7f8969)", + "P->V[28544:28576]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 7: Field Element(0x711550690020ce9f5bebcdc17fb146c3eb06286d60488747c458c0036563cfb)", + "P->V[28576:28608]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 8: Field Element(0x50929240ef88f7899609ccb6ddba70d2410d5da51b7d652c1a1bd16816ed952)", + "P->V[28608:28640]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 9: Field Element(0x6f56c2baa895491ef7be6affed8505569079c71374738f09101810d9e2c96f0)", + "P->V[28640:28672]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 11: Field Element(0x1074a87894518821e9645fbc5bbe713ca720dbf14265926f0718cc34883e9a0)", + "P->V[28672:28704]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 12: Field Element(0x98db28c39c432f410daf8f5c616b77be8011f4249b15f60cfe3c5db3d9bfa9)", + "P->V[28704:28736]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 13: Field Element(0x1bfccfb2735ad2a73d20d69e0f5425d44de4fc01eb4a1c61fcf659289c52ba4)", + "P->V[28736:28768]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 14: Field Element(0x777115044af2ce28f316d10dfec87fdb1e3c8a7621261c6202fa85b9d3d74cc)", + "P->V[28768:28800]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 10898, Column 15: Field Element(0x2ebede87fb80065cf4d0de567c63a7f78e9591e7114e5e3cfe867bb80852532)", + "P->V[28800:28832]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 0: Field Element(0x313a6a4404130f8661eafbf28c648da5ee9ad1062085e899704950455603ed3)", + "P->V[28832:28864]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 1: Field Element(0x213eed54c706a1ee45ec2c9b3483adfb83a82decd12560ca0c80ed66db34a05)", + "P->V[28864:28896]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 2: Field Element(0x5b6c3ca413aafdf14fb4dcbf070e3dc7f2eac01e237366831b1baf57263d4ba)", + "P->V[28896:28928]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 3: Field Element(0x57c31e7db9f0257d2115205d6b386a68d45fbfcb461848ebe028181f26ea3b)", + "P->V[28928:28960]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 4: Field Element(0x63d0c002c5f3e4b06e8eb87bf9bea6054973f604da02226ed5b808599aa05bc)", + "P->V[28960:28992]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 5: Field Element(0x2dbdacdce4de03eb3bf9b698aaaac2037d5eda735ffcc880a68a9669ccaaf45)", + "P->V[28992:29024]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 6: Field Element(0x3ff20e5ce70767e714cb576a01a5462a55654555b91e3ac25a05f3b53d3b66)", + "P->V[29024:29056]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 7: Field Element(0x777cc38c3ad27d56a0f7a5c69e73446f1611d01005ea3181f86d6d8892e17b0)", + "P->V[29056:29088]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 8: Field Element(0x1adb1fb130e925be5d4af04fdefb1b507baac3fce859217c1232553b86c7b63)", + "P->V[29088:29120]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 9: Field Element(0x17c94ff0e273392c3ded98c2ccd758d496a3ba5a8e62ea2c958a6557a0598de)", + "P->V[29120:29152]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 10: Field Element(0x37a160e60baed1836087c236291dadb6005aa8181c32ace2ab59ffa9b4dd5a5)", + "P->V[29152:29184]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 11: Field Element(0x3a453ce62e75ded14539e90ca47e814e33468f4df8c933d2c32f39a955056f5)", + "P->V[29184:29216]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 12: Field Element(0x7bc978bcd4fa25416ccd2f22c8a30137aaffb1765862e64b4bfddcc1f0a310e)", + "P->V[29216:29248]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 13: Field Element(0x3686292c0ff3581e3f84fe603ea929f9244ba43585e680be9847dce82683cd1)", + "P->V[29248:29280]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 11212, Column 14: Field Element(0x1cc749dbb6d9d133b17c5dc74d1f17d2261a183e247e27e602d3a0fa4959958)", + "P->V[29280:29312]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 0: Field Element(0x6a7af29bd17ad3d591675c1e6c3e30b2ccd087bb64f70240b9aefcb53d4e001)", + "P->V[29312:29344]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 1: Field Element(0x2beb468bd6a79d9780c29130411fce5a9292d7d2e4c70ffd871000f7af295d4)", + "P->V[29344:29376]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 2: Field Element(0x7d370859846232120517a13870dfcdf9ac3b72737a2d39c822065eb792d1e09)", + "P->V[29376:29408]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 4: Field Element(0x78cc2b3a7f128eab545a7fe2bfdbcac83521badc385804a458a87ddf0ab481)", + "P->V[29408:29440]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 5: Field Element(0x5d8f61d52308d7e9e4acca7eee0947a4e441fb81d5da0baf82e31a35255fb56)", + "P->V[29440:29472]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 6: Field Element(0x2b6b22813699a092126f521be8d3de9ff08fb8b0eb61e918641f8818dd94d05)", + "P->V[29472:29504]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 7: Field Element(0x104afe997ed7e25708edd3c7535487a2400801d386d6a5b8dcd7a42c95d04f6)", + "P->V[29504:29536]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 8: Field Element(0x1e23135496da27b139b4c6d1b0b3594f35e3684f112feda243e97bc3bbe1254)", + "P->V[29536:29568]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 9: Field Element(0x6533d2f40e42a9f89d7c6080000a06521ccedcc4ccbf6fa4010a55af751ded7)", + "P->V[29568:29600]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 10: Field Element(0x6935f90158227537665068a01646cc22ab8964e9455b5c51a603adcd9acf9d8)", + "P->V[29600:29632]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 11: Field Element(0xd508063f5d8feafd9e5ff6d5ed15077aa433a590e88df6ebf6487d97314d9c)", + "P->V[29632:29664]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 12: Field Element(0x2f4a4e4efce00dc18c22aefa67bd8ea9881256544ac524ee9ce9e02be3957e7)", + "P->V[29664:29696]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 13: Field Element(0x46856725a12693167880ab4671a8eeecc44e0f82cfd38a02f45677e777ff80c)", + "P->V[29696:29728]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 14: Field Element(0x5404dbad70e7f57c4c8985c4e7d8eebe03e75fe2074ef60d041784895091d98)", + "P->V[29728:29760]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 29106, Column 15: Field Element(0x3cdea6b5b5fa52dd07bcbf593ca74b3d647455c218266c6dc6479cb12816211)", + "P->V[29760:29792]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 0: Field Element(0x2250c42398683306db3084db41e081130e85d75076ca33e9a595747aa716cfd)", + "P->V[29792:29824]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 1: Field Element(0x5816ad4cd79800a162f3f1311e7f062014cb7173dead64fecb260b385779d92)", + "P->V[29824:29856]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 2: Field Element(0x1658b2f5cc91e7a6ec16a9033ed731e6d42caf9116632c17c9a10f5a72a24e0)", + "P->V[29856:29888]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 3: Field Element(0x74a58555030df09c2cf2a76ba907b1dbe6ad7a863f6bd557012a26b8238cb8b)", + "P->V[29888:29920]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 4: Field Element(0x533bca5ec742e89ecebe1c966cc4c00c99391361cf31f0980a403dd828f7226)", + "P->V[29920:29952]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 5: Field Element(0x11e8eca5b29948fb6832d4f9b6d4189b8894363661834f031de07dfbe979c23)", + "P->V[29952:29984]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 6: Field Element(0x15cbee4be8bb278888092508b9afae7e100858ff61d83f43f0221bdaaab3920)", + "P->V[29984:30016]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 7: Field Element(0x7d26e9ba96123a8beedc4a43e8be25e78cf2f242a38ab96a3f5be76a04db5b6)", + "P->V[30016:30048]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 8: Field Element(0x56f3228c2fa20e6f804f73be4643acf6935a10cc312e3e953b626f3040564fc)", + "P->V[30048:30080]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 9: Field Element(0x2f861571f52e4871fdf14a075020462ca94e7769ef96f5fcada1dababcec05b)", + "P->V[30080:30112]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 11: Field Element(0x628fb0e2610fa2fbdd731e73f43d6e7c6569db0cb6c690b4ca4ebd222c82553)", + "P->V[30112:30144]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 12: Field Element(0x799b3fc523b8352419ad648ff7f19b670f5a7bac4705ce86a7cfdd61dea7a2)", + "P->V[30144:30176]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 13: Field Element(0xe59b141ae6fb7949ce01a5bd2317223f2b0e429e4c5669ee4ed3e3de828848)", + "P->V[30176:30208]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 14: Field Element(0x439a8a27ea16c72d9690ac5e222e6415cff961b2e1c9288959061fae274945)", + "P->V[30208:30240]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 33477, Column 15: Field Element(0x4ac17f95e6ef78accb1c1ba7c678f499e549c82390ae5de00db7e228ace7bf4)", + "P->V[30240:30272]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 0: Field Element(0x2184c9a63bfdab08251d303f9ba8a5a2a93c086c65486a00012e190d9858de4)", + "P->V[30272:30304]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 1: Field Element(0x56d8de04ea8fdb954e714d26e6186d0ccdb4c92dc57d31970ef76aed9732a21)", + "P->V[30304:30336]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 2: Field Element(0x689e010838ea0880ccea448633ae122c9ea18e6904967b238e28a97f12a19f0)", + "P->V[30336:30368]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 3: Field Element(0x589645a8c923274171220219b2996876bed4432c3307b21da293626bd107178)", + "P->V[30368:30400]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 4: Field Element(0x7746892173850f30f1051e22e22c73718bf3b5380fd542dd2199e5316f2136c)", + "P->V[30400:30432]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 5: Field Element(0x5dc547ca9fc31654c70837c27b6c7d2f7a4eab3472257abce4e350a9131d7aa)", + "P->V[30432:30464]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 6: Field Element(0x48dcff478e955051504cc6ad48c737a03b81e5e7a0dca97d21b4b64727311fe)", + "P->V[30464:30496]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 7: Field Element(0x73632c05022561f1044b972edce7b0783ff46be4e4678aa513e1cafec2187f6)", + "P->V[30496:30528]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 8: Field Element(0x3ec5c0c22473214f4942767950f8dc430b4c093f587571cc5ff791ea09266e6)", + "P->V[30528:30560]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 9: Field Element(0x10035207915370119247db83cc9b56ffa1ffac44525590919091af4b22675a3)", + "P->V[30560:30592]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 10: Field Element(0x64fee6c2c8e9d124d7a4e8e2e19673314a49afa2226650aab3737f803e0f335)", + "P->V[30592:30624]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 11: Field Element(0xfbba7061c51b87d2efb75ede70c35fcd8da439b6dc6ef5c7db940143c1dcdf)", + "P->V[30624:30656]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 12: Field Element(0x86d4c4bcb97a560ef47584fd3da73fe826113ec8476468ad73a4922db1889c)", + "P->V[30656:30688]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 14: Field Element(0x3b152c7091c0face004a3c354440719da4ff5ba854f247d74359c0a5aa783b0)", + "P->V[30688:30720]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 58434, Column 15: Field Element(0x265413fda6511046be04bbf933be177c04c00dd3f44554e7a3c88d08604c69e)", + "P->V[30720:30752]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 0: Field Element(0x3129bf5dad8d9234eb59a544863fb03b0cd6f6bbee053b9d85ef4dc363aa358)", + "P->V[30752:30784]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 1: Field Element(0x6f9dda14384499179b944ea35a2a576359813e734a5a6750a746887d33c9210)", + "P->V[30784:30816]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 2: Field Element(0x4c01fa891fdf2f813fdefef49a0f5ac7ddb8162802952e43285ae26718c0d8d)", + "P->V[30816:30848]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 3: Field Element(0x796f479fdc3c7ecfc7e8b865f419ee7f7463ecd8d368167c3a23c8fbc818527)", + "P->V[30848:30880]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 4: Field Element(0x71730831c139ae1334eb77a2a3ce18b3f78a7cc79439996ab7b5dd24b420866)", + "P->V[30880:30912]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 5: Field Element(0x403cc056646c51f389d864ea56a483a202769f5305fa40fc28154eed2242549)", + "P->V[30912:30944]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 7: Field Element(0x3b30baf14374387308aad51ccd58af33b8c397d110bb1d7cb3ccf18408e5d78)", + "P->V[30944:30976]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 8: Field Element(0x7530526c7fc280938eb9739835f1e8a53c4a89312967ac69d3696fbf8ed5060)", + "P->V[30976:31008]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 9: Field Element(0x3481fe210507bdc482972cc35bd4e6d64b48513e225f100070a8ea085fea506)", + "P->V[31008:31040]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 10: Field Element(0x3b48b46adbaa4ab2f1c61bb643585ff931ae4f413c0026af10b3effe80b25a2)", + "P->V[31040:31072]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 11: Field Element(0xfbfc2ae87f73853bd2c6a440b66780eb0187ba081bb1c7bf8e20badab886e8)", + "P->V[31072:31104]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 12: Field Element(0x773d94391978e85cd637e00a5d45f335f43daa773dd75ca4d081bf2fad195da)", + "P->V[31104:31136]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 13: Field Element(0x12273b64e6da3c9386bbba3b34bfc62d017cd893ac925825b99f1e28eae80a)", + "P->V[31136:31168]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 14: Field Element(0x68db7fdc34fe01297e652bfd3ee33724f8ba9901f22fef1388236884c5a472b)", + "P->V[31168:31200]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60218, Column 15: Field Element(0x489ea4480575c4896f609a103d5701a4801348653539a8a719886987c104565)", + "P->V[31200:31232]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 0: Field Element(0x36a04956696de24c375ffcf4ab51de6d7cdc3db03a464621fb874191c88cb82)", + "P->V[31232:31264]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 1: Field Element(0x526581d4236f47cc8666608d20f5f62c7b5a0764a03edab78b5ce06386e0d27)", + "P->V[31264:31296]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 2: Field Element(0x16c60226831278d19787d9669528e8e35f50b8885c63f61e98954f06331320)", + "P->V[31296:31328]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 3: Field Element(0x5496e495a29fbcd1d92df687675a6b13a9239b628a91ee367be3e22e3965c9f)", + "P->V[31328:31360]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 4: Field Element(0x31875af017b152c49c35dc923a7c0cbff72172035ea3e9462ce227af440335a)", + "P->V[31360:31392]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 5: Field Element(0x261519865e7ec6da9e6850ba617b10b623ed01544801e179a91d1f40f8a309f)", + "P->V[31392:31424]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 6: Field Element(0x78f23af74514e3e9d04bc4daf0d732ca0ccab44b665e85a2a6d950b6fddae15)", + "P->V[31424:31456]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 7: Field Element(0x1509ccd69c482a29b07d31f5d0344028416e47f28621e2f4b9ea7712bebb2f2)", + "P->V[31456:31488]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 8: Field Element(0x6b898029051627fb344497bf3479fdaf08cfe9c1a86d325d17556651d2627e4)", + "P->V[31488:31520]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 9: Field Element(0x1967d264f9e69e6250f7ffdcfd72f56c949857e7956ddbd033dd325a3871de8)", + "P->V[31520:31552]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 10: Field Element(0x4f9f6c4cb05809c8191e0215f53bbc19a012961f8e103b03f69e3f62946c625)", + "P->V[31552:31584]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 12: Field Element(0x5c8665e76d360b9afc2b2b91a8900167508d95744b10357d6450b6bd4e5e1b8)", + "P->V[31584:31616]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 13: Field Element(0x673253678d5406e34b90a98dfa28a409b4fb8c0706b252c9165d51b55d61f38)", + "P->V[31616:31648]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 14: Field Element(0x1f1517bc89c3f2d9d06641e7a2f2731acabda9881600af08d65f3b509e3f42d)", + "P->V[31648:31680]: /cpu air/STARK/FRI/Decommitment/Layer 1: Row 60282, Column 15: Field Element(0x62dbbaf81d84392672ea64d748a2c4a6fc917fdf0041f0edfe8fbba23cb60e7)", + "P->V[31680:31712]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 68124: Hash(0x566139e13b1166c4f67b85676e8c50bf3b5b3cc45176164a8c9399cfed41567)", + "P->V[31712:31744]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 72577: Hash(0x4cd935e0cec2a47857a7c276a9ce58c6e127f3fcc56f5802429205df42a4308)", + "P->V[31744:31776]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 73404: Hash(0x3e6e894c6e480cb0b259a82c609f9d85101fa5de1f7e82083c06f3375416be)", + "P->V[31776:31808]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 76435: Hash(0x4e641e6cd10147daa156ceb75a612decbccf18592b6dbaee8acba2a99bf7054)", + "P->V[31808:31840]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 76749: Hash(0x4869f8f2cca95e9f2a10227f8c65eaf376af2d00675df286c630a9acfc757a2)", + "P->V[31840:31872]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 94643: Hash(0x1c61277233bc17f095a5c3f417d3490c75ee5bd13814d6c2ff3670f5b54bf41)", + "P->V[31872:31904]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 99012: Hash(0x248108b70f7c92f0987c647ea0260b871bb1cbc0f0fad6beda8dc0bbca1bf3d)", + "P->V[31904:31936]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 123971: Hash(0x46a69220c0ed82183ea72605a4612ad9bb8e8854d79c9b7a7969951cb32a60a)", + "P->V[31936:31968]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 125755: Hash(0x9ecb3da3bbb221b23ab32b05fccce7d4b71de3ec1de4b70d1f1ed747e326f1)", + "P->V[31968:32000]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 125819: Hash(0x567a21fd0c7925fd80b055b332a09cb50ba8c9cc687d7c9ba1545d35979ae0e)", + "P->V[32000:32032]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 34063: Hash(0x36e5678daf2ec8bb3d85f74cd7d2fcfa7eec512b953e0ab5d70d7574666e637)", + "P->V[32032:32064]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 36289: Hash(0x2854d620849ed8501ef89155775368c076c6c714ecdbb17fdc0f47c4bc213f1)", + "P->V[32064:32096]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 36703: Hash(0xecd0192da058517b7b87eccf6e8b0fff7e8dbf0e25dba3323bb24d0b93ed4)", + "P->V[32096:32128]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 38216: Hash(0x5ed3a7a42dfb9173315b8a6bbf2507e35190e51c93f281debfd9094a4f2081c)", + "P->V[32128:32160]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 38375: Hash(0x78c4de61a9626a46c0ff28f60f4361ee390551ebe9486d23b7274f515e17dd)", + "P->V[32160:32192]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 47320: Hash(0x4b3be4b8f02869cbd7fc235abf64aa0e60acc6357356d3c1929e1b3788c443)", + "P->V[32192:32224]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 49507: Hash(0x32744c9149b804f314da123bfa2b05b1109df103c8b4e171b4906a7d60dcbc9)", + "P->V[32224:32256]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 61984: Hash(0x7217a0823ae99819adc28c26d5914ca63d1a5cb3e2caf37b10358aec0ea2245)", + "P->V[32256:32288]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 62876: Hash(0x50e1c8ebf952a103cce363790e0439ac75bfe4a18d1af89368a83a546ec6afe)", + "P->V[32288:32320]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 62908: Hash(0x2235935372833bab5f63803f99bcdc6831024096b138e1701feb7ce83bc75f0)", + "P->V[32320:32352]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 17030: Hash(0x3896e1f4b78696bc3a51fb782d6387aca971eba0fe6c6dafb60f281f8485c1a)", + "P->V[32352:32384]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 18145: Hash(0x1a799f081b66075d5cc09bec6d9718ec1704f21ed7ea39b99e79700390e0df1)", + "P->V[32384:32416]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 18350: Hash(0x8efe64916ef1aa87fad0d1816e5ba1c89f7dd2eef51ff9951637b1e257a6cc)", + "P->V[32416:32448]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 19109: Hash(0x6f0e6330f7ffa864dbd3437eba7f37ed7499a3bae021d68f9c574da47796202)", + "P->V[32448:32480]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 19186: Hash(0x27a08e8eb1dd146a61a49b69dd3c559f19539c619229648ffbffffa6b65e666)", + "P->V[32480:32512]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 23661: Hash(0x4af4ac1a2264d15f36271fc88e84ca536fe3889605b53ab756d024bab58db7)", + "P->V[32512:32544]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 24752: Hash(0x321f6cbac689d34b4072cc482f9126782945d72e00833eb2bb72913ac1d7c31)", + "P->V[32544:32576]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 30993: Hash(0x7e2e7f36b7db896c01ffe6eaf075de25fd3660585f3c2e3021de61752ef1093)", + "P->V[32576:32608]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 31439: Hash(0x669bfba856bfa72c3a6b6d76d26548526fce6f9471d8aa9b9b9ea1e349cbac3)", + "P->V[32608:32640]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 31455: Hash(0x25f68fefa89c0a5c5f5b12de883680e4f3d2c8cb4475895dfe41fa9af8a52e6)", + "P->V[32640:32672]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 8514: Hash(0x1fbe6b18d138bfd1a68190966ab6459bbf48b906b5bbc4a5dbca817368e69bf)", + "P->V[32672:32704]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 9073: Hash(0x628cd8f1a89338f070ecc80343619b9f173bed7160ffa638a4eb041d7b18691)", + "P->V[32704:32736]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 9174: Hash(0xddf4f492920459e422d4460ddb8b6ac928f838262b46a72b862ed68d97c80c)", + "P->V[32736:32768]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 9555: Hash(0x809a47d145ba50d2e401be2f2e207b1da68cdfbd34d6e059a36632d9b5b1d5)", + "P->V[32768:32800]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 9592: Hash(0x156f3e846e20c7911544538e97c808c6dd6bf6fe7b1b026ada006d9929a3f68)", + "P->V[32800:32832]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 11831: Hash(0x624b30dafcb083a846ccaa0e0f02cca72af3a02ced70aa4cdab43e2a213d445)", + "P->V[32832:32864]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 12377: Hash(0x535b03aec8e0470a1ad3daccb23114f7fe14a8f5939cd4f5e15c6eb1d2dd183)", + "P->V[32864:32896]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15497: Hash(0x2eff43c4b654be48cb9e3c97bc8248dd4d160e16504961efd4173aae29fe507)", + "P->V[32896:32928]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15718: Hash(0x2dbe1b546b793f19a9e17c29006ad2004a0801b1b198f1cd9fa720168741ef9)", + "P->V[32928:32960]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 15726: Hash(0x71d091e60e68822069d2fd16afbc12cfc88b794076f95067ee4876019e77a39)", + "P->V[32960:32992]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4256: Hash(0x2fde1405168c940b957391c4733bc4ed40fbdd10613c1670897fe380a6930f8)", + "P->V[32992:33024]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4537: Hash(0x2259472df0a0e036b40dcd6a913540858328730502d90994dd1e8f8eee3f42)", + "P->V[33024:33056]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4586: Hash(0x2b641372a64f767c4fd39ca9dcbc737cbbec3c5405540aa5cb9ef2fd25ef405)", + "P->V[33056:33088]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4776: Hash(0x446f6bb6276e9395d4a575bc21c04fbb26a4cc6ccf6239f73fbf1cdbdad22be)", + "P->V[33088:33120]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 4797: Hash(0x2467d3ca3e926844e975445539df7f47e94e31de84d0b4eb3441580f11a3224)", + "P->V[33120:33152]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 5914: Hash(0x46a7f95102bd2b654bfde6db267ff6eb9e35afd395fab8691d6d7f2556afa5d)", + "P->V[33152:33184]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 6189: Hash(0x2f38fd5aeba83794bea4475cb8a5ad59c043ef0a05bf9bbe45a150c87b6a39d)", + "P->V[33184:33216]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7749: Hash(0x7cc266d04c29c60f0384d49a520103b0aec4e1ca93a4227e5da95758de8252c)", + "P->V[33216:33248]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7858: Hash(0x642d06d45ddcd0fc6c8159372ffcee46fb7f6c60073ebac0d593fe9e9873a3b)", + "P->V[33248:33280]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 7862: Hash(0x6793a6b07b5450a35d47cc7c917993088a4b82a667e10a07cca48e2dd6d7b52)", + "P->V[33280:33312]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2129: Hash(0x5fb32e408750c1c41642661b61f9a11a8eda8265bf19339931b2a9d166bb571)", + "P->V[33312:33344]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2269: Hash(0x125c96fa40837a62f17e962a45f04a544e7006f98a648a88e60d588ca6541f0)", + "P->V[33344:33376]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2292: Hash(0x644087c88a2fb36fd45ce00c89c572b52e267ce8d99fb1c099754691c2d2035)", + "P->V[33376:33408]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2389: Hash(0x23428570863fa3c9469ed5c2ab0166c2fa776c6fd2310b95423acc4936cc3e4)", + "P->V[33408:33440]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2399: Hash(0xc4b8f5826083aaeb15b9bbbb72a4d320d532ffce5945c3f2eaeb09b4619112)", + "P->V[33440:33472]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 2956: Hash(0xc5ccf30c0cbc8662c1dbd781ef71de044b45a7139d052e9029856f4a0ba46f)", + "P->V[33472:33504]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3095: Hash(0x7e5a1b9eaede58ee00bbafb62fa821247b091ba9cd35a09646829d76c81a7db)", + "P->V[33504:33536]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3875: Hash(0x4db51ef7c5b7a6570f3c52f9e34fcbed245c376d71493c5eeea05ac6c63d85a)", + "P->V[33536:33568]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3928: Hash(0x3480115c6dc737baf4d035078e66f77dc1cf16188e9e90d050d7133dc1780cd)", + "P->V[33568:33600]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 3930: Hash(0x4f9d1e300a890a6b46abe28e1a5931382fb511aa21afd793b9c8c01618fcf06)", + "P->V[33600:33632]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1065: Hash(0x736d0f4eca0deb4cc6a3776f664c3c9d1a7b639c90a9c663461aa3ca606bab9)", + "P->V[33632:33664]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1135: Hash(0x3af27574503db625b578d2c4f7282cb6093fadd5855765a6f81599ff38226cc)", + "P->V[33664:33696]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1147: Hash(0x76cf8d26b4b9691e50c375ccd16166248e0c6cfcf98736d12df71069ae6e500)", + "P->V[33696:33728]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1195: Hash(0x7e0956853fd845e9953ba7ec314bebfdfe00413cf002bdf0eb6531244be6f2c)", + "P->V[33728:33760]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1198: Hash(0x2d9d86de41b20f680002708987699174bfbe4cd27a879030e82f7b976c0b2ed)", + "P->V[33760:33792]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1479: Hash(0x82dbdc8e8bfbca1b57fffd393653d1ca24d9c180a2dfcc9611687a91ea925)", + "P->V[33792:33824]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1546: Hash(0x1b4fdc8555eb837c87618449ad95d242ba6146c385727a359d0732cd1abd515)", + "P->V[33824:33856]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 1936: Hash(0xbca0ff35970c6a245ab6ef5b4ebb738f66add34c396704c9de1d6d3e11da1f)", + "P->V[33856:33888]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 533: Hash(0x117d71df460a616d4e6a91fa51fabf9dc967b031df4821d18df715f5291d93a)", + "P->V[33888:33920]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 566: Hash(0x7589c1ad2fb23399e35275a67cdc39a7927e8aa40217f41834f0cf7e30a5bb4)", + "P->V[33920:33952]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 572: Hash(0x62935d0896cef806d18f2a52df2fc12eb9cf99b2c8d6d6bf7455a19b79dccff)", + "P->V[33952:33984]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 596: Hash(0x58ee24e34c7d35510a2e31521769a7f81f8e5e229026e71135e3ad15c03cd69)", + "P->V[33984:34016]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 598: Hash(0x66d06ba584f6230c1f0d6e322db9214b32926b3a207e78ab65a0b68ed4fb7df)", + "P->V[34016:34048]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 738: Hash(0x54f615f13bcf3bb8c7953abe14b237571aa6840f39952794b070f736bff41d0)", + "P->V[34048:34080]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 772: Hash(0x163643e6c4d910a62bab06164e92c85ad8e55e3a5bba7054384dc33f382e68e)", + "P->V[34080:34112]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 969: Hash(0x6b552e61fdec8ec6ec7076b129cc9c5bfb43e5495d05a2e6f76c348e8f7320a)", + "P->V[34112:34144]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 983: Hash(0x48f59f1bfdf203bc6d90b186b8f5a52349ee2f59ddc3ac8f6c8409995933005)", + "P->V[34144:34176]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 267: Hash(0x1105ce5d5dc05c3b05cce5239ba67d6b95a05893b2e3b5283a54db406a176e3)", + "P->V[34176:34208]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 282: Hash(0x6114b52e50c8e358e3e0c980a4b7c519c94e78ed7552125643cef7e92344489)", + "P->V[34208:34240]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 287: Hash(0x658fbca396b9d2b59d9c89fc6fe54c25f0f5fab2cb4af6a75d729be565351)", + "P->V[34240:34272]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 368: Hash(0x4ab1be53a02602474dff6a5804c47a8c06206e121aa93d74fe3421348a2316b)", + "P->V[34272:34304]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 387: Hash(0x9e2615b421cca5ae1af728aab66f519f94811fc273f7c743d7d1285607f3d0)", + "P->V[34304:34336]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 485: Hash(0xd00c5caed4d17b4d9a966b38bded0defe2b64069f9050d400d40b4027285a3)", + "P->V[34336:34368]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 490: Hash(0x79f74696e2d788c81ce3e374784e03dc96dab52ac36a99066d44aed3b6f481f)", + "P->V[34368:34400]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 132: Hash(0x6e09b571e13c42d74807be9cbf742909b9e9080348768c8f9c71c92eb0a9484)", + "P->V[34400:34432]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 140: Hash(0x2cab7a5289cb308c5023758fd6148fec848f8ea0a2e35bfcacbabb2f693b93b)", + "P->V[34432:34464]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 142: Hash(0x7d1d7de5c63d4982559add6a88eb1f1a30900204cce4aba108c40b9216646d7)", + "P->V[34464:34496]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 148: Hash(0x77e795d7eb17cc0b64ce20b57f13c39e74c775b66e94e1c089bc5b5ad67a4b9)", + "P->V[34496:34528]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 185: Hash(0x49aea8190a70c6ea9a5f8a116bf99d4195b1a57119d516dbe558c3a4230e0ee)", + "P->V[34528:34560]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 192: Hash(0x7f0aaa4d480f5aaba2a4711e2b369271f6f8a1275be51626b59d4757244ee02)", + "P->V[34560:34592]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 243: Hash(0x34f66598d9d2c3ec405fd620b097f2b25340d8175c5b6afd1245019017975e8)", + "P->V[34592:34624]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 244: Hash(0x4239c6fe434e4ad849d6e878541334637c64b18bede2a95c82443855b3a9e4b)", + "P->V[34624:34656]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 67: Hash(0x3fed77a30cbee9b1f9850d541c51358123c9807be38c5e569970b31866b63c7)", + "P->V[34656:34688]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 75: Hash(0x471dfe1454e6ef28f24c705df133029b78e4ff042e7a54c1d0f029f27587159)", + "P->V[34688:34720]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 93: Hash(0x7dd30150e51bd6a64d1cdeaf515ac0a7f47fdd0b79498cfb0045f2b46f14cb4)", + "P->V[34720:34752]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 97: Hash(0x2523d2b96342f308f4803a68876e635ec9e946ffa2b8daa98d489eb2d8a16c1)", + "P->V[34752:34784]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 120: Hash(0x2c7083bd2727dba474f5b9279bddf48d42b2361abe553ad81f025fb605736b2)", + "P->V[34784:34816]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 123: Hash(0x6678c966e396c360e18120e783e10bb6b63bb57ee24bb1619c0c0b18d103b9b)", + "P->V[34816:34848]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 32: Hash(0x6b8d0b9592b80378362006a211c43900802763496cb4b43a239d766bb0d6036)", + "P->V[34848:34880]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 34: Hash(0x6682f87552d06a1820d71ee6c7a5178e88ab564400f518c96d0618422e0abc4)", + "P->V[34880:34912]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 36: Hash(0x33f5e10b90ec9bfe98d792ff643eee1cd26beb4df3e33fb2201b64e2cce1fb5)", + "P->V[34912:34944]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 47: Hash(0x7bf059c42fc614e5262f0112eec7facb4bb7ef8f300a693bf949319317dffa6)", + "P->V[34944:34976]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 49: Hash(0x15f5b8074ec66fce516c22db64b3125990c15b0f5487a295d3038024795a058)", + "P->V[34976:35008]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 19: Hash(0x6a8ed094a294448553d84363f9668ceb5201bf9f155e9f40c0077d91869a27e)", + "P->V[35008:35040]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 22: Hash(0xdfba5cfb0c653acc8e55bfa66c5954c21eeb652c8d3b4e6170444843723b89)", + "P->V[35040:35072]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 25: Hash(0x62ef06496b19aad25c67206a521a20d5c2db8fe901d9ede45d6b66633a904cb)", + "P->V[35072:35104]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 31: Hash(0x3a96ace19d52197d3c55bd2031be2e1a8f8dfea38170259eaf672cc9c193e9c)", + "P->V[35104:35136]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 10: Hash(0x3258f9ecf1c5d8b3c7fc1ea01cddae42714ad5a136a1f25a8608f7010ac456c)", + "P->V[35136:35168]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 13: Hash(0x76128e75844fdad98bd862950262d7e54d2f9f207f94b9a73a0fd6c5773ef74)", + "P->V[35168:35200]: /cpu air/STARK/FRI/Decommitment/Layer 1: For node 14: Hash(0x3809f27702cae8b870f2ba46259d3200e9c6f60b2f467c5e61fdfb6ab8aa2ad)", + "P->V[35200:35232]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 0: Field Element(0x380cf52ddcc5f9fa90bd63246529f9b83760079999a73ce624eb22401c00607)", + "P->V[35232:35264]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 1: Field Element(0x54a8b00ba0b276d489d6e7028578f00956a095f62269d3e65c10d8899224c98)", + "P->V[35264:35296]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 2: Field Element(0x7ba67d2ae737216c71a82ee50b8ccab4566f87a1a999686d6f0ae886d85e36f)", + "P->V[35296:35328]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 3: Field Element(0x734af66f5465bb69c823357314f4d9b1da4bdf6995f8e91fc90651cf1001156)", + "P->V[35328:35360]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 4: Field Element(0x619571e036a99d0c1bcf08c81dbd1cdf5c6f39a2ecb1de99764a81a40630e61)", + "P->V[35360:35392]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 5: Field Element(0x5a5d2d254531fda74d71456058b08066848101cb5ca7ea0b8d32865dd26e0f7)", + "P->V[35392:35424]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 6: Field Element(0x44771449120d22725ef065d80b7ac0cab30fc275420c29c4d997f778d14831f)", + "P->V[35424:35456]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 7: Field Element(0x69e055add4fa22f987f3a8d55ccc436f83562ea605efda10b01fd3a5d947386)", + "P->V[35456:35488]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 8: Field Element(0x4f31843ecb6a053235246d2004e8c6ea4be19baa60a71cb15b36a1e537af849)", + "P->V[35488:35520]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 9: Field Element(0x200f0839f4d971d862e10c6e9c2c476a0d4996ce5fe607ce7f18647fad146b2)", + "P->V[35520:35552]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 10: Field Element(0x7c671cdcfb45f656d3b449637ba1778f6939ca1bc36c79324033e2393a25c48)", + "P->V[35552:35584]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 11: Field Element(0x1f4d54d493cfb2f7e5a60ef728f31bc3bb7d316cb3f4846a7d4857bce3649fe)", + "P->V[35584:35616]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 12: Field Element(0x7ed2268e63f449499744dba3ecf9b50dde00e0f0c36afbb4e71704eed81b663)", + "P->V[35616:35648]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 14: Field Element(0x2ad055a7ced8defc908c5a20cda69bbd72cc823d88688d847ad9fab2013d2b7)", + "P->V[35648:35680]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 161, Column 15: Field Element(0xe60d1bd37c676077f3b2895be99d90cf6a51b4aa724eae2e9cc37c64d1a512)", + "P->V[35680:35712]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 1: Field Element(0x783adcdb997ce43c69f56376af304aa4151bcef5ac0bce02550a66dac8c6f4c)", + "P->V[35712:35744]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 2: Field Element(0x7fd865447eba330aff47d4a036f01e5472f1d7ef3a2e9367ad3f72234201120)", + "P->V[35744:35776]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 3: Field Element(0x3f621f175936af3ccff04ce72079ddb72ac519fbf389453edfbdedc5312c2b0)", + "P->V[35776:35808]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 4: Field Element(0xf77cb2beb4fc5e77ddedfd7de247121c36fe301b98e13e7109706123785e77)", + "P->V[35808:35840]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 5: Field Element(0x70d09c63ee4723e1eab2c5ab7b5505c972f84a10e37133bf984a22fabdde01d)", + "P->V[35840:35872]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 6: Field Element(0x22bf075c43f713ef59660d690e70c304bcac3b28ce249ab4441b725a930589e)", + "P->V[35872:35904]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 7: Field Element(0x6bff2b82a6b5613b95d20bf6f45d8534444c1b7c8e88a44a1ea0e06eb737492)", + "P->V[35904:35936]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 8: Field Element(0x3a8ed602fd2c824eb05842ba0e095a7ef4713076b0e1792a6bf67e951429365)", + "P->V[35936:35968]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 9: Field Element(0x65443c10d31302f4acb09bfcf5dc2d213c6fd84b90a275c8389f8cdaf588821)", + "P->V[35968:36000]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 10: Field Element(0x16d19920b64a21c93d66f128999f23d01ae97a3c41101a9443ee30755ac502a)", + "P->V[36000:36032]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 11: Field Element(0x340448e2039776be0452e4e3e5618eb56803319306655d9ab682c3e1e484509)", + "P->V[36032:36064]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 12: Field Element(0x56b728f4c5b3eb8e337c3efde0d95208057484a945ef7e9f1f3c2ba4f4253ac)", + "P->V[36064:36096]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 13: Field Element(0x535d93b9a86529ad85b369d20bd45207797c16e598570b14a3562dce580ea32)", + "P->V[36096:36128]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 14: Field Element(0x4af20a4bcc6051576ecd2bfa55b2fde74f8e3d1f832e8ed15652f13773de3fc)", + "P->V[36128:36160]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 440, Column 15: Field Element(0x55855fbb509a600faf237ba2f3f3e73091a1fe82f1343ee158bed0ed622d15f)", + "P->V[36160:36192]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 0: Field Element(0x2f243357d579a7da262ccbb844612d76668ff9f7585f3ae860bbdb310ea2a5)", + "P->V[36192:36224]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 1: Field Element(0x5f8935fe113aec50ce4cbccaf79608afb401c8021c91a86d8485a5a73de7ecb)", + "P->V[36224:36256]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 2: Field Element(0x6c61aec93f513cec47ed26f3763925e5d447063ab431103f409732338784eb7)", + "P->V[36256:36288]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 3: Field Element(0x735c96de9909a3ff2427d0ea44a634f2de32c54e1386e297cb171d56494064c)", + "P->V[36288:36320]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 4: Field Element(0xfdc9f7b64b9a8e094787678c4e432fd3aae02c099ff95d1db4a442540a1706)", + "P->V[36320:36352]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 5: Field Element(0x4257b0ffed3257caf137f07a9b65df28977a254a308ce1a053ed042f51471ad)", + "P->V[36352:36384]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 6: Field Element(0x12fff890c72c091f5a423dbebd8127efc8ee14b7b35dba13be079fdca333b56)", + "P->V[36384:36416]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 7: Field Element(0x7717a64fdce21841d2e4acdfb987b25eadbba2488c975c6e74bea341c62a73d)", + "P->V[36416:36448]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 8: Field Element(0x34c1541190ba32b4ae5f9d39d0957745d9cef7182d112062703472fa70ae9a5)", + "P->V[36448:36480]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 9: Field Element(0x76fc43fe65105587d701f46fbf1493e5da7bf40cfb15c7a8057d229c429758c)", + "P->V[36480:36512]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 10: Field Element(0x47021b4e14d70af3d931ed5aca8cfe25c33cdebe4f99945db4b455d09cd2900)", + "P->V[36512:36544]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 11: Field Element(0x5fb2e3f7b600f00f5c87bce3074375d1e0d7618bb5eae94a5ffa90996e056a4)", + "P->V[36544:36576]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 12: Field Element(0x186210dcdded5848b0d85ef334fd81b5b3f63831e902400f7e855d62bade3f7)", + "P->V[36576:36608]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 14: Field Element(0x18636d8e4db15adec77e3f2adc8cdc86d3cecb0d0cdd148f34299f3d3c8cff3)", + "P->V[36608:36640]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 491, Column 15: Field Element(0x37b05b6363688fd1795bd29489eddadf53fb6a2529b8577fc95a7d8250d1150)", + "P->V[36640:36672]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 0: Field Element(0x1d9597a91777de2ee8fcecbbd0ca71e69d1ba68f0da2e78f3775a17ec29f0af)", + "P->V[36672:36704]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 1: Field Element(0x2934bc3ae9926448941b1fed08ed57c045c08cb2c150773362b7e022b6b747)", + "P->V[36704:36736]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 3: Field Element(0x7a7f50f631522d4de4df6b05196ab30ab8f38b8334886be99407a99a879d399)", + "P->V[36736:36768]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 4: Field Element(0x3eb14f08ba5945a558aba6e3bbed4d5764ac5c311346a0ae5a20951acd8c777)", + "P->V[36768:36800]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 5: Field Element(0xb06f2f3c7054c68d519a255554d8830c5e1905f4e163472cd63293ad036b85)", + "P->V[36800:36832]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 6: Field Element(0x768742bc35a3e0473b1cfb81a4ac9da4353d4d7eaab7843fa398b07ec571405)", + "P->V[36832:36864]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 7: Field Element(0x4a6c18dc0247cc0795305974cfeffd929d9a771e53be9d6bc1e459c412e8492)", + "P->V[36864:36896]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 8: Field Element(0x5df685658debc505abe0ee72c2c1180ba76a5d4b840ea94651a521acad8652c)", + "P->V[36896:36928]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 9: Field Element(0x92cf29c40e65ce8b295cf7bc06414b4dcdfea9d295f719becc6038590a1661)", + "P->V[36928:36960]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 10: Field Element(0x21e8b8655632fe8883b4dd2b815e2c6bf7ebcf6e7f442d8ee23213195e2edf0)", + "P->V[36960:36992]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 11: Field Element(0x4f1a2ce01ce62b6be263da20217df2f3a9b0db457252b9c0eacf1c64793a626)", + "P->V[36992:37024]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 12: Field Element(0x4fb330f27f6677beeb6e4d28a6a52d26334d332f1f6725ac7a2734881df8b12)", + "P->V[37024:37056]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 13: Field Element(0x542fe784443450fd6cbcb79ba90ec5a530878692589b55ac4bf6de8ca79c025)", + "P->V[37056:37088]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 14: Field Element(0x48e6dbb1ee641aa18abc258b3fc266af308a7ebce0e4bc5db3e412e759e3ffc)", + "P->V[37088:37120]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 681, Column 15: Field Element(0xdcf135047733c88ae7f7c859b23504df30715b87eefede54656595a5843984)", + "P->V[37120:37152]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 0: Field Element(0xe8d13b06f46aec3edc8710d9d33d1c4b55b645d5ba658a8272915179acb39e)", + "P->V[37152:37184]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 1: Field Element(0x692ef83297f352f424e51d28c8fec0ef1d973f502e044d5204dc28ca33443a5)", + "P->V[37184:37216]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 2: Field Element(0x63a754aafde0d60578654076625ecfec72eeadf788f3fd12e5b288a0cca9125)", + "P->V[37216:37248]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 3: Field Element(0x3b72bd4e122346d09e946a4bf8de9291414904950592c291bcee4adb856c6d2)", + "P->V[37248:37280]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 4: Field Element(0x782f4dc3ef88338ad39a3adc090dd889422f58ef24019c05da1f28365bf9b37)", + "P->V[37280:37312]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 5: Field Element(0x929b8fbfcbe7f385a30d0b4b9d1a8ee979189c65492818eaadd28e571e7880)", + "P->V[37312:37344]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 6: Field Element(0x98ea84aeea5eeba29bd812d0e5938911e7d87c59e9ff04c1af80eb30867edb)", + "P->V[37344:37376]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 7: Field Element(0x225907e276c752c7721ed071ef63fc72a6892c4b10ffb8056571abe9b816410)", + "P->V[37376:37408]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 8: Field Element(0x3443ef5145a3d98a7427c0b295a7164bc764574e63bfcb8018a2aef956167e8)", + "P->V[37408:37440]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 9: Field Element(0x2b98e884ce819c1c2ed5625021ce6b9658fe66e05733543ea980cd23a9b9009)", + "P->V[37440:37472]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 10: Field Element(0x251987d56f7164b2602812adf28312fbd1e865982f1b45aab18c8702868415)", + "P->V[37472:37504]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 11: Field Element(0x6ed27f0c150510a527bc3793bea543d7f2cbcef3604309b632fee076fe95d85)", + "P->V[37504:37536]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 13: Field Element(0x61568df984e8ce98df8cac251fe4b176a5fb1ecee5d0db582617b415ce7b83)", + "P->V[37536:37568]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 14: Field Element(0x1711a7fe96a462b10612bdd5c903b3fd63c30c510e2e23d0f5fd59f9f7597b3)", + "P->V[37568:37600]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 700, Column 15: Field Element(0x1b5264aaf76f5489181d067e48b7f69e3056997cfd4776564052435371d2b19)", + "P->V[37600:37632]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 0: Field Element(0x7d8c6168d56b080a5adaa401046c9bdab8cc1d6bb27772ab98a0bc8d071a592)", + "P->V[37632:37664]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 1: Field Element(0x45a8ec915932bac8cb05da8063eae7319fc18a432842ec4493e4b4bc61f2a0d)", + "P->V[37664:37696]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 3: Field Element(0xb9ee0ffc973f16d6608201ddc7289e3900373511e8c8fc84314d6f666017d4)", + "P->V[37696:37728]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 4: Field Element(0x3aad2e92fadf4eb8ffb7f5ab42d8b2d38e2f11d0931ec3e371e4a722ec33978)", + "P->V[37728:37760]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 5: Field Element(0x31a8872d2510a4e92f2523057da41580af0136fd69aac7a00d1b5a6ce9e8ade)", + "P->V[37760:37792]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 6: Field Element(0x47869bf5669f63a32b1c74aa9222eee7584535f7ec8792c4571a6447dc8032d)", + "P->V[37792:37824]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 7: Field Element(0x2b9961b2fb964905480b86fd3ad5a5ba651114df941c4be1f9ff1186b65d82c)", + "P->V[37824:37856]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 8: Field Element(0x4eadc25f2f7a277ef55085e1400566b4f374eb070d4fac76501493a8ced4622)", + "P->V[37856:37888]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 9: Field Element(0x1e56a3378760673588a539cdc0ca0100d092cc6fe710007eb7ff2558a0d3174)", + "P->V[37888:37920]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 10: Field Element(0x49f9ec16811315c0f3cbfaa6d351553ec8414f4773e2953c70b93a753011a69)", + "P->V[37920:37952]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 11: Field Element(0x1d62f91325bb98f785e26f1a43b0f1498062585580849960dbccddf59bb88fa)", + "P->V[37952:37984]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 12: Field Element(0x776b9818465ff690b714e8640b93d5969f20b676dcf6fa0a8d984e419272a72)", + "P->V[37984:38016]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 13: Field Element(0x2e0c43f43daa96516cb3f5f04429445a7a12982c6c68fdabd6a73b95fd1fb27)", + "P->V[38016:38048]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 14: Field Element(0x4fc748e37280b96a84b6fe63595b38b26d1e066092c5167a1c4548005d9982e)", + "P->V[38048:38080]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 1819, Column 15: Field Element(0x35fc20d5bd7fae55189f932da13743fea445bf7992f2f55f1053704a726c2a5)", + "P->V[38080:38112]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 0: Field Element(0x6d613e44003bd927dac4cf6d096c13328b12c3c96730f3d1550e251996f7773)", + "P->V[38112:38144]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 1: Field Element(0x50ca39b29b669736f8adedd33dbb8a3b3c4031aafcdbb0dffb21b08d1925063)", + "P->V[38144:38176]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 2: Field Element(0x2fa845571911665ae46a08355901649f11af7c0bd1f7d95dd2c405286dba619)", + "P->V[38176:38208]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 3: Field Element(0x129cb77706bf1d79ff4c848b90c56391d1f7e35dc8b4aac5f6c9ec33e52b6b3)", + "P->V[38208:38240]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 4: Field Element(0x2da4ac019061e9e68b13c7b50b3c55f728f678d58695cb17fc8e8a98aa97ca5)", + "P->V[38240:38272]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 6: Field Element(0x5d38263f3ad3b17fd76b9e1cf723e4f3ecb7ce8c4114dc5ece00f5e9bd7ead1)", + "P->V[38272:38304]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 7: Field Element(0x6a97e0c204cfbfeca457afbf4399f37d299a74550314311a04fc13003f61ed6)", + "P->V[38304:38336]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 8: Field Element(0x7b8ff5a6a18a7b4e0a56e108ad275b268a91b9f84c5940ea106890735cf82c7)", + "P->V[38336:38368]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 9: Field Element(0x3f30f00fbf2eba19d2d321d5a9ba934e09e1ef1deb5cdb9883ce734690ea64a)", + "P->V[38368:38400]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 10: Field Element(0x6e4a5819e034c0ae7dc3cd8a7a4b81ec003946da84a1736f36875f5fbf0fea4)", + "P->V[38400:38432]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 11: Field Element(0x61ea346d0dd85d91d822b8f84e3714a78764c684a086b6cc462d448ca52a925)", + "P->V[38432:38464]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 12: Field Element(0x1686f50731ec65d98de543019c8c2c5e6ad4ff4ebdfb8cc64a33c05259e729a)", + "P->V[38464:38496]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 13: Field Element(0x14738c38f7effe4c736f1bbbf0143e5af53a90066e41d43228b9527bd54e996)", + "P->V[38496:38528]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 14: Field Element(0x31f706b6f19f122a9ddece249648732aac5c2be5795db2409357e9140b3ce7d)", + "P->V[38528:38560]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 2092, Column 15: Field Element(0x2f62e29bf29f840164318766a95d1df664c9c7bd81b3d24683867b62068b80c)", + "P->V[38560:38592]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 0: Field Element(0x1626851a49f8b5271f3b3cf0ab6377874fc899acfd70faee00354745f1c6abf)", + "P->V[38592:38624]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 1: Field Element(0x4613a3ba233213b55f9b24c12b1a6143863b416967defa2a5dbfaf48a0a85bb)", + "P->V[38624:38656]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 3: Field Element(0x5ebed64523b6ed7fd702af9ffe2f385d600589153c5ff032428eed356d987cf)", + "P->V[38656:38688]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 4: Field Element(0x486e9a6bcdeb34aa5e872272543ce515edb8068e9df90e5a6d60a6776bd8236)", + "P->V[38688:38720]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 5: Field Element(0x7d5241041d155a392e50f74b444e9cf27c5955afec16f1fe4153b5216f97d1a)", + "P->V[38720:38752]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 6: Field Element(0x7a7e812ab183c584c119e743519260c983215f50b0e25b8733db424e2027c7e)", + "P->V[38752:38784]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 7: Field Element(0x39da865778f6ef6afa9c3fcf751039f7036e580884e056587c5ce444a82a863)", + "P->V[38784:38816]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 8: Field Element(0x26b50f82d3c2abf80802a5e254f0f2789601a7786be7d46574cf7c78e542651)", + "P->V[38816:38848]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 9: Field Element(0x54bc4bb255c2ded0b804f78412b5fd7a72359d4430b3bc69c15bf72d1aacd31)", + "P->V[38848:38880]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 10: Field Element(0x609314554cac0ea64765f6a189f9a16e91acf803e8ec71591c541caef26fda5)", + "P->V[38880:38912]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 11: Field Element(0x25e7d7f2c575c68cb2d7b00b3d4317fdfa7005468af98bd15d91db88b3d4ec9)", + "P->V[38912:38944]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 12: Field Element(0xdf2ab6ecdd10d8afc69a1563c85d853efd8b72af18f63f5dd29341bc93eda9)", + "P->V[38944:38976]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 13: Field Element(0x76cb3a35c28e3872a5c6a09c2f48f799185091a31d8a8114e8b43c3cd1570fd)", + "P->V[38976:39008]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 14: Field Element(0x2cfd6022ab9ee72e202b035b9ac78259cd79ccf33bcda24e75529a8b2b6719)", + "P->V[39008:39040]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3652, Column 15: Field Element(0x4863b41d1ba4c753b15df7a148f756dd663b37f582eb8b0cd87ae155bcbe673)", + "P->V[39040:39072]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 0: Field Element(0x385529ed4ff5209558b0cdda26072b5c36a19a543c3a9bd8e1bd380103fa6c2)", + "P->V[39072:39104]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 1: Field Element(0x6794a009eef4617c0439bb59221145a4e3d6f137f4b6b115e3754ad0904cfc6)", + "P->V[39104:39136]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 2: Field Element(0x4b611d6b1b27989c4a0f77c755b00d5e9307b7dda40431af06b46442814329d)", + "P->V[39136:39168]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 3: Field Element(0x6c5f50849808552bd91e6ad501719a962aed00d683f5cacb3176a8d23746661)", + "P->V[39168:39200]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 4: Field Element(0x467f5bed117872382e25123fb2bd64d35a075e1580e4544bb2f7f9898385aa3)", + "P->V[39200:39232]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 5: Field Element(0x1348b753c568ecdeb10225cdcd5bff387082c5213ea45602e6e92c9c69308d8)", + "P->V[39232:39264]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 6: Field Element(0x1f61fb84e33fadca7dc8c0f00aeef739010a50fe47889d3d531b72085a0a104)", + "P->V[39264:39296]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 7: Field Element(0x70fbdf870988a877fd7038506071089b8250d4fc71264fa27f99c2f11a2473c)", + "P->V[39296:39328]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 8: Field Element(0x5aa45ed3dabd6f0d512603ae8720ac2a92b146772de43ed8fac4448ca42cd04)", + "P->V[39328:39360]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 9: Field Element(0x3a724db0e78f185a7337214bb2dd0e99152293e97f7f24dffa1585c170865f8)", + "P->V[39360:39392]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 11: Field Element(0x2d0eeaf6cb55b478c18aabb5ef374c272255eb171ddb9feb632429a4d074aa)", + "P->V[39392:39424]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 12: Field Element(0x26ec489127d1b2b4e66b964e2f335f23072c5fbc231db265e02c0ec557eb13d)", + "P->V[39424:39456]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 13: Field Element(0x2d26820628795807208bc2842673c5e619210061535a54f317f5930b3a1616a)", + "P->V[39456:39488]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 14: Field Element(0x601d4feaa42ba96c96822fe5725195b2c1958ec7d0e87f9ed5569600f0185c6)", + "P->V[39488:39520]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3763, Column 15: Field Element(0x4f5169beea7371e49699de4479f4ed90b65042326e5c3dafdbe78f80ea29f46)", + "P->V[39520:39552]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 0: Field Element(0x1715604765564a3d0485f696eda7fb95f22b102370229e1a37afc0ef199ce55)", + "P->V[39552:39584]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 1: Field Element(0x25d0a41d67149f9c0992523957405f4707a1a2b93db1374d2927937191b39fa)", + "P->V[39584:39616]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 2: Field Element(0xe4c2f4700fde713e05c7d9a43e1fbe9c4e01dfc571f2b71277d4af09439ad)", + "P->V[39616:39648]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 3: Field Element(0x233f24e72e72a6465f595679e2089c1dd6bb2fcdeba1e4cf3b534f903ee1395)", + "P->V[39648:39680]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 4: Field Element(0x4cc4fde34f6910dec38038c6d910bed290551b43b20e983b6883e81341a084d)", + "P->V[39680:39712]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 5: Field Element(0x410a9ab51409daad2a90f5d8386f29458e2c5f913e2e209eca813d6d3941885)", + "P->V[39712:39744]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 6: Field Element(0x18f1e7e8f6e0f414081899a54a64f65856def20732f8570942d5504535ca2d0)", + "P->V[39744:39776]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 7: Field Element(0xdf42f25edfd97e15da72d442772ecaf93b3fa57d1d47885a215925539a79cb)", + "P->V[39776:39808]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 8: Field Element(0x513b607db5dd9ffdc5f6833a4113fa2d70ff6f628125dc3d3a03544c7898993)", + "P->V[39808:39840]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 9: Field Element(0x6e12bc41d8edc9cc5eec52442e53a8aa538e4d5bd72ba3a4b9035d727d5c039)", + "P->V[39840:39872]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 11: Field Element(0x3616f75176b438fa1cf46c8de1cbe037238a3615510c80cfafa69691c536c0a)", + "P->V[39872:39904]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 12: Field Element(0x304500a912ce00ba13ad89b21f2e86a90fc0d66b153e50db32f002becb4a555)", + "P->V[39904:39936]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 13: Field Element(0x50ca4e0cc178633d33d5e4e53b783d8bc225762994df83e4bfc9ecad427b738)", + "P->V[39936:39968]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 14: Field Element(0x639bed6846229ed43b7f4b6f5b976ed35c8484c30fded3649058a4130fab81d)", + "P->V[39968:40000]: /cpu air/STARK/FRI/Decommitment/Layer 2: Row 3767, Column 15: Field Element(0xe838bdc58cc4801fb0867daee52c1c47aace163e05fe39e8cc075f2edf7620)", + "P->V[40000:40032]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4256: Hash(0xbd00ea0b979ece6fce456c37894daec9cf97f99b7e15573283530ddf698cb)", + "P->V[40032:40064]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4537: Hash(0x7fe32adf8c6480e349c558eb7638f89f2cd27aec83eb634f736331ed2ef4568)", + "P->V[40064:40096]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4586: Hash(0x1f1087685a980bd9a5b3dc7dce999bd8264d93a7f72f2fd96e9debfa2384ec3)", + "P->V[40096:40128]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4776: Hash(0x5ecb213e695c5d11780474fb568b348afa6170df818771ef8c8a1a326bccc85)", + "P->V[40128:40160]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 4797: Hash(0x2a0c818a9a3ae556274481b107eb811cf7428a70851a9c5db1f95ac56e2fcf8)", + "P->V[40160:40192]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 5914: Hash(0x121a000b9a4cedc621fe55969f80be5c5e5c61ddc6fd342ffad0a02317cb092)", + "P->V[40192:40224]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 6189: Hash(0x4bfe17d89a7c33ab3a73f19b733e7d4a9228b8454a782a9c397f9ee9ef9ad03)", + "P->V[40224:40256]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7749: Hash(0x7ae34cfac3066a475108cff45aa3af3cfd7c34ab9292a443c6c6b12024838ad)", + "P->V[40256:40288]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7858: Hash(0x3441abe9ced0f06e04affe7c7c029086943385c9adb97be1b0e6d8fec968c22)", + "P->V[40288:40320]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 7862: Hash(0x51da7c4066459ab7ba6cb92ae2675fdfdcad8ca27245b9f5bbc1554e6865297)", + "P->V[40320:40352]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2129: Hash(0x4f2cb4d72ac365a8a2f97e8a7c7ca8bc7a5c323dbca4c41a523d91dcee2133f)", + "P->V[40352:40384]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2269: Hash(0x1aaded45546bb3bfa92df9bdf2f27bcc5142574796d831876453922eb5ad022)", + "P->V[40384:40416]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2292: Hash(0x6a76e522e833dbc9c0589f49254cbce0ada96246809a22a51ababb1a3bd7044)", + "P->V[40416:40448]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2389: Hash(0x51c81c22a994aec73b44defe955c586d3f6939f668f229650b88c98a404c536)", + "P->V[40448:40480]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2399: Hash(0x10059e0b3e52db184f03eefd1c7167b1a2c5bb0297bf64bff3a6599b536a0f4)", + "P->V[40480:40512]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 2956: Hash(0x98726108c28b35f6d70729a7715aa9dcf58c98052b963dc6c446abf8861f4b)", + "P->V[40512:40544]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3095: Hash(0x48f5f99819527bd41b478263dfb63daa6217753efc1c5600486533217ac7414)", + "P->V[40544:40576]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3875: Hash(0x67b74836ceb5b995b02b47ecc9d6bbc90464de1913dec8172b8d481ebd719a5)", + "P->V[40576:40608]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3928: Hash(0x27593d8400b3194b1113d3be50bfd43819e18217e14b2f18ae708da2edb073c)", + "P->V[40608:40640]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 3930: Hash(0x5562b4096b493997d2e2d513779daed2ff9f86b9b54f99c5db38b7c2692f508)", + "P->V[40640:40672]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1065: Hash(0xdf8a13757517b488b5d1279d5a006da554c2ffba6205e4cc441834cb02ed17)", + "P->V[40672:40704]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1135: Hash(0x6ff6b3399ec79037305b3ab4839a0e6db258ef0101b0caf2a03096c32b93a3b)", + "P->V[40704:40736]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1147: Hash(0x77b9bdd5d06cdcabde6aab3d50822582691683c8cee98801015e5abf9ee9ee2)", + "P->V[40736:40768]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1195: Hash(0x6e6f134a6b17f20c3b0582c0d9cbdd3cc4e42a5cadd7c1ebed728cc649dca5e)", + "P->V[40768:40800]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1198: Hash(0xa6ad1e063350eb793c7ef1277a767003f2d7e5efbdab0a4c4e8b4029665f84)", + "P->V[40800:40832]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1479: Hash(0x27fc29b07c054d39aca1cbdb01ffbaf51743a9c6b82b8d5b4d2b1422c2d6001)", + "P->V[40832:40864]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1546: Hash(0x4c8d12dda6dfdd4c3c01341eafa6a5fb13b0f168251631ca63e9d05302a5c6d)", + "P->V[40864:40896]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 1936: Hash(0x634375f9bb85d9fdbf6976d9d76a8074b167db427cbef52ba9333ee8a879c03)", + "P->V[40896:40928]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 533: Hash(0x52666f7193958d8123cdf76aa76acac4fff42627e045239c65ba4294acb81b)", + "P->V[40928:40960]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 566: Hash(0x7c17fc224556981426c9a269ae7c0377c406ecc944fde8c81124dc8d0f5aa14)", + "P->V[40960:40992]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 572: Hash(0x27622d86d534521cabe3e057383ddc9b0199da5f43e21d56357335a217fa40d)", + "P->V[40992:41024]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 596: Hash(0x4aff3cfa23eefc4c5c267e2d03d2ee755fe33c865be47541c68b537fedf2dc2)", + "P->V[41024:41056]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 598: Hash(0x6fa56b7fd4bf09ff3e03b34ef406911b55c2f3ac1d79889e49cde9a20a38a10)", + "P->V[41056:41088]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 738: Hash(0x7c4d97bb32f52b6210615c41554bb2d58e804db7ff3aaf941586efc8967d999)", + "P->V[41088:41120]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 772: Hash(0x4d0a7d1f5afd9a14ce5394a33931eab92d757d06b2f702cefbae3dede7535f)", + "P->V[41120:41152]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 969: Hash(0x531263154394c740c4eb7f2ffa03fde4196811f174ca7a851c6faa3cdd9dd2)", + "P->V[41152:41184]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 983: Hash(0x26973db7198b3b244efd19d343c6e72f46adc2ff5d446d10df57a427a809f7b)", + "P->V[41184:41216]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 267: Hash(0x3413acc4611b381ab0c6baf87ebb481d1d4ed4db343931026f6d06414e4135d)", + "P->V[41216:41248]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 282: Hash(0x3f770a09c472c9cd8fb0522143245732b9d392265693146e92fdfe5fa710c92)", + "P->V[41248:41280]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 287: Hash(0x1827494ca96e354ef5b1cf9ca316aaf91fb9180cd645a166da26e7776feae8e)", + "P->V[41280:41312]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 368: Hash(0x568143b5594317be12fc577718fd8b31d2406307f9c1037ab7a11e34d5dd79)", + "P->V[41312:41344]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 387: Hash(0x3d6586b44462dfcb1ad548d95fe5151d73d2d98039c896a42b5f17a6d81db7d)", + "P->V[41344:41376]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 485: Hash(0x61f80c0291690b224b11ef3fde156364a9fd7805e7b3397131928d07a0fe3f7)", + "P->V[41376:41408]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 490: Hash(0x7db6b5a0e7d1f51f7b6832138725938c05beb9e41c66411714a87e856372b55)", + "P->V[41408:41440]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 132: Hash(0x30521c52a706712d0b6d9e899fa9912a9bf62900faa8a0bdb96a6d1b5d1a016)", + "P->V[41440:41472]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 140: Hash(0xf2700de3098c9b2d145455d85a6ed476b8c5f85a8a2b4cc31ce67c503e5a6f)", + "P->V[41472:41504]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 142: Hash(0x9727b839a8b1aea05bd799dc672ec3ada7ad2b3992389b2151ff39446997ea)", + "P->V[41504:41536]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 148: Hash(0x57010d833f84ece1b80c8d4ea11c32f95c7154efb8f358999e22134c818c845)", + "P->V[41536:41568]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 185: Hash(0x613194973c75cf8a1cf4620162c74a23c488a7be618674cd8a5d6b972fcaec2)", + "P->V[41568:41600]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 192: Hash(0x753bc53bb714ff97d81e5ba973b2c11f7f54ad6312ab8aaf7ce0c63285dd754)", + "P->V[41600:41632]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 243: Hash(0x7ba96d77cf8aef9f2dbc5a6e70e4f57029e2bb71722e8a26fe032145cdb556b)", + "P->V[41632:41664]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 244: Hash(0x49dd8695e31e80e70d65b667c9d3d69be30023e4ef1df5884821e72d4afe06d)", + "P->V[41664:41696]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 67: Hash(0x25af3403708775ce527499b4bc065a37414149d8bc06cc2d40b8cb6c1a6b7a2)", + "P->V[41696:41728]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 75: Hash(0x7729aec81770cf9106aaba5ea15eba0d6a5fb0c4669e98d3837060352bd3bd4)", + "P->V[41728:41760]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 93: Hash(0x2812f00d55db818a36108d7b3ca4926e3f08a2b47e623c85f76e6290851f3be)", + "P->V[41760:41792]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 97: Hash(0xfe2312fe01a3a85e47b2b45477fe8cfd2156f6037d6e46b7394011a98d618b)", + "P->V[41792:41824]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 120: Hash(0x77c5f679b96dc20c360f93b5a6e517b757ce44d31d849de6bcd9d64bcdc659e)", + "P->V[41824:41856]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 123: Hash(0x4e278e1b089317a5cfdddb0eb7ef0aa785d6e380d336a6dcf61cc48bab686f4)", + "P->V[41856:41888]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 32: Hash(0x1c02a7c0d50e654539174af19e0757f1130d7ec1e236615cffbfea039296397)", + "P->V[41888:41920]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 34: Hash(0x5c3f2db6007fca2f675e81e7dcab79273adc6b0fa5c23d75d17ecd83283b904)", + "P->V[41920:41952]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 36: Hash(0x7c5c347a28257f4b42fe78148c8a6af101de3a0121ae81392bc4bbf78b1e96b)", + "P->V[41952:41984]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 47: Hash(0x25c3051342d3136b1f6f7e33cc77d35b8c6446759818fc527cc97c29f6fc1)", + "P->V[41984:42016]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 49: Hash(0x4ad98be73bbfcc1aa82efdeacd97a3c5498163cd630c67dc0cc6c648ab53dc7)", + "P->V[42016:42048]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 19: Hash(0x44cde40f29b2eadacc9303d5f8dc6b99545355dae4c076e1c788ec5623b6c24)", + "P->V[42048:42080]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 22: Hash(0x9df48c44c6f485b30365b9f788925081555c187ff41ad12f2d2ca115b498fc)", + "P->V[42080:42112]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 25: Hash(0x68138a5e4ca8df27f6a1ff57021d896376d1e19303e027f2cd67edb21d2cda)", + "P->V[42112:42144]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 31: Hash(0x522c50fe3f4fe325ebb51f848fe1a7b808186bbba9024f6d67a10d614dbc2f6)", + "P->V[42144:42176]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 10: Hash(0x26c34b74d9770562aa44f95fd5c62d3a450cc5880c33d08e222c2319b17b068)", + "P->V[42176:42208]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 13: Hash(0x6b41ad5a82c897120f94b7e03c12c4aa91b39c58b2d0393341755cefe8129c)", + "P->V[42208:42240]: /cpu air/STARK/FRI/Decommitment/Layer 2: For node 14: Hash(0x2301c8cd6a65cb749d8aa34cc63cf7f815ee0aacd4f068944e856522addae06)", + "P->V[42240:42272]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 20, Column 0: Field Element(0x726029d506e468691b04f03d684b7d14ee4ee4cb205338835a1adb719d4c3c3)", + "P->V[42272:42304]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 20, Column 2: Field Element(0x57be334f95e12486c504120feb394e10d885235547e11076b847a991242eca)", + "P->V[42304:42336]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 20, Column 3: Field Element(0x134657d64bfb165a1a418706b9ef4da100665a99ddd54a9dfe5cec91fcb6314)", + "P->V[42336:42368]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 20, Column 4: Field Element(0x32ed494b316233759fbd60004538469ac2d83f104ca11afb3bc1fcc709e04cd)", + "P->V[42368:42400]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 20, Column 5: Field Element(0x25318d41a68f4d5e29b238b4f93b1df78517e8da09ad099b449ec8f8f0b9094)", + "P->V[42400:42432]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 20, Column 6: Field Element(0x5ae99d6b4439ef7c6bc86b597ac275a2bc5bb10d537830e994ef78a63cc9548)", + "P->V[42432:42464]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 20, Column 7: Field Element(0x6a3e96f3091dd60b608903c97a0180020d488db4bf5fbe3ecf035385e78cef4)", + "P->V[42464:42496]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 55, Column 1: Field Element(0x67849ff843300b7303627211d8830f1446407ad06336ac56748c7f06e39b564)", + "P->V[42496:42528]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 55, Column 2: Field Element(0x7409cc07cabb51560b367b88d59b034f12fa47eec15501294d59e91fa536efd)", + "P->V[42528:42560]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 55, Column 3: Field Element(0x289246c6da8c04559fc3c3ff122f4b1a3233f96e4886e541404a4cd265d8536)", + "P->V[42560:42592]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 55, Column 4: Field Element(0x18d9d00f88b99e8bc50e0265ad29e68f8b883db59df98ef0be4e73772563194)", + "P->V[42592:42624]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 55, Column 5: Field Element(0x103fb0fdb890b72716805ac3d57704a13eda1c5854602b93f9d6c2b387c45f0)", + "P->V[42624:42656]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 55, Column 6: Field Element(0x1a260642d4bae48d8351d799e73e37ca04295b52298c659ec28ce020cdffbf7)", + "P->V[42656:42688]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 55, Column 7: Field Element(0x6a769f0b6ef8f4fbd36fe705d44b77c3da3aa51f37f4fc3bc4b6439db845995)", + "P->V[42688:42720]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 61, Column 0: Field Element(0x28e0b5742004cb18455da9056a870169a03744e99585fc206a4807eb914ab56)", + "P->V[42720:42752]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 61, Column 1: Field Element(0x12d50649a83b117d0edafcc085a6a7d1a55a847484cd5f9904e9697a2945ea5)", + "P->V[42752:42784]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 61, Column 2: Field Element(0x71f74f1eda003879c5dd57e89bc78744cc1d0e96a42335fb7768097db4d4f1b)", + "P->V[42784:42816]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 61, Column 4: Field Element(0x571bc9758a37941f83c5b603cab3e1c2277dd88bcf5a7ba40aa4db4e7757baa)", + "P->V[42816:42848]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 61, Column 5: Field Element(0x1ab6f36adb10f2ca70cfabb60eec6367957e9a3cd24bd6cc355141a3b06649c)", + "P->V[42848:42880]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 61, Column 6: Field Element(0x1a5b35d3d8604486e0beb6e10dec4c62dd4102f55ec3f0809dff0a9411e07ed)", + "P->V[42880:42912]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 61, Column 7: Field Element(0x19ef95b78e4df2886c29bae91daf9e115a11a5703ea99f725da3adc1f2d558f)", + "P->V[42912:42944]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 85, Column 0: Field Element(0xb79010716368941c14093748fa2c68b3b971e2c3035f71f6fddffcff6e6e6f)", + "P->V[42944:42976]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 85, Column 2: Field Element(0x54b181ff03e5e2c2afc5f14c4d73308036a2b3ed8e28a497c58558732c122d)", + "P->V[42976:43008]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 85, Column 3: Field Element(0x4f73a5cf288692434c2d6d56b87477d046140b87632d1e279c29c264d52bac2)", + "P->V[43008:43040]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 85, Column 4: Field Element(0x1cc86df36b6afa5b7fd43fde60b5d85243723106b22afe8a7bd9ed134c95335)", + "P->V[43040:43072]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 85, Column 5: Field Element(0x2bbaef192d9daea5efdf0ff894317adb6793c1ce6ceda500a51be3885ab526)", + "P->V[43072:43104]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 85, Column 6: Field Element(0x64100f036a561032cfd5730e4ac4156af510639f5f7636a47d1508c7e77cb1e)", + "P->V[43104:43136]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 85, Column 7: Field Element(0x6b7d3f8c7f6ab2275ef0f9df1111a21fd3d835ea5b4448fa531656d0c2c2334)", + "P->V[43136:43168]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 87, Column 0: Field Element(0x7d65a0fcb1d37dd8ee730ede91baed9bdd1b1a5f13e202f7c0064a589a6eb5b)", + "P->V[43168:43200]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 87, Column 1: Field Element(0x5d1a8146c3f151984cb13236ae83345d5359edb339ad251c17bc2f489eb11c7)", + "P->V[43200:43232]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 87, Column 2: Field Element(0x13948a6031613bd6cc65b6df6450a049ee53f7efbf0133c7d40d25c5cc586c3)", + "P->V[43232:43264]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 87, Column 3: Field Element(0x5ea5e9f59f7158a828d0bfa1c3f7ea2923990270c2bc20f233b95cfa8a7765)", + "P->V[43264:43296]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 87, Column 5: Field Element(0x643548b335bb4e22659ced1d4d7ed82eccdfeb902934975dbb38f5727f2c6a9)", + "P->V[43296:43328]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 87, Column 6: Field Element(0x655f30eba6724758bb42c03f6d487e6c08eb05063af731029ddcdf47efd8d49)", + "P->V[43328:43360]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 87, Column 7: Field Element(0x311178d840f45738591858efc64bdee079ceea13dbad0190806feccdab49473)", + "P->V[43360:43392]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 227, Column 0: Field Element(0x1c914140629280fdf44f352734e17af30666e16cbcca22e12b4cea24b11850d)", + "P->V[43392:43424]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 227, Column 1: Field Element(0x7f1716fac93f4c357458f143f0ced0f79eb1a3cc06855d1e1c788d963d4287d)", + "P->V[43424:43456]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 227, Column 2: Field Element(0x76cd01bf5d058c659a9c0aff178bd5f62b255756cd03f491583caa99594ce35)", + "P->V[43456:43488]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 227, Column 4: Field Element(0x22974c93fe6c2bf9195943e772cab73941498cd8385d8d483db754116da978e)", + "P->V[43488:43520]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 227, Column 5: Field Element(0x243beb28c0e11c1f5181bab53686682a5f8cabf69543ee41aeee61d3cce6fca)", + "P->V[43520:43552]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 227, Column 6: Field Element(0x3014210e7d8ef9fb8016a239d7bc5d0031e61324a75d2776cf467b391bb9189)", + "P->V[43552:43584]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 227, Column 7: Field Element(0x11c8c786cd9182c8acb2a8519882638587d35d001ebf3c3184dfb4b890c4f6b)", + "P->V[43584:43616]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 261, Column 0: Field Element(0x6b902cad56844451cc8d0b9aa2dd9ae67ca5f40fb7ead7cec4bb302ecf25ea)", + "P->V[43616:43648]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 261, Column 1: Field Element(0x3a3d600cc247c1ed146233958999e94f626ff5251470f7cc8edc648cc6cb55e)", + "P->V[43648:43680]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 261, Column 2: Field Element(0x5b9eee745351dd332c89f458f6b7f7ea8da6e2eb4bb603a0c70067f913d746f)", + "P->V[43680:43712]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 261, Column 3: Field Element(0x2419b5379827c32914eea179c7b432df03ec76615d1bf8b701324c854260bff)", + "P->V[43712:43744]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 261, Column 5: Field Element(0x477e69f5ddd8de484a7e117c63a3dfe08ea80245e84256d6ffd7c6909d647ad)", + "P->V[43744:43776]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 261, Column 6: Field Element(0xfdd3395a5d6647f0a7d4520b4de09a8e05e3d544b0fad3a05be8543b7dc161)", + "P->V[43776:43808]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 261, Column 7: Field Element(0x6806d80fa5a2b96bd7ae5ecf499ffd6e3bca40648233d4ad973c761c8faa03)", + "P->V[43808:43840]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 456, Column 0: Field Element(0x12cb34c485ddb875432a34c196c9e17c1daa4840a5a381a1881c1ecd9c5a634)", + "P->V[43840:43872]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 456, Column 1: Field Element(0x5233067206da6727744876352ecee23c4b5b1eaaa178163cda21ea9c60c132e)", + "P->V[43872:43904]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 456, Column 2: Field Element(0x334c86ed2f6e4c584f49562f812435e47009dcfe7e7abf8697b767e3c40bc01)", + "P->V[43904:43936]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 456, Column 3: Field Element(0x5c4338698cabe0f3fe098f78a7c22d1047973819038877e4e65a859c9eeec33)", + "P->V[43936:43968]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 456, Column 5: Field Element(0x365eda8a6416c9c111579fc8498e107d047143119b9b07a6e0c92d097e05d1e)", + "P->V[43968:44000]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 456, Column 6: Field Element(0x7a28a345ba9e635e9bf3187cd95a65d1973f18b45e04e4564c7649539f06937)", + "P->V[44000:44032]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 456, Column 7: Field Element(0x74e489ea22ea84a8b91765d093c728cdcd4b31449092714596a88f7626f5815)", + "P->V[44032:44064]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 470, Column 0: Field Element(0x96f728fa42cf70a00cb970b2760d2b7874d7c056a326b71dbe9d72eb89796e)", + "P->V[44064:44096]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 470, Column 1: Field Element(0x40b7e9360b74707b0f24dc9a28401d3d4fe8bfc1f863e879b6b041006ab8ad)", + "P->V[44096:44128]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 470, Column 2: Field Element(0x59d2c867f162c487230d67728a72d52c19cb7eeae20496c50495a237774714)", + "P->V[44128:44160]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 470, Column 4: Field Element(0x2fe07d1c2e632a7ab8af251a490d122f086febfeeb32b9852717c54f522cc48)", + "P->V[44160:44192]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 470, Column 5: Field Element(0x633afe195f711f1af4bc01d0039e0eed7afe2ef8805fd21d28bcc31f7bfee0f)", + "P->V[44192:44224]: /cpu air/STARK/FRI/Decommitment/Layer 3: Row 470, Column 6: Field Element(0x518f93b625a88ac0c9223be39dcd3eb108e37e59ea22b4a68d5dfb8a5f82242)", + "P->V[44224:44256]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 533: Hash(0x57a72fecec1d1b53d8e45b5a7b21a263b238edc62599a6697829d266a54ae40)", + "P->V[44256:44288]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 566: Hash(0x4b338d8c1c9723faec4e52ad98611ef06a6131aaacb9b88752c0ec7c3621bf)", + "P->V[44288:44320]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 572: Hash(0x6f264d8943b210ff5a7e206fd86a48736e08601b687193e061ab9ff06e1f025)", + "P->V[44320:44352]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 596: Hash(0x1a8dd4c3d0db9d2c0db4b7f1a88e9a331b2891557cb8332537c71484fc80bfc)", + "P->V[44352:44384]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 598: Hash(0x62e67019a12a3575eba11489a11951ed24ff298b081c181a31643601ffb6b65)", + "P->V[44384:44416]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 738: Hash(0x6a0707e7bab690ef00eb0ac07f38255fa9c961de41712065c81ae69392a9ba0)", + "P->V[44416:44448]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 772: Hash(0x4f24a62279df0d517c37ab2dcb069e48d113dd5f4fa175fa94f0db8ffa22240)", + "P->V[44448:44480]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 969: Hash(0x68f2a9347a480e9b15fd872080a30454a99509cbfaf2a8ada6816a84279433a)", + "P->V[44480:44512]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 983: Hash(0x529e3f6b2e8585e89a4ad14aa0c966aee322944467f3bb1c910abae97171ccf)", + "P->V[44512:44544]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 267: Hash(0x2c124956377cb67685c9c2774b7cf342b10a9d438fc3352ad057aa6af28da3)", + "P->V[44544:44576]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 282: Hash(0x7a4485e6828e770ffae703da94e4bf5fa827f6e91f1d590401b0c114f4cf13f)", + "P->V[44576:44608]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 287: Hash(0x56de7967a4aa7661a773016bf9e40a693c783890d2191dd47f4e20d9bd6283b)", + "P->V[44608:44640]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 368: Hash(0x56568055e087fa774897c9e9433c9aaf3207d1206f13fc905fd7af3485424d4)", + "P->V[44640:44672]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 387: Hash(0x34b8f0ead718e66dd7d9936251547126e02dbf30db4a3fe2070d00f670f3a2a)", + "P->V[44672:44704]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 485: Hash(0x4dd1187cd52c9ec93a7439afac9712025b35ba0df8ec7f033fd859b9ad11ef4)", + "P->V[44704:44736]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 490: Hash(0x7a9919747703da3ea40bcdf2cbc2583be90c8fe04f97250eabb51dd30976f6b)", + "P->V[44736:44768]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 132: Hash(0x5657d0090912b62286cc0f9d1b6fee96e7d377bd59779434502810af02a642d)", + "P->V[44768:44800]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 140: Hash(0x3a23cadfca27265040cbff1be5ca30d9cc60de945da62d46c6d0ca758e1a35d)", + "P->V[44800:44832]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 142: Hash(0x26fa34004feee9692f139b9bc8dddaed1358473d92790817e3968c7130d67aa)", + "P->V[44832:44864]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 148: Hash(0x3adca71720639cacf67231ab21510ab9cdc0deaca8c35a9c2087562c2e21248)", + "P->V[44864:44896]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 185: Hash(0x1f7986802a2d6fbc58abfc444dbc8f9faf4eaa07a31575f86265601e434b1f5)", + "P->V[44896:44928]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 192: Hash(0x1e848ca8a906fb01ddcb1b2a98f61e6368874079147226c92072bc23b4833a1)", + "P->V[44928:44960]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 243: Hash(0x58ffc74086ffd7cba6607492cae5573714d513713c6c2aa0fb537fee7031ae8)", + "P->V[44960:44992]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 244: Hash(0x2ec980db39cf2308f10e975c9236c7a6fdef49e80fea5f1dfe0dcaa5cd10c3b)", + "P->V[44992:45024]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 67: Hash(0x7f446b762f934bbeb1d3fa751681c6cf32aa0da8b2d6d21de33fd8ed61e7b5d)", + "P->V[45024:45056]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 75: Hash(0x6028cb51f242f07ea24fecab67735e3335a2271148117fc48bf4056dba526d5)", + "P->V[45056:45088]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 93: Hash(0x3f3b299b23e2f6abf447f2c85a3e515fba178e448bc29935619f448f8173982)", + "P->V[45088:45120]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 97: Hash(0x63173184e3013277eccbbd741dc36b5e8fd7e3a35cefdc7320c9ee205bfae60)", + "P->V[45120:45152]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 120: Hash(0x390b10c7f918a72746f8ac09261689482f53fc6b109c433b2cdfbb73f7caeec)", + "P->V[45152:45184]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 123: Hash(0x333c8e55b4333cab029ab659747d837ce06d9d763a078db00c84db2a2917d3a)", + "P->V[45184:45216]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 32: Hash(0x3a0326c576ff94c72fde55e2b1bdb3b7543f883f8cb36050186a8924743604a)", + "P->V[45216:45248]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 34: Hash(0x1b0cffcf563e55aa2a5836cb7e204a99d7ade369919c3959be3e854ede4734d)", + "P->V[45248:45280]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 36: Hash(0x4d4d171b0d541bad4f29dc3f252bf94366df193c028f5bc330a8dcdbdd27edb)", + "P->V[45280:45312]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 47: Hash(0x2e19e29cf378cba8f914d9c44d23a33e220d6fcd7ae90de3f142671f277112c)", + "P->V[45312:45344]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 49: Hash(0x50d696b232759cbf4395c27ba31ad3b1862efeb70915561cbf02d50fb9bc2d1)", + "P->V[45344:45376]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 19: Hash(0x60d841256a1db8254bb68054e557dd7651cb727a25983f3e94f516183a9379a)", + "P->V[45376:45408]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 22: Hash(0x52efd81eecc263a211d34b15b2f9b6cf3535d720f7e226289054d250b0cd429)", + "P->V[45408:45440]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 25: Hash(0x3cbddaa7722e7f3be486f6558f153a5749f81a7775d07552ebd863a6c99a836)", + "P->V[45440:45472]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 31: Hash(0x5a5d532266632c2e7a9d13c4111acd93f0795f87027caf0272d7f103b34de08)", + "P->V[45472:45504]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 10: Hash(0x25bf224b1095fdbf5032e0c08c674d45ba4654975d1ee45e1a8d80897ee0550)", + "P->V[45504:45536]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 13: Hash(0x475f5fd0126b702b21457e449c79f041b10db735e57976c4e1b3d39712e7e9b)", + "P->V[45536:45568]: /cpu air/STARK/FRI/Decommitment/Layer 3: For node 14: Hash(0x556f58a61d14a22447bb1dfa6c3053f47bb9105e359d9cb4bf3f5825fed49a2)", + "", + "Proof Statistics:", + "", + "Byte count: 45568", + "Hash count: 678", + "Commitment count: 6", + "Field element count: 745", + "Data count: 1" + ], + "private_input": { + "bitwise": [], + "memory_path": "result/memory.json", + "pedersen": [], + "range_check": [], + "trace_path": "result/trace.json" + }, + "proof_hex": "0x048b0a11196ab4281994e8d2422070f6a0a56d4a454dbcbf5376d8037ba1a4cb01575e31e86c01103b15150dcaa4881a3c4e299e571a04c5f61822f93ca61567074b4d10d395af8c02dc8cd3c9fa3a971da8c266e324e3d8588f2afe742634f803de54f877d599f6f7ea12f0b81b8663dff6115261dc9de4cceccb2deee5ece7031b715dce18c98b88160e94c4c550b29ce2c88d5a8c8ea335765f685e21dc4302000ad244eba8c53f3ff619c133a2698abd4768e89d47daad005b5e3ccf04c105e9d2a6767025dd7f4f750740994282def8955a8fa5887cb630633ad7567bd3042d7196f8f7a421c31302301ff264c8e60192c3559ec6e5f71a8ea820d44592024d934f42108e17c730ae3d0d00a3a84401d52a36efd74f339f439897099cb000044a00c08b68053b9fccd1657b0e58365333898fb921946cb8f98130a3b05906d1ba500e2a6538c66aebe0c4f77d386f51612d4105660d7f1e61bd2b45496806e2afca679f5a091184755df4a70fb2b6796cbe4a399b301726453ac8540ecd00250d9c32db2b3363b9e77cdf1b004d7e8c750e351e8004661f8e2086d30e6205c1407d9f84d4361547d50efaf26a4f7f24cfb63556a48aa9d690257c7140080266abf13b33a76b5f26564aff14d3407bccc10c6d90be772dff9ba8f561cec50085f5e929826b59f9c7747c95ccbf208c8a47be4bf38df3c9d4b150f1e967ce02adc3b5dddf4c8fc80d0ee4ffb67c6a14590fdd5cfe9128e9919c1fa15bf0030047f2d176ef9c3bc7d0be506d60c76f1d7309a44896aa6f5671582c538af00905b49ba097598776a1f2027187f679e3be1fcb860821dd6d1c321cbdd4d8720804c6ee38c09de495c701a05545862c1832d57f4f0af54a1bd48492b10538a51f02190867e8b3b132160b5de613dabb282988eb8823ae081d373642a32121e9b506bed8e1ef11db96c8e28d0404999891d1e5c37f583fc2aaf642feacc479e2ec04fb8655d8e2db7b557a6270fed8a47b9e69bde88fbb1e268c06ce1631f850c703664118d8a99098b2e21a9a96a4cb1266738c48141a5bd04d9789a50dbb2085003df0892815cf39200e38ff21b47007ed96bfd5aa7073daefd83fc707fe6949077310506db0e4c81f2064e712399e92d0b29b48db62e77fc12b3d91d3c3fb050500d5ad1d74fb5fa9fa1d8bff31f420b2d5958a053a9ea593f3cbdf9ecebf9201790c7e2836066391c6420b017e330b3c38ea96d2c09c01294cf1ac1985f03f0216e5e79f61f228bcd7867ef3140a1039d890a4a785ecc777e0c4d7fcf5faaa020a801763376c29d65a3adbbf2c95a0801b51d160c4c8feb24211a2708af58704481644f4e0b965bf23db84edd9c817760ee33ea2c9020386deb052631ef085017597443968edad006cdf47693fe2c118baac1d9abb6dd358e4ba5cb51b84c901290a84753d26e5e849b523fa10b466a5e2fcd140b9abd7dcafdb6adb31ba1f07d77d24b411ef0723d66c40d03711001adb615a4aa7c93326e80a2b8af5b405007794e0dd24fac5cdcd016d52be6830773281f9ac2785ad409ee4376c16be6b05e4ec7fcdf972626c3d1db51771e3373d55ebf902da466571dd37238a6406f20333ae9c1717d9612de2061261c2d2efae271e1edff9e89a1e872bdbe969e1cd07dc44e7db3d89bcdc2268584d4c1da6cfefe29c5da2dd9a5194af11ada5fd36004dc594e19afd47c1787854831ab775941956049a491e603bb876430a827cbc0373e65a093e296110d6895307ef0a9a9c6f7b38d3fceefd2e811c3a2e00653a07086d823b1128ebe0cf7dee5e52c4ee941d99873695f84ee44cfbc37ecdace4005e214c45652e625ef1320421ae001b77d965828e1eacdcea600bf4ba054bae037e9620ed5b61e6296bbf1af532094c36a42934fddf5a869815184c6287fa0a03c49a81d80548a806eae7c1787cd64e1c877a11a685f9de5ffb972b227d6c1101f85dfcc8d2dda07a5c32021a8c4a9268cc91e70b3f7b5f78072895009c2aaa017bb193a9afe57270fbcce55f02ee37f4da5e9e07e977b5a6f4ae6d53dae068016d10cc90eada1630fa23fe1a3d79b714c2a7fe3a670b3146c7ea3df456b105031a132e2bca913e836488b9f7d8330d07cc49ce81e79bf4b30e96fa74e1139303dd200a70d033361fa98b11059bfbc1e1ec6cb05f5c35fd266099aa2b9ccc8202f4a96a719f2649f9c35f4f07da561c28e96749bc2d7b3999f0a778ba13979c03dd7a25f284fce7b286ae048ccbbecc53f1822198cca88f27b8d4bde82bd1a002098baa8bf1f3f031571a0003a10514fdecbb72c55a7aa98b89fbb0ac28cf8203a3c8d8a6d0c5e1ad59ea8185b1c34a0bcea9bbaa3bec22b1d2916dd4c6f103000a317183a8e3ef0126a6d811b2290f23be345276bc0b3de452b101e34ab20c02f6aa23d7e59a03abcb30513175c5b0e9f419b89361bca3fd739dea949c6a560558a372adda477627ec2c20f0fb26fa043f394b5815fa93feadc008c23929de035488cb267180668d03f0c029ac704b7c6044fc6726a21000cbed843d0941e1070b5080533b3baa3fb39b6d15fddf193efe30572d2892255b812aff96a847e80794ba8cfdd44cd1cabff48a6e37c053692884c680d7937829a8a89230e82100027e35623670359c79d0b0af0dc00f7ac8ffc44d0af1213606d685f81b24b64e07d10c7b29192da1124525ebb0feff25af238d4f11ca6e12c27b3f381dc42ae8074d6d5f95538bd2bcc0821e504f0f5ca55b0615b8dbe7aff95130521bdc67cb0285e88da3dd22346026bb557044adb4e450e994eb4cfa5971fa96068d11b2c302f7813d94de548cf347ba20048821eafd832b7deb12fe18e4cdff2186d2f2f101261ccb18047e5ec220b2ea0db9def52721b00b77bcf7ff153bd9ecf59305ae079d39a427d2c2c21e5bc11beb45272d180bd3b338047a21cf684399d41aa6c5023228ecce18f11f77a260a7209e6dc6e27d01e920fc283895a40cd4b894e1fa07c0c92fc1d97ba1d494cf531b0cfe60e3512c3cf6d7c60900eff6f480798ae800bba183ec779188e56e9caca46a8675f0b6d0b46fe1a73f52246d437cf2798502603c27708303de9d6080fa8551c4133dd5e816359c7199afb2889b9798fdac072ef1a85b068b6feb7c7b65387060d7b7e38a1ca4774818f0498ddb0506b34a04003a505c51d1246ff37613569d071ba2dd99b5878708790f563b4155c3347e01c6a4799961b62fc17aa107246ea1ea4c68f9e6a609eed7693df3a17b9b1fb303cce5a9b03e7b8337119aab29f858d1ea9e49d7daf245d1e96eabfc053d85f007209564a6239c1a5c0f2e10e8ed97672a73e16ee0265e87934f901841fc654b068260c9b44ffd2de200a8aa504e4e32383706ac2e375b62022d06084c7bf4e2076bf219d6d5c8ef4a15b79169285dbe36256d5348d82d4546f0435b7543ea1f07a03e5a6366ab6d54b223f4694a8fff593ab2f9d9917f7b15340deece5c7eaf06b3303fb7aedec6dda7aebf1b109ea0049a1832bd82c450374ad5387cdd97e105ddcb9c991e13ce2847b99a50d287d1794f6aa7de0e1ff1271300e6428588fd037b8515a28cae1032b0e7d581c73442a254baeadbe54cbef1cd1dfc291b8d860722ff73a8c8c13b5f2d03832dc5091af0cfdfc57acbba25a2976d0a9708b2e8018d8c052db2bbdeb0a4deb2023e7819e47c518621b2aae722c7f02380362cf207ba4c40611820ddb8abde6e41d676b4870c3d4a1e3ee539a97f681648d4c68405c3c1478a29adc3a2028bfaa7e0fa6be751cf53966b7bc7102e7d31fb52e06006e212c5fd69dacafb46430c96445608f955a0fb1562bb83fba6aef9190c789b053d376946c70eb9e178c6dca8e0099c3c1d1732fbc239c0078dbb96c3bcb3f10306f477b24b87bd192017c6c7d37953548449a7575ea4941848edfdd166dbf600177b180e26b1e05b41592f69c485169a02eeae3fe10a7f5b4d29b841058f5706ce18b53b364fed067ac8ebbef2e0c253209bd34928059ef32b834f9972268104a44b6523cc5e9c7e31e81a527b584e3ae10973e833c6472b5cdaefa4174ec700f0ab6d43ce420c806c23bdbc31513dcf6c6a4fbabe5908b6f7267a7e57009a02689b21c0ed7404be57663e3828cf478d7f2b76ba15ebb5ab0237b6653ad71406c3360c1d9382c311c7bbd8085d565ff8869cf77d5f7e37bfc1285d59b1251304babef345c40c3a8cc39be234f98c444adce9d59db2dd7ad2c3d957bb6ba57303392dcf3f771726766724ecc2e202b15fb9d32967a5fd5730417bb8e40e94af020b9c851353391e0463277dfa8e64ecfd8df8981d566eec97f5fbe5956d4d3f068269b80c0a477ba0b430d6230f6667042f487519ec9cee42fd164fbd5dac2a054b2b40a4bfedc843cd4e92b0e21bb8779de73e064ee34369f49971bb81aa4207e320540bd9071965af275d91eb69e287f2a87eb7de4198b7d4275a7014c1cc078440d860e25e1cfb89f345a872744e9e93eb54755abb1e5d048503af4f6fbf05c6c0e79207513f2a69454409be31cb6e2d4da3af3ea97b5a7419a334f42ab901b56506f096a136f30b874e4a9ea3d42fe2e9a0f30ebea8c73318fff235693201df26601e09aa81b7286dd78e9a35dd11b1057f502f25497f9d8ece915680e30459bade8dd9ffcb7311805214ff268b5e883297000c03f8fbc09e30002ac2fa055ddee3c857f3a14b94cddb1324388ddabe5dee323007365dc83da9b843e9c50149291e3abaaff2a35fd6de1bd21218470e81402dd4b72b3935e52c352a1bdf05a58dfb948d0047811d1b23807e8130ee95865adfd085fcec7b13cf59464bf802412cd0afda93993db087d1b23e99199ea40fe72ff0d6cf5dec692a6afdf5e004c8479e6551c7ee1cdeed9e24775b57b0f1a70498025646b1b73576c7a15d4706478f50d6798d1719773fb2c1efd0353d85cb272440510267b2263ecd10d977062e42b9057e5a1304f44198f75ad6df773db1b898cb68949837a589f38bc4fd05ea3f640756546ca3182301f93c4a8f3a7de564c19d69b9698bf8a076ccf92703f752c53941a48a61acaa9a028f40ad4eeb7dc4e74b60bad9656b8d8dbf67ae0203ae965552f2a4eb82c73d8bc1b2be9e6a0addbe7c536ea17e3cd711505edc07384630bced0225d9a7413627f7ebe97f782ccc5d71da4a5a0cc9a40e484c6401f77381ab86c9d619f6245b45d06c77083281d4dd3ad1f6e7334e3ed0285b42009f59c2de9d197c31b50f52e1d0e120350fe57ef1cf8fd895d3e8bd14fe695105838c7801a22f528df75ebd25f26178de071e20d7876d1ed1d01efc7527a7b9051633f896f8ad353ff8f8f9a9e675e01eabd1fd4a23668167fc3ed354de399607ec582ef7c2d2188020bacaeb59068ba6a3a2e902589788708a7a7ca6011f63030f4b1f4221a2ce89b834d89a09313164fbd3775c1b6052f91cea8df5c403bf01e76f018e7ec22215bc974cc61ba5e65cab5ca3d751fe72f0b999377fa4bb9a0000d01ddf5f4edaaaadb52a712226db1e6b539af5e036c7eb52c0e63c46d1290753973acf41f10c5e9bb940716411bbdc9a5e7432feb234199729a971954bf20061450b13747dd8ff8e2bb40eba816adaa53a8eff1e25f2551fa1cc8ffb736f0745add44cd2f3036f945d1d91a66de2eda503c31327538668143084993c1316033ea6d5a82db0fec63a99716ab117679e43cbca295b4d938aaf8b0d5cc4452203dd2a92a91f0dad295562db6b52d0f698f5d3fe95dbdc0c4ab954cab746873106fab6ea282b519e13bf290522022215320ccc8079070b5cb029587fe17c42cc0240195e2f83ec9f12563537549f4789e0e9b4e9c16f081edb842b1e783266d6073b4f8628a80789bce644943f1b746673323a591d67c92bcb4d682bd604482a02e94535452eb4d6779c7fb8ff94b4881c597b0cf5d1cbd392bdb312ac436c020060cf7e6d2e69b67427b120a7e3e2b2ba0fd48d2d59df5ddf3834811f8cfff1026a0cf8da64b01284a41702092621ed1f6c0dbebcecb97fd018d0c292f4310a04ac77f10ebf2a4129e2b3b146679d50e374280f2b03ae964fb815840865862405ac12d97148a3610d660f7c35ecb37488b86443060880b560a36a8c815d0e3604b3e3e01d419e927313f797e6ba94522c99acf1040e2b83015ee9c820fe3f8606e5760ef3c4128991677ea16de81ad91758bd9b2688734f65318232da10ded805694f64ac8081afafe112e19e66c29173bc3a798ff66d8d254d8a18d3ff94da06ff7f4131ef97ee0b6527a03dba8eb31bc6772665dc2e370a984b62d35cfdfe033af935e7acfec9fdd3c7e653a086b56a9799659eb0f92b3156c5f2c5d2e9de000abc30985ec00d4b24a3ff0f759c6a5aad9b32f1f9081165c26da8bed1c93a0517f31ff251fe64cff2e0a017e60c5351d5d373a3d63d72b4d6517c0648c84907d42844e776696bf47157490135c22c335c8a30102e6c1aad5201f11cb14948043edbece9db7a1cbb7f852c387519ab2d72a67aa87d9199881e7a350ae80a17050e697f4cbee97eb6b0565a3b2262c45ed16fe918dfcf196046b0e4d9e39a11052b0412564323e40903523e3270b5b67febe0af6f4a6823a9b77c9a32d81d3400446b23d17d814db99e91b242d93804abc91b3de473ef2caf4e5ae3bb35279507b265e7a27357194273f5af0a0986038b68bdff61e02d46319215e3070c0b010658ddfffb2e28f2d0c9e9e3392b43a70d7416f04005756401871e5697bc6aa207896e1c7f7d5ffd4174045b62b0c6ebe36cbafe26fca6a7f35b508e0521909606812827556131551f98c2eb3d73d48cd570714eb6c64016d944f60057b4fc81051755a24198d64c50dff257527286a26aa6e2b3797a7530b6ab9c107da72baa066d1ebc3baf0c742f6114a11823aa35332c65c08e3c3d9f60fb37cc35c41fd100d795c33657501272f4e60041119b376eed2064cdafcb39fdc65e8594ed7afa049e9375d028febd2b3b77a1a6d6f7a9755537765469e8a9bfffa9a3b044890b05859e472749e2d0f15d0d068b9c96af2795d720e01fdf1280f86d28b2e0084e05f2eede9624f222f1694d4d57dc3cec64d9c8a0024ac7150677561c9ecf190d00fec09cf2353e69ad4c26f24acb61168d1846adc6e8d81614a90577c5895f4702ce68aa5534a3234ecc2a0473539b31e3064b61c5f7cc2d2a9497d0526acd46040fa387edd9d42d3a3ee23fb2f15196b8777549e5b77fa7cfad325e0d39f018067a54a4ee5c37f2c1e2c87d928a866b2184e696a95b8876cb599837b5bdc1a60258e9cf90d5fc69c784b4b5906168998485c095fef1684ffd15e1a4251ba5de0448ecfea3d531d2b31756d9a850daf78d93034c45826e13749131273792d9c8067f51e38b1fd778acf77cf9d41ad1ecc0861eab70adea892888b4c02f9746870052688b8db5ba0ddda156ce7391ff3a5589781860ed6510645ad9e2953b1f0f0488a3b644ef20383308e079dc20f5a9868e6774f289f78750a7e74a346af76d01bcf00af32b4fe1ca6c34dc853adf917554dccacde5f0e6b13732816bdf688902a672b5bff189e6683a87d025c305994782163f73ed6bb912ca7ce4742dbd7307253963a198bdf134eb1fdacb9ad49d60a843177cc4c4fe591f9eb81fff0cf207e6d1a2747f52c742a80ac10d6e5fc3a5961faea0d808f78f6f9678b8974bca008c3d3ff542f72413afb15f5852d1b5dfcfb940b16f9892fcb75808c06b659f0294ab6c402f6a829d9db116fde1f204def3f7a73f220dbccdcf07ac091a8ec200b8ec1475caa6073796cae067890974115a9a9b0d197dd1597509984c97e9e905ace3c21a50302e7571bd42a4cf4a8fcd0b5d66843c520bad54c0b310c05e8e035b7a24a58d0a21e434e349f0e981ed36afdaa92c11bd6486394d72ec6bf1e2071e11adcdb0d2d2c764a4fc6e58e2c646707238eb6e3a57c821a7dc806c30cd04a55704bda5c357d2a1bce4a8281a850590a5e38b096597ec7dea25caf9490c06b2685e8df813c9d89eba2b10a47ed7ef0729d017922af1d3402d915c52016006fc69a8106d5a9f7ea0686e5895ca591c9f9e5c4ccac6dbc7b6ff4694e7139503366e61de0e5959738cb6349ff203bbf9578f07859cfb912f542c2f4d3aa18705d383e020d8c4874cb79bb1da95e875cd09834b59a800201531a508620d630d01b116ea9f2f910906c2700043d1585b67f0e91bdf4332b52ba773e2d92cec5a07553e63609509b32b00d6cffcd422fe9a7d0c922fa3b43fee9c3450f24b339000a18ef0c0c6ce48d2c493534443ed8cc31df632fcc1e77f676f9a8151a1df7801ea9141c0d9750f9b6f64b4edb483eea2318caeb5b3a0d7e632d25b2482181a07adecd08933739979ff3c94a6b52b4d889a4a60a303e16b1f0e2a6b7ca15d560687852fe7b5c660dfd3ff5b5aff6adf2a10c385e6626ad71c09e88fa0bb78cb0016aec12caef0d75cd008bc063f230464fd0d033e4331ea3cdd8aa771eb09900243afa34bff4a81ddd64119e8e3fea893e9fd62c748be022dbcf295741d06d801e496b3d5a2ccbeb4297dba5b6b1df1fa2d7c1524f236c0a2a8427cf2322dd8066a1cf84bad2b1c890061e51f752c14ac3c8e98be5eae26f2dd7bb09c23148e04bb17106932a9d6c408b66af50899fa1b10ee4666277aca1e879bdfa50fdfa403a03bc87eee4f39d1b50178363c5545ed311530c9c6e900f4ff7a2165a6cbc0054317ff9b20bd8f4c0522dedb61d4c963301a171e63b8cc8e871aaca2670ca5066b8720edcb357f783c2469e9fe200d5ea26906eedaeef8890bb71b8d1a42de016f697512da7bd03c5f6d37849a72fefb15ef54e4694f68881782415ef1d31c00549525a1c2c0b6152fb14988cca55ffd7bcdbc189faea0680269e902a25ccb043aed2ea1506ce93289b43e229de87f52c6a53b069932c3c3b9f718fd90d3af053f5055635c1bbdf08994a3507cbb8496537b08c72f88a7aa9d473ac513681c0225eee30ec4b5d968477f905006221d2beeeeaa1c41b5bb2b0721b28c2e58c501726a127d9147f0b8a6c002eea8f714a9cf31fade141f68db1b4f4c93ac4a8e07d5a522043b709c5797ebdd2c60e95ed2f9e1a24467b5dab9ed9764f5045d3f06cf74c6521d5f06604a0da1331e0122f917a09ad46ac83c384c7ef7e0d1294504947a785c644fc7454a0e673a75798afacfff899837216e85a7467b1905202704075ee64c38fd5b6507ec8a78a4a06241390d4d294dc5d6e1ca78c132eff6f2078c1022b55510180e310f48f23bd1cfe4e6f17fe25ed556c9330cf62dc8aaaa04f4fd427661c4c3832dd317efcb732f616e6109dd3941acefdf85e6564cce8905910d8694bb074403aad4ea87bc818e148fb28aa4b8d6070fe2e265724872d6007f88527238a0eb68cede39bd783648175a909bfdc2eabfc1c2ea048f0e511402b8e88a978e162f58482faec9720ff3ad152e94deb3586d46335c0598c3dbc7048cb6b109d3a5bf3a984ac21ad791564deb0dcb3e64cd271eb6fb085f73149703772b4f24ac05e85debb7fdff34459aabbc7e9d19d6265775a8285920880cea035ca90aceb66766dff752b4a8d9d7af293c2dcda347376715054a32d81a5d090047fe3018f8f53cc6eed6b3bd1fb146eaffb0ca02b9e1813edb76e62e883c0605cfff7475acdad3cccaa3a4e0cd99ef8e7e642b3cd78e7b06c4083661535c79075caeab0c2b2b2c2d957bcf73c6b132cb325ae638ad4e6a332a9491b69316a4058843efdbf44721cac1f7eaaad64609690e05a771a32c4f14af7e4a932fafaf07ff1e1485bbb9b7ca417aba92a592edc327d1fdcba4a985a87753c48680057b008805ab11180bc93551094a3d88f24b6e0056dfc625add09427391096751c8a0500efee76bc84af30748a1ef67fdec82acdce0f46c39b96cafbfce8a735e05e0655ab4e25a7ee9b79a8b33f0328debc21c20caf8cb879907738de72137618ba016b837e63329faca9054fa0b2012a780407b03092e5898a8cb3063810497bd7060c6dc04f9b1dbe4f826670818838b69f3c70e5cddadbee95d31f527f35c619079ab62ee73fffcb6610d4efe41e1d532e8177a50a78c6c9faff20deb54b905202d546aac2a4afb4557969cc34e95fe24f0c1599f32db971b5baf50e421c72880318382f3be9217b3b97db37fe54a8577214567b69aed658e9d9e55574fa7f750102261f2a2654c580f37666bb61ddb9f13d78867355d0a01b6541d2223b1a1b01554119d3f325e5d92954a6efee24186722366ab95ec36f4f8f950ed6611df604ea18a286707f53f9143b91d291bb41b01ae5ae14f886d2cc7d60b5af2698f500439043a1425fe39c105b55d76845107924d52ada9c1f14c112c0c2b1c1d8f904895b95e275dd07992acc904aff70bcbadc7ac0ff68e0b316ba67af87b6a8e80654df2b4e11a731584db5451e7aa7137954d8c8c3db6d709e5c3e3a5ac66c8b036929697f56b7f83045d044a2a74454b884c3784923f084707f10fbb72ec06400af957b23cb34622c72d63cce0322fbcd68a946818c02ce75ab8e0d07928cf004f6ac2ea389850f7f648f8009128074d92d554c59ed759f9856e2e1107f07a2071e225184e32e1a34bb51ad24c47fee366daadc662b6e0b1773c99757ce5e2c01b6592e60176f4182fb44a229e7d7aac035026b7d583fcca4f1bcd8ef4490fa003d26d449670361adc575cdd8088bedfd006cea1fb39ba0dbb1e72adc2d52a6029860cb4a28d46b48841fc0287c764acc37d9f58802b6b804c83e0af9aca73f01a9060cc5f007614aec229ace5c6a70809f28295c36d8b5657a2a0ca3e5539502f9489b3d22daf2f28c15940c79671f5878e2e1de7997c8e7f5f9ac0354002e033ea622fcb776f7b92e5825f903ea129e7cad7f1573c9ec938c4164e7f10f4c00f973a14c3aa33f6687a811b35aeff0c5fe56356fbb0655f7f2fb342e6e3fc101cdf850ef8fe5eeb3b0d4aa7dc90c4b2f255f5a46f0d94dbb9e3112493ba03401a17ef4243cda11906ac818ad167cf899e34840c00b3ea4bdc05e29a21e34d50524d709ed663aa6ad5e0f780be11df81148765d4fccd1656ce7ba5df306019502e7c5ec734a35b3171093106f6f974c147e30efaa7e279dbb61f807d051e31f01b1e848d3db01b0d2cb2a9549a56a0bf7f3844c624a51aa54df3e66eb7b8984030eef95b8aa8c0c6ed70f1968a0a068268076ec5edbb6d3c725d5477a4980aa01e214e40a718f6b1a60950229fd236c4414f42f7981ed8e881e9c1e755ec275024093049ae61dcd7008f46b019cdeeeb1f1bce029f4b4af79846d5fecb8cf30010e92e238a287646061ac2e82ec9302b168f90badc088df31589d66f6822509014971eae9c5dc385b6b34bd6911a2d26f9cf8200d061efd4c20ad52ccd0635b031dd7aae998cf02026dfd7927dbd1c3c0fd7dbc453a280a362a7e9566609fd90399471df6d34f8f35fc5821fe6e9c520b7f325cac7c1f284bc25462b803c4fc0757b6ec0ec3ebf157d730b0fd413031f340c11f9ff6314f0caf1ef7e6937b15045d0b47f65997d8b507e9602e8e48e977cedfba7a59195b2e798bf79df6f26401b2f1852edbe297cfb788472296ab2298f01f7663dc670c6a9414744c383cc203ef86d637ad373706ad831f4b47d5d9e307b2b024ee4086717cc91f5efe43b7020dd341077f92938ab5594b255c22c7639d408fa650a798ea3cddc11f47b411059eb26cfacb13b3b9e4d9d270f56b723c7431b9cfc7ef7486ea4ff711dd509c054849bd25e4c892192020d7c8f0db0fbdf9a6c1bc1879782783bc4c2fafc93402ea847350d11654303157502dc3ef1986c8c0881c76e519bc9161494e5073ed03ba40208f0289faca34be9ac02eb5240a6424627564fecb6372cb505bcb5ab906c6b8dc0f041bb4e09eec385f450253d3d704acdd17d066f09cc96eca5df45a07718d2280754a4eec87ba7f30f7534cea79d12022f725a51c71e788bafe78df02d60433f10371bbcd0633ec47629d1523961b346bf518f02c0b67e52ec3bd5c000000000000000000000000000000000000000000000000000000004f0e8ed9071e8e6779bd59f084ac5b7b2981f00a424f42b85ac6cce440cfba67f715de5d0047c271bc75fa7eda5b477b99a4010623d5304be0d0a422d6356ae6a8f0841c05532cad156380dc8ca13a8609ac5584d20e40952597be4937fa725937ec22d101c1a1c1831a4a41dc37be6942054c16d7b8352a902055c76fde3f6e13facd2203883611c2717f05300c8955403b2f1c8ca6834654c3941775716c03979b091f068ba0a27e06ebc4c74aa19bc5c02b6996514515abdf5f5cab6836f9a15934d6033ba9a4ff50a54be093453db6f49c02ce1c0ef417a0aa033c8c150ee127a7dd06c00500cdb62cd91a6025086fb0f32eff767c5182c8c11aaf6e9d00d95622cf00c8f16d5ed8944efe4ff866d492777358ad80704628b166d0506a3e37e8b70002280105896dbc827e4b4ab568cd888330d6eb38afe96c08764198c8ee10a8df04adc6e0c89a77e52569de3a4b9c398645097f0a96111d1f6faefd5fe7576af3001b86250f875adaa5f5c8ee0c548c34112b19f11ccf104483be672bf977af6704c9af51ffb83d2dd5ac4d660d65f2bf8a37bc0891f3bb77b77ccb9dbe2e8e2e04674d4237cb690c38143a71b678c63941426afd83d801cd610da0a1a29544070733cb6c9a0fc5d2574d037273c38ddd8e9cfbfc6380a2c27e727d4be2632f6801cf920e2452b49e690013c1ae0b4cac20a10cc870fc2a1eb30ee390e68cfd6701160e73bbc97878ef1f2049e294039de97f495f4fe1a88529451bc6ecf830e5032b20e911e2aac18b76d7e0f8af67156981e7d139b97203f3b17566e54eaaba05eeadeca3d42649fe4dc6b38021435c33c7383a7d68bef65b1e9b4c521919210793db34f9a946872dedd7e418577f8775a518cb5d813cdbb5cbcb06886e8974020134d8b1917a9c76cc777dc8d347e995e3f50e7ad1a644573454bbaffff3ab069497c5d28f23bf103ba473ec453a7b4beff1bcce93745ec12f863f83aaeb900079e92e5353a53d4fcca79a7ecba82261eee13f7151a67328387ae614beec1403aa1d6f4d5b222b3dd61bd14262774cc091bd074bb0c741d6b35077ab0adec503bf63c35d8be8aa080c4639b864856f358854f6e7d9c5ecc49afde7254588c900560d6e0ea8d468a7f893bc2822abb77b0922a618c5fc72e8b2e84bf5e0fe7a07318416c49ef988541cf2841c98c036d33b3e60dbf5b73699ea636eb2122fed0224d563350ed521491f290167ee95dbd2cf609e27dd48f9e05fa5932cc9b907055cf03a5cfe47a3d3e86a566a54a39686ce99d2da930b30063be9bfcca42fab02e78bc138dbdf4e0f7796abad3ea2edbe0984d54b741f05c667ab35123b0977040820040164e973bde45db1c824917f426c0353f77ec53b94162b2349bbc7a700b1ccd647dd0e15f37743274f730ffe2bae4390b74946246ee0c6053e361f7e02459b2b113fecc42ee225dc47b40325a5bcf945d72daa41c5cac3b382877504040c5a70e12ee913872697b9e24625000e29b3a446aed19c7c2739eb1d460b450101fab8ef8a0538871baecd6d05af854373ae5a07461d727ae83e2badd5f6e407cb7c78119b5720a2ad7b5a6f5a4969b740fa0eaa41deda61e03788f62cec99020ab0b7ccaf4d66533b98ea5834fad2a9acd2aa114bb1d4d1330f6a0d90e8e3062f4a51c2511652298987d7c07255f9c12aaf87d91861b1c7908f7bf6c3dc5503cc98a6caad204b5fd524362942eb473ad143a6d5c60423fcd0cf23cc7b75dd02b76b20ea74a8125aad4c4ad92a7ddd5055a3207097fe4d7d675a6aea4b1429017dcd1ddbf5abb3ffc1b332ea73a4a9e8348e2c1e89fff72a2e3ed2edd048c605e74e424c53f8180ebacaaae6e169aacbeaf83c5e22470f9a94cd98a90911e705ebf04b2dd2ff300b15bd477217bd67e9dc1bb6d46374bb99086311402fee9c01788657fa7938620a143e60312c3eae66f8b870ff68546e605f655639a42bf80732d74be3a73f7003482842d5e46dd043e5798551434baf4a987842f76c9309044933d857328efe2b2f2adba2e74e1751382036a45a770533205e5d85f6a5ea021a6aeecdf51608c2cc36bb9b1f0b813badec2e190ea415aa3f956d245f5d4901d52fc5506bf937a72d98e97e5a359a488d65f32492a8a2077e667d9b69e77d02231c6840d9b6e75a3166c6823c31fa9168226433e923842a66aa0434367cdf008e2c1903402adf64d88c5aa80889f822002717e8386f1dbe2b24e0c3c224ad009e568cabf633895e706b7bf4b89e9e74522ac993f962a099369f4ef2b12645031e6ec958cdccd9dfe742ef60a548bfec35a97e10c82588a4d2de90b193d72b0462d700b3fcd3185b9e36905169686f9c0753f048a71f94d15c6bd3e739e09900927210a4be94ef8484d27d5923567ef05470e86258e56898efa72cdc85f49606aaad4236aaeebd9bd8d241d9448a234ba34dd211732554c9592ca3ec259e2101bcb55930b90f23340e88afa255a078a5eacde9a5b92447f65765ff09c5f11004c7afb176acb840ad83a57915769766588775a4a24abbf723662af98f8e19eb0570589a42e74ff3e1951a97d096e2345136624c5f39701b1a7af0e54871b10906ed9b92f755870d74a42fc59885b5b2e4e775011ae735512304d3d0dc1bfa3a017c190f7cea55396084f9b6820943e3c237b1f7b55cd2ad59fa18874a4d5d0c01bf79779d3559e76d4944f9c7d9b07f33ddad223d874f0445e4803e53b9a3c7076ab72c654524ac9ce7d891ffb0f4186ddcb3c602fcc9005fee887303303eb702e7f33ad7c8bb51dc99b6e9575305da4e440d99739ba388cb261ab97d4f74dd06829ee8e01355096da87a29ae424e34df5796caa6ff422f2d20503be75905f202276edef72fc9f0ff86f66bb80e905096cb5461281847451f99bd4daa45e888043e26c5d4379c5384b61c5ce00f765f027408f31360106aae22d2c531ac0c9a046d103a1675ade18656083c4da7dbd9b3bfde4c9446be27f5c4457fab96c979036446f7c1bc2b1614b80baed5805f8b6b19b8eb68397fe5bb0c4d2f705eff4306f3fa8fb0345ef2a8e2e6cc03ead94b437cc558beba2f437be7df05910555240289956132186e57bc0e0ce4d2741a780f5b3afb354b1481feb0c4b852b8d83104f21a641ee9330e246238ea5a0635f0a15576453fd10307c57ce361498dba2d05094a9812804a86974980051fea508a29330e28dffa8342a3bb43ea02fdc7e500531590c8d77c89a4eb983f1b0ae2fb69ae80e06d8e47f02349abba814da7c406cde48d5c12ae21525e8b764579140f0f3f5baadfb0f85229cfad339517da8d032051cc8b6638c2f21271bf986bb5a8fcc7b48f0fb4ffa34c17b38ae774bc7d017a333995db8f9c9cb4c2aa5e8a0bf96307f9401e5ba82615792d49798ce35b011caaa69d705ce39a16fbfd7238bd7c06e0d365ebb1fe8c5657b8a48617f4e5057c3bb2d4db557366fad3ad2bde9084b2fdf9ceac9b4fb69f4dd9a4166de95907597856b699bc4e7e019294565dcadb7b59659282b95315539f5c863e936f30009ac5436f81e786117674dd7726f4a947c5f326b1864d4fed437e41cf3be74f01c633cdc649ee951cb41a73b730d9d36a98bbd8cc732685165042f858051e1c0183ea537f876732f9a03b1348224a469cdde07d458a06499d93d20daaf89c87013a694af0aaffdaa7a09d4f8e546f96dc623a30869f9cb6c6ef9e31a0fde7a007b8d2e037e8ae062737c2b58d78e4dce6e8a34b24def6fda036d8e12078c963073c0c91be1ef56d216b994fd2db6bb85c51c6d29a96dab68f6c15d050a022b40477e2ac615df2b79c595303fcb61a541d594c4600c77d88633b5087a89495e802ee927c95e1b19f138257ba8d27e10eca5811f99f5c9c513213e468e2245881070e0e1085805ee60bed13270bbcf5319d84ed62cb9661a34e29eb758972eacb013626b1f9514fde897196548784ca1af3426bf603d86308031e13b6b6ac1b2107e4446440560c34b145bff6172d05265a6a71b9762e3c5c3971c4c60fcfc3de07c6283e55956a014ba84a1c4c72e51188aad3dfbd1bc09dfbc7e80ce23d2ee801c9987cc64023fac7aaa9666b7eb9f5f0654e97cd8c22fd9506bcc8accabc5404dd8df4391bf0641e09cddb98ae593f593ab870a6616be3f33a4cb3b6f4b7fc02623ff650d768dce222184aea874ffe7213f29f9573a24323cecf4e94df2dde02bde0d59a6af82f0d02b046e6a4b71fba23253af1de2a4105f77cc3c2bf42f7010ced3c44faa40fec17890c6599430f4ab946c1a5c110f3b1592c10d69c2668035a701d4fc08a9ee360c62965f810af1643d166cf2f2bc53f49250469e0dec403193acc46798781f8d3ebedde21bab8619d0da342b1dc2fd52a9782c716fe72048736e9005bbf7ba4179cdbed5e98168130c89297e9ea5113171ad7a53bb8040528356479f5cdba3de4781107e6687d51227783e7b2424f23812b10a689f680010b1c8091ea2d70c28da3f6726edecf5fa80d4aff16c1a164bbfacec0765ddf07c54c645be40962173ea5d3991c0b65a9fec41dd737266ec432fd1e124aef5c049f58ccda0ba6d922ed9d09f404bbf365c9070720988d936ffc9307cb1874f90369bfc7aa90051630c86325dc0e7b0d0b2814df5843a0c0b30124f95499ff670708d295c206d65245ec9556cb7aebe3eb7bec588ce9d0f93b82b421c9de2bd5062adc4e97dc3b616c4cc501c5662d309a3832c332dbc3ec410ac5d75fb963eb0662351672eafb2ba5532ec1eea417a5433806c7ad42e023c9a661eb8f4b02220329446a53ab09519f2c52afb32b6d4ca69720efffdcfc8e38c039410daf4a1506dc8fc18fff6e687d2a59445475b9193a5cbd86b2dc05196809b7b1372beb2f054adf6a5384ac3f44a65b5a7f8adf44b81d27bbd4c9a8ed346e5a182d83f4f70161e04b862106aa1c5efa1250c6447ebc789869fa975e406c1390e7dc61396e038267ddc9f5f87a32af33df1c12e46c3cbb6e811c1c4f6e1416286d9e36cc8a04c38aadd7c799fde404396bcb9f4cdec606dcc5aed6c87118053c0a3a42a2720173dc7f9e2abec79f2508d884d6e463be303cd34dbe6e2636186b7cb646d7fc00046ac2176a6a57e0e875e2ca65a26fb66fcb7c54af569b22a53930f4d5c709023e5bbcd3c3747808e354dac86e75c921e741d4345a1318d3b8f5677fc8b3360404d8e2b0c86e5a1c4a830d19e991a349c71cdc084b17af2320358acaf0d1340170be3da62bc72345ba279a6982df41e5e169de1eb110fecafe49fbfbf826110225f662d7330ebcb368e36b400ccb6376440ef2e02069bf61d6314d6d48bd75037bbf8f3b6567d7ebca149304c23706b9922670273fe9680ed73ab8f4ffa02b044f566c9b2e729461a24fe22bb885a8fa3f8dbabb1fb7ac63d56260f9bac2b803f8dd29e54cbcffd38ad2f5ae48b8dce5f63f74ce4fdc3dd4d6d54a3cbc16e907d9edfefc1802835950ad99b10f185d9053d8b2d6d3cccb41606f1a4d7a335e0513647f47bedd5bf65503e130e941144bc238c14b47b751a0fa64a0a035f5100140214f07c1b545cc9b3d4f2f06f35d6d6cc3a8426d967c9d5cb07174a1648504c106826e06a1c8637e401ee2060969257b9752ef2c917d23681ec137c78b5003f6125977e0c48b1b756bfb1704091df0a6e89617d12111422a57a0a3a4608405217ed18b03ec6bacac553e57295316777cffed2b03153b2f91e88b708ba6b8050f504deb63f7ea9f88ccd090d70b89b5621f9f5e14f7bfa3287b3e1139cfd00020e89ca16f97c04568d12cca17178ab6891b97a0528830237cc52e9c7f6057011f91c9c8a79a8edf504a233d7424630942cbc0b55397f33c7655d83ecddf9e02c687c10002324b63161214a5a37b61e7e4a5bd19c20a142b173698fce12cc0070e119ce5f0b277aacadd1d29d2ce396770a382cb6d2eac69e4243581870c3f07cd9621f878c2fd5cb78efa964e4b15ac984fac1e74a48ff725c30816a66a14020901d72b1b2aeeb9be977b58fe1108eae68e7d9ea32b0d07514a63b0c6eea305552238d23239c74373473d059286ec2450ded1021216ef6402c82dc443ed9e0727af0a32de72eb92fae357bf63800ab452ed0046b9e102c74f5429f8fc2bca04ddc2472cf111e53de6a70f7aefb9bb32d570b56a2ba49e82a735f5b6d65c9d04d405150cbfa4aa11aa59efc06ae898ceba0048af46558dbf79f354c313709900a2f75dcfd59037429fa605cc1780b94bde29a22cac3cf63546fd336410215306b66858827b7d973101b64c4fd095553e69906a170e4b8261780ad031eb3d5b040c82090e8c0aeea35ecdda13235b7800ed0faa1d7c58b99a7ea10713290fa40487e2ab3da042c129571eb76f386590a7cf02052642fc56c1cb8a4ab32e387900ab8fd76036aee118d15ba5b9eaa491ebe43abc205479e265b089a051d3657606ed812b7b5ebae86a87be1d4febeaa103deb892b9e8073248001d9966debdb604c5020ab38684f0d78a8d02440e9d71f56e1946c0fa22b791ea5c9912cf253a054e0ecc319e2b479794b93ab55ad99b7580ed5bc45b12b44ecc7ed7b19899140209760346f9e690ba17c39c82bff1196caebfcbdf7c84f0e3fc90580963be0905baa14c0434187175580dfda9bf2bb61caf9db141bbdd6190937348d31f25890777f30fa7c3f204dd14f438abe57266052d28d0a3e250c5203c6d5083317e7a03ddc7d231817123527a07ac01d3af99faaf337c596839d14bf38669944aa211044fc133a09f79c85367d7bce874a875ce7be7600d26a16d88cbdf2e8671dd7f02b77adfca3716671d24405c6383917188b8ddd1f4ca8aa8504a110559b884ca01bc7121981fee6286a4bd308cd3cf6fc99ea1cb781552e9adee3e1d7f2691110546435ecaa6f876961d083750552857a30b4911faf2b6dc38584d1f1a35f37002165f3507647dd4ecb58aa253cbe4e9391855e8662617cb6f2d2c5427b31fce03b0d611aa2c844d4f26d8647d5847cdddc148c9ee489435d61cb6ea5d1c664f05bd67dcc2529f408d91a8193bf95c27757c97c28286952f72ae51504adda78c0530c02ebac897636eddb62f582adda010949ba0e2b112cb444fd5ededef9f0c04bd4cd83e715f4e912347504934c6503472f86c3d380904f8dbdc94c5bd2bde015592cd6539c355b7fa566def73bff28871f7be404d8d1b9155336d37125a84070ace5f6a682aa11cec5e6dbd6e85735f9578146a34d238105dffc024da057b0790f060dbef0ff857ef59b1ef726a15a820a602dd79754d93394663ce6053df0616e67786f96f88d9b0e8dc500a1fcdaf9bfe56cc67e7ad62399e3dbae75e4807b7a7608543b67b31a97b226d4ee7052a17d9dc8203293e5630ba03ba57e0660567ca5a00e8f56c5ea34b618c124b55673d1cc498a4c567345c571012d92458033abcd8fe72a1ec9e73326d38f1e6450be000bdb3fb8ccb8efd19c2d0c5a97e02a1bcc768854da71a7a836025e1c6885a14c57b4641bfe11eb37712f1b249cd05d6450efc9c19aae0b3b926b4060efa3ebc1535b68a7b4673e5e34e120c3ab501f25ac285b0016ca0b14ab3fe7f2973c9c765703bf8dd70254eb4feda0c6e8c0014ae457f752fa98aa839bc8b13555c6cf50b857502c6f49395c632423f94490452717bcce18a5e8d3de33dc30c945798e827c4ba39d8870af0a31b6b76348507d0042c598e2fceb1c0510a42ba06867f7020f30152f02829b8b809833701ee07d14d8401030b7311df4e61ca44e923af45c4cf22425edb5386d37c05d56f4f07328ea2c0fee627b61dfe4adee051e830811a5dff1182e052e7e821ea41928a04cef1dcdf3e6a2b4c680de2e52bb33f4c806d310498a97ef4c7f25876a9af880582d2d0604388536865e5cce61ed053b9f0943bc88589c1f27e54e9c1a5c1590235513e160618bfe7ae0f3df4fadca9d247987168cc70de093768a4f78cd9ee064b87e53534bdb934f9ccd2bac00560ac90926916f3e92c7b897298cd057f7400bb6ce838a234f50b26d5563887ff08a99ddbd2a1a5aeabbe053b392e178390040f479035c92df80fb67d04ca77e90732931586d4a0fed2289565064dcb90b0023e41249f97e30d710423624135c586095241de8b437176eee752585cd21f710584580285984c7758dc4d118822ce9a3c68d243dd06749e983d0d11ffac46540105ae789bc092f448c300754c3ba39952d024cc8789e595068b26d91650445c07b65a19d10c773334bac8b2db086d4815503dc0937f1ee47a4d84c6284fd3e103f2ccf414efe7092bcee87df84249e71d0e8a66abde9538d7fe9552cc634d310311b141584519299ae7512e84abf3ad097b83dcb9af44976b7c7ea50971bfd6074f40920d8648ed6e9d125f95f72b67e7b76e99dcd920b20631f51c23357c82062575aba169dc31b86bc1b41696452bcec93d0c1e232e7480ccd0c42214fdbc042f256d9a1b045c9a8f74d522f8fbc9b9f7e5229bd64bf3fd682eddd30af7e307005b63dc8d7f8424adf7c566911297315ab335c896c914428fa057eb0df42103cf950391440937e5a61e038b3a62d7914af2cba6bd11102c5e2962efb9991506a63cca62996e2998d4d197b3ca28fc67d5d017a551f2cc77f8fc15f66a7e0707d3836e2232941aab8e18ef2ff05616cc6d908fbc79a1017a02b50ac1a6fd860244af87be8a5a56de9aded221c15fd5c42eeb9ca8f50f23cafccc35b2b4576204c27f885dab3836b4b375945804f1ce9383fac4a62ec5857af802bdf25e0143067b2b828872a43ff1ba4d7d7f4114528d1dfdf81af91d49d1548574f5b313d201d0050c9ffaf03fc8c186d47ca770e6bfd9ef9c67cbd2449a9f203314f284710552bd4364106cce8e1dd9c1d6a21350edd6ba91b0223c136784efa77e9603ef02c3fedf295c58e9b741cf3ff893a0e8425c9855dbf82d533f9e1321f365e687049f6be517b8adee7057a8abf58289d274120e2c0d9d12c71efd5ad50667834b073255a3c40efd8ec6520e06b510b2f58056ab8ea78b8e77f73ad3c0dcebc254030c69dad2a1318dc12c285b044b931e44605c1f507b06d49c8d44a961f4b0ed06ab97992ac8dbf60d41566feb69653725bd3f2cc051513e16f9002550765549021c245adfde90561ddc119c33d06b82f94dd6d11a3cca9f45418d480c654a28048cfcce260c535823e217f950ba5fc025b7440f3486a527f016d164a8ee459c01e8109e3be89b14e8f5a186a0dbf2286e9f9f62067bbfa4b45a6ce567b77b3c04599a3c0e0957b32bbcc98b1b411c96b4ef8d3925ab8b734d6e12aa03d55ae900bd3110c1e5ab676f842d4b6ee54b4a68f18037e45af32d4feb647ee739b5c6044be114b40e9b3e75ebdbe5262a7ed66a1552e87dff6ddf7b9deac729676375012b71648b8701b2869345f9e5713c2dcc37a529bec799bb30ff7bbe5cae1d7e03684437beae678adca4408da441f116b994cf8229f2f56b1b98b4e53c49a0460190658338af8ef69ed28847ae1da693700d76f49918b60159e395c9f9af19d70727faa650932e87bc333b9979273515178fc8044edc8a5d0823fda2c452309c0383bc66b87a70072fcd343025945dcc2517405c5c40505a69d088d1e74966660792977407a60bf6f1b227f8673f7ce27ac3db1f7cdb1a71720da3900e439e7d002462248b1318dd1ff275274636778309634f95a00c1a896d202dd4d5f0bcb4006290ccfe3fcf12dd858042a97b5c9b0e96bf5af41c0b18be768859629fc28902b8eb5915b23137254ab7d00e1e7a4f1c22f316ea974b8423d7454753e72d4002d102761eba9299e0ab62f101f84d8d7811f6ce6dc81681fcc604e7372be3a8056c616e29e1c7a05d84b9630599f5c14736e78b491eb382838d05bdbed08167011ea89f833187233e967c753df0cdd6ca01a87ba6316711080eef0c9c9b49340723c06faabe959746c34f0a11e370f745effcaebefae183f6307301d6e8865f04b1913d735b051d99f11ee7ca23c1f62decfe4cf9afb744aa5272092c7125eb07d809ef7a8346d96af526d8176f97ada10556e0c70bb3816f4ecf71096f397d009f6d64dc68ac22f7b17f6cf6588b38778edfdfcf1cff66a5571b78a400cb730697ca29c0b55e159b173bee7e4b3c9f6eee5b2f47755a595f589960c8f7d8ca0094ceb4e283a08e81526f9fc512bac06601ce2c286c0818d8c3b70a4207b882018bf2cf2ed9458e441b720d200efa5f207f91e208c24534fd4a7b00da1a96eb0461454728fd71654aff398598ab1fc4e27d41e594ba4e6a623fc7c483c097a30322674effe0de8488745696e7e8f501d039e31c15296cb6470f65a3e761271c00b4f2a4a1bcb84873c1d6b2c648901c70be729cbfa65d198da98db6e6a93e4b071ee4742963b5d4f5d48ebc6402f4121b82feee1956b9c46895ecd0c86e31c001a6ed1885ffe649de344b91975cab3bf89ae388e47495aa5fc0821fcab1d64b05752fec9e75da5fdbbdba59836314ae83af4e5b5c38537d694b0471748d0011017ffa8439eccf008c21f4ecb2229818d6c037beea946e21716e7e1dfa0943da0471f1f7abea336c41611275cd573ede9c81e898addf6c63bda0190e7167f9f9060a86d090d21e4b810aebdf63526372b88a70f5bef41128340e56b83587031f062a9902cfc22e0298b42100a12e28dfdc92e154121477e0bee0fbac6e183fa107316b1ed9830afc55313edced12977ee7ef1b4713c089c2fc909ab359b247e106f6dad760052bfa7390f5374f382d7b14689af6e114a9e8809cf5d6f1cbb5a3009dda801cb0791da0ed72c2120f93efa80182f0aee638c0ff2bdad99c6adb2101e5a60c822fd44714a5cf22ed045ad4bc5d5ba98925f19c90ddb63cf9326a5e03108b0fc0fb96d5e2f9441719cd49797ca57d4fb2c0342ed9f0275a8301e1a803907107f9b8a8917454ebcfd16ca96c6a4a3fb767f631243b8f2625c539fc0d07bd21593e082a43ae1b343cf8fdea6b3efa91f02d1929e63f35141c45333e7003b735bbd06cbd12313d9ab3c40ba955687f547093e905abc21c151d07cd4238057dd1456c40d60dbbce49ae8e6c888e46c86e40b36741c322a4cb9ae915ba54044bd15bf9b8c4f5baa4ee44fc77beeaa2e2497889dddf337cc85977d84bf1c305e44a0341b0de04491ebc0886bb15b8b7ac797e474632606c1e70b345561646076bf874a5d9d80e3dd061fdf54bd05f3ccd705f47e067b817c14e8b86c457f806e43b5ab785b7bccf3e2d7bdeb69cf4ba536005c2303b3c4a34534eb777f7cc05bcec8caadeee02c50de89d8b70b1e5acfd109c4d5b26f32030639ef93931ae023c836429e7ff356a69e00937faf563003b1318facdf577098483907b2b5145032b8d378d4414f1f8d267703de3aede1f73618c9b98f6a63aa02dd357faea7a034f489743b24a91edc9b52f5433c3be095adbe6494f7d966d750a0c9546eef2067e0523c8c4817934b2f2bfda91af27c62a364505369c1580d84b271505868807898ae8a4e40ea247bf9c1d4be35d109b7c92d7c440382ff913640fa00efcae07113e7ef8fd4105ebbabc524fbc859baa17d14322ed299d1926645350084876060201609891fc23c4d02c321200a601b4f0866ab89abb56ff17452ae870c117035f0657dc3221cfcad77a1d428d11c6a0d4dfd6552d6347613d0cfe7a66c40e04adadff35c18ec20964bd036fa629b75fb51606ca4642ee9dc90bcaf529632b073b6e15d0be031b9a8a8f626c0c56c9d44969d7ba308262b7a37736c5b868c101e0ac8888f7f44148d80674f2e63c844a8150527a521efe539a5db8b0bbeab903dd2e08a6ce8009231d6969cf1dc64bc1afbb4b5291dfec45e8f476f20522be04241cb34fe0bb7d55eca9bb41bf227ee1e19311635d0f1f19cb7f3d294f741107b715cdd9049bbb81d32b363ac2d4e33a3ebffc794cfbb80040c2b0472748a802477d6fb660d3e05c7efee9bb2e8b571e8cd9c3d1e2128654070331b821fcf20058122dea0c487ce4ca526716ec60244535d3d659dcdaa8dba1040d0b80d43e0571acbb5658de0d912b53e072f8dafb8a8f5eed65cb808b2de00165ed54c29c01406212a9f295dda7c673247dad028bac31bfb556632d9f94fd6c9a0a7053ed061b9dcb7fcb84b68fce2d47fa88eaa04b568587bd0c77c23f7cd6caa601c5f3042fef98f02ff5189bc87d48c555c6e789248305c666d4ddfbae945da1780f3c013b477f1902d528ad56e8ff0f75cb139ebd199546cf6b8c674d8926079ac628045d9e024be939aa3b786ee8ef0ab5913cda073e4eb3d8f7312e76e93267f514019bc7096a47d960744a0786935d2edd46dcb75d7fa386826dc8e5a520a95cf2075310138f72f0a72aacd343c0dec2681c37542650a3f31dff41b533f7acacbf0476565d20dbb72d4590597edb225a3146b67bac73fa830f3db43010d79568d402ec58662328d7674e4b811445c158c9877ebd2261bd42f8f76f3374a4204866070764c962266fc21dc96adf19a3a58fb76e933ad74a67b790645e22b0cd304e0295395b052d709d4fb3a33247ef48f1d7b9a2dad6505ebbcc68a53e27136bb801b29628a6a681775fb12c9bd56a95b26c4a3ba123ba7756c0f285371bb059c806584878cb65caa76c9e4b04f08d77dd36de59845d9d257aadc3af6c16ab244b06953c915d8a112472eb48feab829c0e7c4f27ec5371f3eed27a906c656f994500883d31b71c5ae1c3ec2c731cabb9f9b90341eaeaa052a1f00ba7e38535708b053284754b8cbb16867246bb8922e1f2999a5ec18b4a9f7989266738519a491c03a34d6b2de924c3df7aa907e71b9e80ac12eed5cc1d5e00c5cc60bddb07e16a00d2a4fd6e1e08d86287c5b6e36b865d7e9793ebb8a4a0ddb030f5a987acbff505d2c4bb48de834a825bd467d501e1d71474a865c66e7d073dd73ab20510db35052a841c77521a3c8b1a6c6b9a4e19a156bc746f3679532ee58567a0b9b593db01ed0e254681d4215b5657bb73f3417158f11d0ac3eee01712c1a45bfaf0d776072935ce59678d21e97c251aa637931de7fdcc5ab2ed4b771a994066491e6d7004844a3502eff4c876892e6984dcb72eccc9aa7178621f4a0d804f2699bb896b03617bb41192823d289fda98f69611ce0b1adb9c32c7025a50df5d7cb9701dd90233d2870f6f929d3571924b2690cae5e6accbd5e52381a21bd36214a6d766f804b8209a4b330f7956fbbe484fb6fe7aa383054de61bd44eb41a1297b04fb49b01fb48628aa25eb84d64ce4b8e0ae365f123db076c7c94818d392320a169f858031de61557ce965a3c306a5f4950190411324ba7e2024510209f50f5ba32775a00d197232cca3fd09abc8f6422a366a5f61d7697c94c9429794c5e9460ec32500022f3860d19330ab669f6152a2f7e161f3fb33f153355a8c6a504477c157a9304b45b874d7f2e4b3aad18f0382974e838ef507511fa7939db4197a3527074b70584f99f26f99a7efcbd56db4286e67f921ee8a9c6bd812834e6e681601f352d068c424ce132c79b8fda91671fdea950518037bc9f1e22dcb976cf3b7afa23c903e84b931fae2e9fa5c2acda4d50bdb93a78c481cb2337a0faa428a574475e3503efc7d9d4eaae8fffd92491230b74568e881deb9cad54e31963f0886b40018f07a715530906e67675c45732bca2cd413bcda381c28f81d906a7a8abb2ab0d78044587ed8177268e0178ecd7c12eb048379984844442ef8dd48fed63a772a187038a85055adebae631cececcdf17cd1efeaba753c85e75061da96b66963ad51b00c29b2e28c223db2470ac85b6a6720c87f5b9f7ee89d63b1754fff744c081f400d22561081a1685f38ec4b32b0a02e20f9503cdf1da43eb649dbf76915aafbb032798a158bd7690c012be958ca33130db59ccf5629fe76c1a28d4be437d6dfb02fe913d3f308f0de61647757876a52e699d9c6753c33304b7dfaf345e71bb59061a41c7635e5d46abe79ffd64ef22b741fab385f92eb794ab52bef3f26e9efa051f481f446d83193109bed6bba111e9be88391a6bf0d6e2c7d0934a6bd231e600637eedc919440737000c1617d199bedd099f465f3251f8ae4b8f121f1b451f047ff2d938d1eddf5d6780c17fd6b859c1f9b939ec0623718419240882980ea305a7fb194cd3c70df4d67af07d9f748a585a0a0b3210cc44a2b3c4f57948940e056f60596bbd4cd0dff81cefcf6d00a68feb8ec126d12021ab36355fce94a90d07208c001bab262b7e5b65e88690c4873c3384814a90b1e01a68d50e354782a1040377ffdc30761eced1421659d3f2a6ddad8308cd10db3d0e058f6dedb6b3f6045bd766a4e4da89986c47ef545fbac0bd68ab618e563ad9bc1bb0ac7bfab5a906a944296ea742ac0e8bbbe74d6a481bb2ab4074ea0d6a43ab6842e7a6c6cdd7042ec13211cd2d8ee23487abe7132cf3ba616df255239570e216bd42416a07530596bde8824f484b06de645dbc33503b23b4aa34f070a35a30d093924666a93606efdc198012d6c3be05a0ce57b21f38b141b4330757ce951b732de7ddbcc1f105045bf4499b2051c5bde8c00d825ee3335fc9d44f0fb52f59ee07e96412fb3d0033f151248cbf99e82a98bb318667d8eb8187ac774ae02a5d1b84c38dfdd4d901df46ba1f131b4dda72e7e12e2c117441ed9579bcf8f1a69caf1b423db965bd020e3697a12273cc8099520e8215b9a9a66ca53765c851a537e064cb3cd8d5b603dfdacb9a6e120d4d2a23d224519bd895a1e6ab6c410ac7efc1e6f4c5523d4f016b74a74e32c885e881ec4ccbbc65958faf02b95ba31df5a5acd2cb81b007d6029ba149b82f61d99a2449d79a9ea649e1c7d4c5c52d423acbcb8f7bfdbfcbf907b82d446859cb7d2b646dafa7d9060c1053bcd90bb06dac3be5eda1a3ad57f50745147dd4b41da43a5be48d060fe35bd755e38e8a0be286dbd0d346c286909200454b9131c07140dc7d181845a3925ce6b2ba4fe265c51bc18a24b52da6255b05a058cb962b5fcf5b7a8f844cc2748c42fa7d066063fff15aecd212e9bcc58b009f5886591dfdb5d228b0ab419ac0d24ae4b2f99e135ada9cb9e29bb99d522d0155a4da90416718db13c6d8ba5514189144d47a39a263b9f52bd1cb605f7dcb0211104553c63d5cbbe55ca12746256284d92ec61cba0a09e7b26d4405761a2e071cd6c91611cb6bf014f8b3194b8f905564072121f5f55383d878abffe174f20077264fadf661fc58f8615bcb572b950d6356ac44e170f83b46aaa72ac8324a0768326431ac08c0d33d901f86fafaceee1862652337f878f37fdafe72c69b97061c6eb95dc7d2a92f46f85f43afb4e0eb7b2f0a5072b48dc8f65186497f9e0b02b7b0c818f17ef1dbefda953012a2eb7738ebd56c5398d93b97f8920fcf4be2024e689519f34be941f286f8130386b76377cb8f2ed61c301009ebcaad871b4702fafa3b3ff211fa56d8092dbe2335e733648e1e8c75b76f9b99dee5d57c9cec04e6ecd495b5fca51c1fc43e97fa5850f7390bff1e087c280012dd7fb81ae5d60704e1ba79af4aaa64f2d856ef034e3a6ace7f8d6a13fce33c3afcbca36499d0054ebc40eab1aa545e5ccf91bf1aa930e1ba2153b2d5c50efe981316ed7c169f05196c0cd49e505a9dabededee03641133d67f67e8f2633c2faf9b0980c4d0f9038cd1db688e36ca8fcb3b86ea686432195984099f527472ac2f5c9b5bc1771a0411fb1cf098d31a9baf3f9b6871ba5885860cb641fab4ea9c87036918e6d398018437216f2d5b22b1783ef9b59ca62fc995b6c6d3868a6fbdaa3933eaa0dd3e019033ef2511dc885a83c6f0c52619f732930c18212997241770a7bc86fa9a11041d1309ebbe6f053ea70004298322027b5019301db5b306c09182d9ef1f1f8602ad5d90fe3e4f94c2d12c4e4b9fea612a84cf8993a57125910f92f3c0fb98cc02716c072e86dc47d52247f222d28808cfef39fcf4634c09408175a2679ce9ac04d5b5d72bdeacd1392d95b163ab558b6bc7479a7fee7753c879a8724e82012a01184de175406cd9859bdecf5e4939db23c64702016e7265f911fa677a127570015ffde23aa935555e6bc1844ab4a6e95c9e64538b37b90f4a48dd9f6abc2b4400740b93af0cb4a47aae64a72c6afe61e73b8899f45e7388be3450c4e30f708b040c6c260ed65af4ae8a2c8972047c153012feef9e72e7d6587cd853cfa7899101f29dddfb4b19b83b6763f6b81b7dfa983688f685f2517114471ac14903ba6006b53f9cbb6aae978f6caf54f537f86b58b5b99c325dbc444bb0f8534c033f6a05e12aa2b37e26c1090655964d8139dad8e433f79c0a2a9f86ef6efcd437329401072b831adeb71c4bd93fe2bf173ed9d31f840b6444fb1a7ead745ea2a46d5205580448cb256190d86aad60e3609816f992b5cd5d97f568f21d6f7ee53bffd300f9b5f0fe6a7cc452bdfda3b80b047919b4e85f86bad8723f4cb0bac498ad2905e606b1b26b2ce666e99e7af99e286ab29a56f6159f4799441a9c2e88aba92d0490a20e622d7feed1feb253cad5e5b6a97aadab5b1bb074202405d48c64b49400063f7c8a4cd566b89d40a72ff100079c1ce9ede3b2c8abf00e9a7e7b3f142404026302d307702c153dcabfbba8c8825d45dd07ab37cb2084d445ebacccefe404c8435d8ce2cbdc8e9cd3b93b8dc8f8b574e3b19343552c7ce1fe3a2baa954d00e511cdb41ae562ed7b4851f20a9f56fe5898d0b70a6129facb35d51f2fb3ed06c6029f7642763da9fb86e005ddf9bad4e683d56613e110b4172a8b94287110055fae970142d7e706f9db5cb895aa58a0f80f8e7ebf8950ffcea30f0d3c6692018ccb38b6f16df508c6835a2077707b201847feb761d85b4858ef8e569f777102a80ab1b33f6617692c49bc6334be5ff148b2b519d55c27e7e62af88f8da2ea0167e0eff239b0b2ea1c7a87e331f3551b189059a0e4936e16906f6293bf89390365155116808ae815f1496867ecfbcafdba742edbd735395c27cfebef37b1cd0077601782c4abb8240f4e1a1f5d454ce7b8410f6e24ae9c4904746dd5ffb9ac05798acf2e44a3362fa109f1c6c2bc7abe5b3593c879279a892d77317e28b51d06cdb3deb6b200c08b85f37e0d9dca4f5f95b92b88c05984f1e680fd70bee33303bf7e71b516a4b3184fd703f01d4e78b9e7f4000974aebd3b6fdcf621645d1102dd0b8fb3d65fd4f7a237b4c162a864332d18399d7b4b958088941acbcdc68a045fb1daf16e3fea3086fbcd3cf318b1cd839d7f7fb3809dc6765bd0c1c452b3045c238c9a036dcc8899e7f2acb9896d37fdbfb6bfe83ac3403df3b3ca08e5470491c2d66797aa503809fdb3c22712ec0ff0096e6619eb927abf8642c8e256ca0259627aaf0c908cd4d552dc95ef6aa31dc9208295ec769a9498975afa5ebb3b067493d0e29f35ba5ae8d3dced531d2c49c0968256e1e8d7aca9325d73a3798002ca6ae07f14864b8a4f9668e71590387b8049e330d9cd877add91519a566f2e06b595da6c5d92b68df9f8e86d0a24080b5ff4bf2f889cb5e9d307bb4d2825b1074686f6df7daf221bc44e7a30b8a3bb7cee7af21cc9dce34f717c5c37ff68fc010ae13007e505c55cdbe53fa8aca0c4e4ed17f06d0d7166db5d9c906af26ea70315a7bfdba21527c98cb3b2fdae04e6c3dd72a122871324133a865586a802a80424797f365fa05e70e24c69df07158098fd7aa06874563107100404ae54c2d9045114abcd1ab14231da5dc92d366cd3095acb93968535fb932dce76a7201f0107b1932aace3cc5708c12deac631311e43933a1896c214ca2d7489d683dfdae607ce4b6d82068a3e64048fdda30b70d24d9a4639ba1d889c3de179a91ddb5825017f4652e7c74d4042b8fa7381368990855b9069d78a029dae4894f3696e779a079e62d156d7c25f0b6775cf5f8b1a7d0c06d1d91aa0332ce53a2f1e827ce17a00c732aa577425bb40b95a73e7beaf28b7939f09d0816c89c05e710e27e263a4032099de35a3507f4517b63fc783182b7aae7e6f0ad6dd3e1fae2cc09fe475e2076c06b93ca097b45fedf33cddc309a1d88f4bfe1d207faf9158d5837abbec40045428b4ea5d46ece38d2439a95283728d7b568ac01af1b8f7ae5cab5670111802161f4fbd2aaefb8d0592c5eb60c901f196a985ef07f971d9a853409d243902008ee1af71db29cc16e110866485e712c4abeacefaa6aa1348774dcf5848b01c009bc565441d9b07dd93b76ee212b8b593ab432eced9c0b01566874d93d0579101df0160a019c59551e782c89f84bc872e2f14759ce221ee0e75c8b21714888300f67850caf3f810c6d38814806d68c9a310e7830d038c8b00474404cc1396be04e7b5fbe5c36f79dc5e3dace122d16634b0fb2d314acc7e65716119719148c203a4e593e723ef97d81c55488acdbe2b7ae49c30a61eabbe726b938dc65b7e940221876f36f24823dbb994c8f5e2dee60626ab8c593c7b4a0fd7f2e2e682265407ee9e2dae3325c059936cad376a8838bbe15b568608b8c6a270f1fee173991504576996ba897c0614454f9793c609490efecd12b2720eb9638fb2c09314a3bf06062f336f9b5e7251f9361e699b3fdd11e524791e4ab79842a43f00eaed1c67066cb333d0dcc16bc6a7dad7ca35044356482b7db3954ef6e4361b2fcd38f90802e2944da40d8e932c54428c495c048a0532c1fc25407708295e096656b37eca04be8040fdf46d140c713e4f0f021661a1fa44f93b9968b372dec08b3abc03d401097bff515dae92fa7282e6df8273795adfd84f3b76644eec6d481e26f6c7f405ed0ad56f9a386e63f7ba96e3abd3084dd92fa8d5000ff5555ab510ea2cc5ae0442b69b9f50d2c1ebce658254e1be1799fe9ff7365f090f7544c4ad8133c3ad041b6e16e7c1298934d50c51eab30662cb83837776257a36ee2992bb73138bb80553a86a4bd6316afa56ef2e1d2c8493327d890bb65291d977b4878eba362fd303c591b60e44cc63be431d6db8e9af86939e772b4ffe9223bf130476818626a100b24b777fa6b2abda830adea0baef75f577a7a151286b47d486360317852558026f931aae9b68e1908b7415c8836901061632b403683d2bf17d7b3ebec9becd01b76681469cc9aa4c271fb17d88296d9ee26ba373f08cb51c150727aa69014801a0f3624e8f3e77a131af0600911b541d3a538f0d03bc49e9bea5a385c51e2701b389a05444050ac51c3081c64ea1c06b3984eb00e826a8e9cbb6336cad817201d00f88de77d84b8008a5b3acc92b8f24c2b75225e3423f8182fef274dfb0cd022f43de3b9ec09c06ed26a4564192a1cc51cfd9d06f990143a403e1db77f4360304f7f1b70cce14afb15693a79be28bea72aa2864087578e5bc400664981fed0018c75e4fe62072560d1b14a277914451485bf3d5016fbc14a3c700de2a311201610d88979df7750884c604b0ae655acf131161d3dd3bed4dd53216e1ec106a00c54cdbdcaa652919564f159b9db0adc5b1a23b0a58d275112eb95d51df3b6a06254642f00f8116081f70e83c2f39a25a48eec71d8da9f2a906a5ec5a2b7607032f6ba93e33fda5ce122a9af2f138c2b49d605511e45feee9a82a434fe49af807838080ea300b209bdbcc98a0538901fa51d5d9163b44811e359b967ac27ea5071ac2aba2c44bd811ae8a2e5d6616babac81969c11dc0f998268680e564d35d0613c33420748a1d01e4b872862ecb38317e431da100150113bfc11a245ac8b3074c38c710fa1a7b2cb6f27519817ca9a3205705f553979e7f85aee7ec6c22f800f6b1c872e3adffbb127c9346cb84e4411d5a2bd07f28f0fdeffe7ceb9b73100157398e219f62ea6ae0a0c3eabaf45e0fec2cb483f88615a8cd6e6f016755eb04e14980b2fd45bba4c17d16fbf95bf159bb62f3da71339cb05fa927149df881013ca15942d5f9c532ff492d5ca17b585a07259f2c547102aabed7ce142f480402a711e299f75f29ed89194e4b1bcf9b8b0b11c6170dcfdfc169dc65ee4d857603718b290b9773cf1a8a23ac6682cd86c5f22f9df071d65b9bed7e9c9d8370440711947ab059ae79f20ad8ac3370cc24cea163439c62d44db0ed3ed69a6d9db4042ad7ac72346ae13da61e977d893f1965fd55752ccdde26532654a7e59b8ede02198db31de1c7751bc6057575acce4b27db3a12d4cd753658233adfe9279ee1044001956298fc292262e0cd3da64e24241f3d46f2221363193e3f624c98424b00ca1d1dcab1d3a6e2b903b78f7df6c6ebf1d3dae22bf9df6d87b68808705f3b030de7181da52bbe8ce9ac8d2b4ead3498724a74bab917a6c574cc2a6da335c20174583523e172f47c86e5e8415bac1bd9ea7f12f15471e7a0600cff7e62498b00c04e4ea4ac3c64a00de7823932817c33fe15583ffaaad8d440a580b34f842a0143644e8ae4a76a57c00be3745fff01709c21fdd33c3114d65ca239ea5b36ed07276d37835d73fb4ccfc438d38a4dac150aba56a16eef4b8e70e010148cb34e00cb5be962fa573ca2fed9531b4e76356ed59d90f4abd0863a32c749a1230cba02dd02d6d7deac2a5795053b1677c383a0006a9920f6225e0bb24699a41a9bfa027c5b9752a003e0a206ac49017c9f7af82aa94bbdf9e42e63c0a7503177cddb0574c5867b15f327ed01160779e2cbd031f4b63383004f449ce3c636c41fe6bd04bd1348ef74a960b8e38590a59f7f6d1c10af745d5e68dafb60f0f2dc984c45047a5cca551ca6d7831cc1a65cb8f7c4ea8004c3c36e8098be6ea15da1cd01ba06b510510f816650fb58d67cd86553494395020edf43bc535497152fbc138e480142797f368838d43acc7259f7f80c624d9e77b3a44f538c9bca8c17352e1c7a03ad1d5a74f8d5c0d4bcdc08d6a619243141a2431fa873d0accb48dd3e54fbeb04c25976fb979e3737d977df8066fbc883910afade32cf3cb7ad9e4fccd2a40e0546d6e49fdd023231a2a21bb96e69a0a85c00957b44e19522594be4b3966a3502aedc23a5989cfcc61c5588c5998a3db7ab61ab122ed49ee9b3a33da0de48020401bc257a54a825fb2d25197c5e2ed8b748918b078b2a223b92897eb2cc0b65052fd115fb58788d231e2864956bd740a1ca3ddc1dfaac03aa15d29d5d722b5603ea4fed90592184b0c345fe16b73ea05c5a1ac916db4f6c383d323cf465d41800d763b554bf8c82cda13f723a3c444638e943afc968804ae4ab3b8644a0d3660237639298a7b9b61f13435c6a10aaea67540b4143fee4cdca5815250a4f3acb07be2e3cefcc8dcdf879e58f4db63bdb59b50ebae315a5c329d34aafd1fd20360663ad17059a8ffae0a1f61af7e2370910c9202d5e112d389fd3c26407782e0f01f09e935944e3dd5aec3564740ce94797502d76f3b60ab1818ab3e341222d57042a4962eff98e2a054bac436e219c45344cb4d48de0f80b428b8613d8ef8dc301d26beaf80fceb694bb12e5f4494785c0c0f9e7679a4d34f06532fcdde80e1f036310d4356bf0427c73f21d5824fbfcd144a65c5028da18418f7e62787eb11b049ade9bc6f55fa5c7975b1aeffe78664d0d0657c9cb15489c9dca816e17860600a925755cee121cb0e71bc140d0a8a44afe1b6cc35974d7bc0d3475462eb14804f617bcbd7ddf77488efa3cc3f92bf339a9f20749217739c5d47d222161089d03908752a636fb4c420f1ce43c6e6c373a5b47d14324001dd6e3fb6643c75d8d07ac404d217d87e4cc85339bbbcf8a45eab36643ade76069ff86bb56b2605b430524b80121d526c0de43ffb41d1f715bdfc1238f80d8018f7a4f77f7e1a1f2ad03573a39362061e9911002c91b3c038064e449d4627ce3038625ce49eb64fe3b04449a5a65ba07a81beeee5cdfe192ba698ff98d0a4f6f383897781dfa36ac4f0278a1624a16e189528a9bb51c1a8b9f9d8def87a5d5012f42e13c0b35db15320037f31dff50a8fbf1e7b1e925ed371c13517b34c350c9788ba5eb5976bdead001d8275bc4b1175b161a44cb4dc40aeeac53bb36c39c2b5fa62538e3f03436e6067a47b379467a295e029bce8bc9c767b79a3e86d0c7b1ffeb8d99cefc98ab500553e1aef1cae6e8614b05a5a490ab89af6faf3e00cef1a352fd5da8f0fb8ab0002646afd5827f89941b15dd7610e1302f5007e9d0b30bd5b0c0ea174ba649c6060ee51e04d74ee274e9de46f88c3211d8eaa4c2943467d6ffc2ac7273e0210c009c2d96c57bab6f945a73639d24eab2b39b25780350f0a1111da20984775964015e959328ee41998a06d8873ae3ce994679fa40198223f4349cda7b34489bc80043386383822db1b2990521bbe10e205e398bab0972a419ef56dba44eae2f170737b0589c8f6f9e2147d3217d34a56b7c833cad296fae61c716b4e3876c679903d5f426f929e83f70671abf5ca181855efe9150c95df3beebe5366130831d04067e3112ecd28be81800c00a9c1b6ee130a95eaed947d6ea9a37025dfca6376d0000ba256fff27749fbd1916dd4ef3110ef5fa351ea8bc1b91c099b6a550dc1701cbde48592189e5b898dfec852299dad9ba136e21d9bb9cb6e00c23b5e1b47e0558b29c810e20a7937a7f6a5d4b5e426dfaff647ebc8033fb87eb3eaf26ffa3017d152c3a5d7a3e84bbedfa4c009d7c8d948f82000aec2051b242bd333caf0402b644df51a8d047f3bee93cfd762faab5ad3b510f571370db064639e0399333063b172a59efc94a85d69b580805b4f48a030609fc4f65edb739b79180b3537402f4eb9ae7a218da25ee7e4a84bca63ba8ac709156f80d8e6a719806fe506d2906923cb14fc240c9dd620dc18fedad0d9d8ab0dbf2caddd02be8557b611238450404386b8ed5fb66f2c81a77547710ffee66663ecbdadac44141a1a4ee4d3ee504169ae44a8ae28fc940246edf53202d05434d9c26b265a4d1460ed46c0f1cec07e81870e2de663483459372a0e743f6ea94525ac864991f05f7e07e8bb983c9021e8cda96623f2c2efc3f81731fd1a49b0fa3556ea2195594ded06b02e08540001e553473ae3c9202bda279890890bc26f75735671e220413df9ebbb99e9da304575c9c4b2edc71bf5387d29b2230e71d6f7cad719bff900611b08525a6004304cfa62990c4ca1eae2fbee9ddd12020e1353bfa170f661e2ba9df790e252bc7061c76430f1949ab6c1cc64ce56b03a65d7ae1eb1888f5b29f9ac8adb008e86d072e07dd906562d23ca045a30ad3e6bb9af25a7743861e620f1f0bb4b5ca88f9001df8b7f1f0067c4f5b772a3d795f13ef586e8270873674800866b5d765bfd604ef10c6c9b1ae267c781e99e89b157a9e6803079e3752d5bb34735cb4c6f0a007e68453eb130d0543028a5c976e359e3833eea2fff575275335682856d2fb9005c8aeaf46fbb35545ed90ea6ae4cdb3e97e01235197b027cead1299f952f04f020c874e0e0e4b47af3ee0fec4addc22b8c1f065430b050cd6c9c2047b8e10ae01b026a60e3325605cb3a2a4786b25aa4e342abd2530f650836062369489ac1c07dbd58b241124a8f25f4592164fcca9dc831327e8ceb23dd4f604219e235823017eaf24c129cfa2dcf2483cc03a401f97ec978a202dedf3abe293ef93cac17e0142ab609cddae8563923f4975fd5f65042ecd326cdb7230e9cbcae58f00f0220065b89ce6e328e87500b362c7b9b7173eada2ffa6fd5dce95b5f55af1986e0305f58a48456e1cf015df5d54096466ba300cea45315ce349b70b64b1add463cb077f313ab55e72957ef3c041430568c93fc8a934ae29b7f2260edf64404301f106acfab49fb56c908a819055a00cb87cfc5b1d5eb98a5b7f78b7e7fb838efe5a019ba2a87df14ab3a077cdb001ec3ccb5646676dd5d864934b7c880dc9f2364f04da39feaf7b9bb905206a15ecff82ed0cb3f4064b482f275617733cfc4154860150b3a5eab32aba6008394d2a631e09ad93b3bccdabb1c3ca5db1081b8fe7ba0522205895d72c5a9fcf9739d309e0d630154ac7706651da4c9fd487c831719c06f89886a736b708b73781ee0f61f98769cdfec3d6fb50cd39f88fa8fb2e5ab70580d3bbc243b78d11bdd4c7c83573320219c1f3cb7e68bd036e819db2ade1bd068c4af2e68a2214fe1c1cbc38b027e893c54e4ae7a62cce957d6ea98975aa26000b0b26dd40b810799b3c97f1d97b57fa4874b60e4c939c5bed08946e57515b002f71628114b93ec56406243ed6950ebcd5621d7fac618f69f46fbba225128700da4c6c46ac22cf71ec6734b402d60dfe7222aeb723dfc3433d1ee5209e3dc4062de9be8f9c6e1068459d35b05962fb8cf813644f06baae24c8d8909734e59e01b50b35fab151bd41b733a3f7300096be71ddeeb71a5702270bda492253c7e6023f2d3505d8e5f6368d494c942ceb9a5d9909ba9acdc746d9a23ec8233e4a0c06bb10aa3290f98b6d0a7728f87289e6f58eb07d168f4acc53ed774fa2439af407676138c9d6ef7837925e14614cfaf7768d60538e9468344b4bb803ac99db3c0473f427f3559b339037efbfd7307e21708d5bc175e7870d85760c952736174804a65afb192ef85ab4eceba87c337b3590a146a08a205a934ec3bcb251bbfe5e00b67dbb15421ccb68834942af8555419817c97562aa6a28d88e6a9cfe1ae27b03db5119ee9d336136d5b85e796391c4205d51915bba3058ff3201d261d9160507eacc5755d6ecbd7eab17956e5b7c42313610be2e7c626bfd6609a158b8ea3602990b0a2523ef0060036105c8b120b62d609d73cc7726c860ec8c882ac28e2e0558ca1eb976b9c29f93fcc5d5e5d6fc83ecfdf2dac33b73f29201dc5a3a8d7e05aea1a246a0769dc917f8cf441cce59b904cacfce2b5eb36e9c327e94540e6e006397d599fd44667c66cc04a1e242007ff17684ce97841960bd9d42744372e102e5c1eca489406442a71640fcb6d4f42dcbe842aafc17547085f6dbbd1b731d05a9e913cadc40dae533ba825f56cd6578ea6dee31afd6e0045823d4f96f7ec103386d06ae13ed4fb69ff929d05eb7ccf4b22182edd80833e65efb948ae62fbb00362246e9a49504c53cdcdd82ffeff22118394790b12701859edb86997fada2055a3946f298b3b150509d83906a9c5b51989dd0a6573f2609a1fc4248411900069d6244c00c45ba12bcb211127b899d98c2be6dd0eadd95d09e3c7fc644267a044493e93650631ff8a1222b0161eed9582748313c81a01aa7ec0f806ed38284070831229912f77d88e4c1511e3a1413ff978b5d46636f685e76b0d119985c4f008cebe0bcc66bf0ed97641f0ed4451115df472c9aca01fa06725e439868228506d1d6c1ff011252ee9e109ea3f08731d0d225556f7456ac72cc69fc7f69006002b205f830e6776a8ef14adeb57100636b0608676a3821e0458f728bee4d963c07914e1c47f6aa533904c12475f03c720c4cd041a10a25a091cb76415e7afdc706f7b159cc893bdaaf5814ab13228368ce8c3095b3725ccd35dcfef8f4b375e304c7954617bbcf951b2c6b525643d782ca1842dc7f98b142df4efd7bb5ba3bae06ac21a33cb9518cd3b0a565ad4c8116aff9180e3d6bd0cb77164dcdc53f3cb005408d6e9dad21828f34c17f7bab12a6280554823629d610b2de7de38f900f2306f4e5a09fa74cd16bdeeb0e6cd1053a5e6845d2d798dcabb514d2e317764f850537793bfb9970f4b7db5628484d944def73ec7a6936051421e134cd685b28df0772ead2a6224cad113eb747f74bbcd09ab4b1a8483b70738cecb3a18edf1a0e0104298c8ce73818725ef8ba194e7e1c1f84ad54ac748485a70244a7c894819005bc0657f716d71e2afcf6a2e4a778f5ff7ae509cf38f7a0cb8f1636977a08a5002911ea94a87d6d91b25ccf4a30a2275a420ab1490c6b8b86a29597fd354e750493d89ea3ca3639ae6de060309f73f73d2211b51c520ba869c368098864312c0194ad3888bc4ee7b8d54661646eb95545b01ecb7d6d1ddf526da69c167ef0510268ef4457917e975a74dd89f13feb3ad3562dd52af81b7d5d2898db5df1857b06f9abce733e9d71a6a2f784fed4f6de23b7b3d0ccb519d3572d5d056b32461d043579db2ef519fa7f9c054482b1404a53af969284fadb72f2ecd655144eab9a00a6d0071c3a3f68c87e316ad4e3c302ddebb5b9d8c8ea10690bb55790a824de07612570385bd052cde6f6e9f55284a7692ab240643ef1dcce746f3052955581023e887ce60569b97574e768dff1fe634cbfd45fd9f709cd9cb109f7761e411c05607d668312dbd3c3a59f89c018bbbcea5cb48eb7dc422f9ba9d2b115edaac005e7c857662f87c4fcb8eed06ad4a24bc5b83f5a82f03bf88a773d87af5e6bb00312f1a3c796b7511f19a860af4a67440a9109c3c1fff959df82ba0deee12e5705b0c9ac6d7df2af2c14421b109ae472adf8d6b8e2ade3372adb54827222a1e107c3b5648f3c678db22b0c315dee0f112c4a574f85b89848a3b875bc60ede07b01b0a24ba1242b67658103ec4e9ee7e7d09f6775e5b2e5f3498a161d2756f4f500b9a1e971511fbdf1b572e0ccdbd82efd292d6bd282a62bf19657d5702f310203e4b1e3da5a083febc81bbe249bf47353161b7b6d99a9d63e376f78e13bc4f40430ca36d0a3b33e0c8fd31592dc18bf53e99e22570b95a3c0eb3f848e8299df033590c6a39c745df0ed286d5b0b14370fabb513278bcfe71e1e286c4fd567e706afe4be63233e16e3cecb0ae5ec784f6a357895fae52b7a5140bab60536c74e02d3bb679599947bd73118ab94fecc00aed89833cbb3697d97a058030da5257101e9b84d351ca31e6c1dba70298a7a86f85c4f8ff228782bf8a1163efd70b8c60569f48d1ef9ebd255188bd77914dd4c348be2f7303cfa8c5b42668102526dcd0045375ad2a6ae7e73c07a9f1ac782914c31d364da212ab83fe2a2544fc25e1a027a9f1b89ce2b8a0fa2f3141510b713e0084b7169e66bd9373495e3c9e5955f03353cf170ab5de50cc8d10341a4b5293a2b037359e561a8bd2ee0c68044d2b0051dd8f33c4ebe88c177727fcb7e47ceca464bd792a416d0f163ee0304af267900876ebd7b3f15fd4bdda1fb695050de65877e782d75e7d75cdd89779028e67702b75db7494dce4f3eee98c4dbc9ce22240279d241def0b4352a3a5dda48b962046be25c10fa3c591e44fd6b6b0f83ddd7ccc2ec607c810a6de4e15c2cdd76d4075c17628358e5bb8d6fdf1654861436664b3b33a6f2384f31d5c738f0fff83200de9f90019e60ebd1c1e1feca667956d1e27e753e3fd29be5c6a00d2b1fc6d80125378dab1cc3a0c9971bc71f8c680fe8aeb005eb98602895a305b1fbfd53a301eb9c0cda3cec7b79d81d6659e71e501863db088e35e5552381883d037dc8e1042ebac6eaf82f813434c9026a25d86965390c0b88c64d9656d1a7235628ad6401adad54fc744c98575fe18328b10543311106392d27ff2a442960e49e1d9158063faddd2a3c389dba2538ff1ca1d7b7b47ab3999e578c16b4cd062d297f6be602c8cd1f9901dc8637785f0f07053480ec82d01a3e606d413ce5808837223454034e8b4eba04396297e7a4156483a5a0d006fc555442e138a8d3ed6c8e50a8e8034c913b635821d0fef49e660b599b8d9bd7301eef0370e0bf48cbfdf3b366dc026b3cae2214c4e8419e13ada1da7f5fbfedba5b582e3969951216fdae484b47079e7cfadef39446d1a566432ac69fdf6df3b4c82529a3e028e9269fd7e053c706a198ea9977b5df9e89e8f54d2ac167f01950bc1fc0e78a3e86d5b55cda116303deaa3d817cd7f72fa88aea521e83f8161f31b4a5ec48d70f11d63427821b1002ad10c2604d5dbd99dbf78d2013e8c2a11db95ff79e61c70ae66db45f7f0bec01d36e9eae0eed84e2be22bd8c079a7655e9dc5baf46b5f9e65a3d24bef5adb30250769a9a7a9cfd42d9fa8c4aa44f6d6eb0da972bdc6d1c93f7dbf29dbcf91a04d57860cbdfedef413ec34c9f68cb6839ad6f065868a4734f43f0d05c0fad1404ecfd653f7a755b1d0340fda30519090ad42d23105fa7eaeeee7d14243df8c901bb57dfd07a8dc37880e209f5aac8081e1d6c5161b42ffe61b24759e5e20e530427e47359aa747e7831092e2355fe57fc0285f112af4c4480b6ad6712d879f607076de06164a97aba6bb0228a56f79d9eb0a1adc4e5984ac2b36349f06dc7c10610e49a5d1ca031c190053fe75214f590c9b4664ef6b9b25653af282310bed503f30859033b5442746da92c3837233cb9c2dffc49c94dc2615167588832e89e02dcd7a5b358de04bf984f177327ac71d5079251a966cc8736e737aa4f2420140376c837c82ec3c9ec97ffd588978c59572ada01770ef5208eb95e34b3bc83a8058b4fc855ab53aaabb17559b662b6660c5aa96305795e0843530a90793ae71304cafa13f03f55075a129ad1590b1c56058f1719145f8456847eda017fc610c0008d76382164c90dee2b3d9b5a39869ee95f60f985c85d4ec83cc0f01ce3d00200f21c09094f1da819b265c01dc2cc841a3b1f160ae99feff71d32b227e4b55407333528cac64e99904fc86cc1a9f02f2a5278c46b0d38c21fe4838b5e246d9b024a2dba6aedbd4368b0d07020e93fe090ef89c03fa5ffd3de969d01b1b0f16e005849734bcc8c869bb88e3cd003738bea8a4a10dbe4a2546f0dd17d7973f0da007854a471c9ed8daccc4d4554bd1c84cd267c7bb5be0c06b78379ca626bbd2802607d3ce7cab1fb1bcf002c2bf3e88881928386a81f7647224a0e881319ca4604df9cd980e5d34a3ea6c44395d3f5ab879f8d74ecd026e934f7ae04e4672ecf0457cbe557d543393b24fe834ce2403008cbe091936a98701e3310d6707477ae016169b1b03d0ffcec012a3a8379e8263152132c53f65f0b2befffd901c2dd4a034eec1a2d11a9fc67b85dfd7184289dfe9735f7fd3babc18b4f579b669704b30354fb400485f77ba666afefc61c9a8940a472d539a97c5b946bf8f6198502f004b4a7cc4a1a2e311fb43a01bf90c5c9488dd761f80140b58e899261d7b2bd310023a5ca6bb0f8fcabb02b8d68f227fa22ff3c2576600be1168b20a892903192023e9b1618c4a01bd80634d7097fc5cb2a4bc00824c798e71941ba478d1baa4204e31ad41e301df4627400f03b41276ee85e90203ec862216eceab48db05d860072794c466a1da482cde64cc6ed84f7c2759c9ed66a9ccbaa7839f2cab8c54a10089d480233b215fa1a899ddbdc0ee6a0df2382ea3a5835dd575a55cc8868e220663ffddf069084be147cc3c9b3ac1fd0dd045ac89a4e6faa35745fc9759509f0022b3438d94d73558c1747665e0dcfe0dd5ba94f773ab7f4dcc27d6f494569507a091812dae7d69e255a9fa1c97522fb57057d1215f9bc0f27c53e62eab528106af6628ddb66fa8e38771bde8bdae2970099fc8d7639e14b1b8b4de8525173303079f20b1a4d6a1c5f50960009cc4c1ceaff4f91336d022e16a7ee83b86b47304b819c499e9148d7b9295960a1e7bfd60b36166709a99787aa1fd3e16562d1105d73b98eb2b5d35a2cb0592ee8f6f2b47ab7c40dee6eb2c2708bcc40520001d0708fddb87a3be2620e08d913716a51405c77cca024ccda06cebe9c5ce9d6b82041b16dc1c0caec89a78a43209018617960c32c51f6843e38fc806ac937c0a4506a7b871627a078020cb429eee6957cca7b90f23335f14ec037db67df0aeee7f01208297204bc79665915a75a92b16905dc4d0ec0598628abb6fbd03d51527ef07716f3d6de4595a209fd9a202d0332179df60f6672f77acf0d178b469336bd605c8e20cb37506654d8816439dcd59842da843e3e89b2918beaebfb9e355271000bf52b80c0b1c4c92a2788ba807e26c46af253c2b8e5b61eb8ca86e1c16abf105cde1b08b27faa607a8c475fbf81ca09f78a0c349adb7d8a0f2922f65229d0a024ff9363d88f32288b3ec4de432eeb05af5b8e2b1684c143f123fe681b1b590011dd8d31dd65392fdf890436471aaeafd3081f6af46e0ac9da81e560f8a85dd0217d149664de40127c9853499f65752a8f13a1f66f94eef6ac70300d53398f6011a8718b7112481ca0743cb7defa585cea4a01ed9df89d80d31c2c4c92620a6071d52db0762d30cc371226db668d1b8ca350e8897b78a148566a141c9a98b6905034739b0ef7845423a9d0e69c6f57089731528dcfd4bcac0524534a0d5c88905fad6f73a7e1125202605c5eccc5207e4a02b21ac74f37a103494202dab1e31022c20d86c163e142a1ea1ffbec468a12c6fafb1d410d581904e74022b88903607efcbca35668db97cccfa971731501d3101ec932c3b5ec9bdfa7166d3714f4300c2e9421245e9f405afd9e57b444e3aad0ddb8805accd09263c2bf5cb890ea904ba0c2d0d9443d89c6409237030e5262dc40e593209aaa37a3abd9e096735b302a59fc9d459c47f09bc91e5312373e837628e8774ff2cd00b5d55c4837e588603202fbf855af400f860ada206429f113df1b149ce2305e294a0a1d7cf58895c070934d57e6324fb0aa362c369045848edca54f1950b120c6ea21214fa1765e8035e44c12c826a115ce3e6eb650ccd4a1bcc73ff7bfcad3ac5c5eb1b02dee4790773435a3934132c35ee4c284759a1874f0617e9b09ddcdf531e0b949e3dc8c005973563e3ca3c6be98ce92209650c1070913f23649b3bedaa367633f151f29b047a2d864c75edb38c0aea101e886613d43b3e7ad95a74879b343bf1a3a9f950064a957915bcef4c7f8eee1c8d3719f73e917c1d0f5af3e20f65c216e67e23c40528f911ec3d64b3f1f591819cc9a7e0d168a4b9ca8eb52d532d62ebda8dec3207e6fd1376f9283419686600eba6f2aeb82886ba9357bd0a232e323b909dd48500025366e0128849694b7e107107a38836140167e739d4bdcdebe923e48318f403116c78985797181aba03988d2c44711b0a6e5c25e4186b7df6e0a8b3f7b0a100a82ceea2181c3c27b638a86f320584e9c51d2d20ff76edee94ef1f7991048103f00c4d770f83ac88aac8de4068814dd9a4fb671cc2de0b30b40014b06676ac031fd75c71b23df6891ef69c18e2cd5db56c1a99773b6be605ffe7eb118a12720599193dfd1e4cafbf0be42fed839fa217a620981fd994b84f8f0272e962ebb403505b1972bf12a2ee80a5561f10ffa129b36a57efec478f12936747e56346e907b95039ccd7b0587dc4d725133c73ed4c2fa194fe136cc4b32ec05c04ed2f1307b3a84a2bb9ecdaefeb65ee8eba7f77b33252ae60e1c8cf8e3d6df3028b3b1003bb2edeb679bb5d2349b2cea93adb486cd3665c1e2fe617dd74a82f1a626c97079c6db03752215c11728eb90d0aa12889341841d1693c7e4fe49425fefabf6607b55b384fae02a274a29139c3e1e58ac65a6dfebc8200228e122b5414aed997035dc8679f463da019463297874b6f3e625929120404e22561853b581b6cb56f03af5c0f4103fedc61944f85eb60142b04a768595e42d991650e5e529494a9ca03efb4e7dcf1fd87a8150fe6b9bacf10e1c903b16ea81df9249155eb4f77694d03835480e46ae191c378fdf6b9d2b4f79ebdc2eab5cc208079b0fa2e2c32427007c807f7064bb1a6ba77b556bc5c19b8c7e62c4f47bccb133fd35463fdb706e705ce5ca74a92da85229b047c570250bd7fe268fdda96b7e1282723c871f79cc0013972190637cc0ad9a7970dfe42edb50ff4eb32a63a607a44798a7dfd90982f0459bc77d9f5c243ceef8ee4582aa9c0f0a923ff90336993a0cbbc911ff4128003e4a7ff465d603246d6c3403ca5eac9895e33786225412fbe0e50d0e8cf0f5906c3d852289796839cdbd99cd7d5a7c664f7900cc9f7b7761fb3a650e054112705f3fc1a511e187d64e3112fb715f7d583e6120424944f02696715c44922585f03a456253a72c3f808ac2c2c9249f2dd0f4591641698245618561d2a7f3c6ad2024ee0363ad0f3669fd77ed73532250e4472a32ba496dcf45dba769e9aa57c54077d07c7aac0df70574e2d6c193a518d50aeca7b3936fc1424d75571fa4498390668cb238080d928335041c18baf4b1fb54f18780f5fe696caaf821a2b5d3b06054b6e24758b9bc342dac06cd48e0c434e0bedd3bc0585ff5e053095d7870a7002d16d926a13baadfec124fcb0c859ef3b9a4efa48dc3e0f2b5d88ba713838de0023a83ddce4f82978d85d7a3ae21ec99ebe0932b37d357cff6dfda1596fd0c907e164c6106bd0e44005d4cee0a9dd49fa78c8a49685e0efc2362afbaa15e5bd0566139e13b1166c4f67b85676e8c50bf3b5b3cc45176164a8c9399cfed4156704cd935e0cec2a47857a7c276a9ce58c6e127f3fcc56f5802429205df42a4308003e6e894c6e480cb0b259a82c609f9d85101fa5de1f7e82083c06f3375416be04e641e6cd10147daa156ceb75a612decbccf18592b6dbaee8acba2a99bf705404869f8f2cca95e9f2a10227f8c65eaf376af2d00675df286c630a9acfc757a201c61277233bc17f095a5c3f417d3490c75ee5bd13814d6c2ff3670f5b54bf410248108b70f7c92f0987c647ea0260b871bb1cbc0f0fad6beda8dc0bbca1bf3d046a69220c0ed82183ea72605a4612ad9bb8e8854d79c9b7a7969951cb32a60a009ecb3da3bbb221b23ab32b05fccce7d4b71de3ec1de4b70d1f1ed747e326f10567a21fd0c7925fd80b055b332a09cb50ba8c9cc687d7c9ba1545d35979ae0e036e5678daf2ec8bb3d85f74cd7d2fcfa7eec512b953e0ab5d70d7574666e63702854d620849ed8501ef89155775368c076c6c714ecdbb17fdc0f47c4bc213f1000ecd0192da058517b7b87eccf6e8b0fff7e8dbf0e25dba3323bb24d0b93ed405ed3a7a42dfb9173315b8a6bbf2507e35190e51c93f281debfd9094a4f2081c0078c4de61a9626a46c0ff28f60f4361ee390551ebe9486d23b7274f515e17dd004b3be4b8f02869cbd7fc235abf64aa0e60acc6357356d3c1929e1b3788c443032744c9149b804f314da123bfa2b05b1109df103c8b4e171b4906a7d60dcbc907217a0823ae99819adc28c26d5914ca63d1a5cb3e2caf37b10358aec0ea2245050e1c8ebf952a103cce363790e0439ac75bfe4a18d1af89368a83a546ec6afe02235935372833bab5f63803f99bcdc6831024096b138e1701feb7ce83bc75f003896e1f4b78696bc3a51fb782d6387aca971eba0fe6c6dafb60f281f8485c1a01a799f081b66075d5cc09bec6d9718ec1704f21ed7ea39b99e79700390e0df1008efe64916ef1aa87fad0d1816e5ba1c89f7dd2eef51ff9951637b1e257a6cc06f0e6330f7ffa864dbd3437eba7f37ed7499a3bae021d68f9c574da47796202027a08e8eb1dd146a61a49b69dd3c559f19539c619229648ffbffffa6b65e666004af4ac1a2264d15f36271fc88e84ca536fe3889605b53ab756d024bab58db70321f6cbac689d34b4072cc482f9126782945d72e00833eb2bb72913ac1d7c3107e2e7f36b7db896c01ffe6eaf075de25fd3660585f3c2e3021de61752ef10930669bfba856bfa72c3a6b6d76d26548526fce6f9471d8aa9b9b9ea1e349cbac3025f68fefa89c0a5c5f5b12de883680e4f3d2c8cb4475895dfe41fa9af8a52e601fbe6b18d138bfd1a68190966ab6459bbf48b906b5bbc4a5dbca817368e69bf0628cd8f1a89338f070ecc80343619b9f173bed7160ffa638a4eb041d7b1869100ddf4f492920459e422d4460ddb8b6ac928f838262b46a72b862ed68d97c80c00809a47d145ba50d2e401be2f2e207b1da68cdfbd34d6e059a36632d9b5b1d50156f3e846e20c7911544538e97c808c6dd6bf6fe7b1b026ada006d9929a3f680624b30dafcb083a846ccaa0e0f02cca72af3a02ced70aa4cdab43e2a213d4450535b03aec8e0470a1ad3daccb23114f7fe14a8f5939cd4f5e15c6eb1d2dd18302eff43c4b654be48cb9e3c97bc8248dd4d160e16504961efd4173aae29fe50702dbe1b546b793f19a9e17c29006ad2004a0801b1b198f1cd9fa720168741ef9071d091e60e68822069d2fd16afbc12cfc88b794076f95067ee4876019e77a3902fde1405168c940b957391c4733bc4ed40fbdd10613c1670897fe380a6930f8002259472df0a0e036b40dcd6a913540858328730502d90994dd1e8f8eee3f4202b641372a64f767c4fd39ca9dcbc737cbbec3c5405540aa5cb9ef2fd25ef4050446f6bb6276e9395d4a575bc21c04fbb26a4cc6ccf6239f73fbf1cdbdad22be02467d3ca3e926844e975445539df7f47e94e31de84d0b4eb3441580f11a3224046a7f95102bd2b654bfde6db267ff6eb9e35afd395fab8691d6d7f2556afa5d02f38fd5aeba83794bea4475cb8a5ad59c043ef0a05bf9bbe45a150c87b6a39d07cc266d04c29c60f0384d49a520103b0aec4e1ca93a4227e5da95758de8252c0642d06d45ddcd0fc6c8159372ffcee46fb7f6c60073ebac0d593fe9e9873a3b06793a6b07b5450a35d47cc7c917993088a4b82a667e10a07cca48e2dd6d7b5205fb32e408750c1c41642661b61f9a11a8eda8265bf19339931b2a9d166bb5710125c96fa40837a62f17e962a45f04a544e7006f98a648a88e60d588ca6541f00644087c88a2fb36fd45ce00c89c572b52e267ce8d99fb1c099754691c2d2035023428570863fa3c9469ed5c2ab0166c2fa776c6fd2310b95423acc4936cc3e400c4b8f5826083aaeb15b9bbbb72a4d320d532ffce5945c3f2eaeb09b461911200c5ccf30c0cbc8662c1dbd781ef71de044b45a7139d052e9029856f4a0ba46f07e5a1b9eaede58ee00bbafb62fa821247b091ba9cd35a09646829d76c81a7db04db51ef7c5b7a6570f3c52f9e34fcbed245c376d71493c5eeea05ac6c63d85a03480115c6dc737baf4d035078e66f77dc1cf16188e9e90d050d7133dc1780cd04f9d1e300a890a6b46abe28e1a5931382fb511aa21afd793b9c8c01618fcf060736d0f4eca0deb4cc6a3776f664c3c9d1a7b639c90a9c663461aa3ca606bab903af27574503db625b578d2c4f7282cb6093fadd5855765a6f81599ff38226cc076cf8d26b4b9691e50c375ccd16166248e0c6cfcf98736d12df71069ae6e50007e0956853fd845e9953ba7ec314bebfdfe00413cf002bdf0eb6531244be6f2c02d9d86de41b20f680002708987699174bfbe4cd27a879030e82f7b976c0b2ed00082dbdc8e8bfbca1b57fffd393653d1ca24d9c180a2dfcc9611687a91ea92501b4fdc8555eb837c87618449ad95d242ba6146c385727a359d0732cd1abd51500bca0ff35970c6a245ab6ef5b4ebb738f66add34c396704c9de1d6d3e11da1f0117d71df460a616d4e6a91fa51fabf9dc967b031df4821d18df715f5291d93a07589c1ad2fb23399e35275a67cdc39a7927e8aa40217f41834f0cf7e30a5bb4062935d0896cef806d18f2a52df2fc12eb9cf99b2c8d6d6bf7455a19b79dccff058ee24e34c7d35510a2e31521769a7f81f8e5e229026e71135e3ad15c03cd69066d06ba584f6230c1f0d6e322db9214b32926b3a207e78ab65a0b68ed4fb7df054f615f13bcf3bb8c7953abe14b237571aa6840f39952794b070f736bff41d00163643e6c4d910a62bab06164e92c85ad8e55e3a5bba7054384dc33f382e68e06b552e61fdec8ec6ec7076b129cc9c5bfb43e5495d05a2e6f76c348e8f7320a048f59f1bfdf203bc6d90b186b8f5a52349ee2f59ddc3ac8f6c840999593300501105ce5d5dc05c3b05cce5239ba67d6b95a05893b2e3b5283a54db406a176e306114b52e50c8e358e3e0c980a4b7c519c94e78ed7552125643cef7e92344489000658fbca396b9d2b59d9c89fc6fe54c25f0f5fab2cb4af6a75d729be56535104ab1be53a02602474dff6a5804c47a8c06206e121aa93d74fe3421348a2316b009e2615b421cca5ae1af728aab66f519f94811fc273f7c743d7d1285607f3d000d00c5caed4d17b4d9a966b38bded0defe2b64069f9050d400d40b4027285a3079f74696e2d788c81ce3e374784e03dc96dab52ac36a99066d44aed3b6f481f06e09b571e13c42d74807be9cbf742909b9e9080348768c8f9c71c92eb0a948402cab7a5289cb308c5023758fd6148fec848f8ea0a2e35bfcacbabb2f693b93b07d1d7de5c63d4982559add6a88eb1f1a30900204cce4aba108c40b9216646d7077e795d7eb17cc0b64ce20b57f13c39e74c775b66e94e1c089bc5b5ad67a4b9049aea8190a70c6ea9a5f8a116bf99d4195b1a57119d516dbe558c3a4230e0ee07f0aaa4d480f5aaba2a4711e2b369271f6f8a1275be51626b59d4757244ee02034f66598d9d2c3ec405fd620b097f2b25340d8175c5b6afd1245019017975e804239c6fe434e4ad849d6e878541334637c64b18bede2a95c82443855b3a9e4b03fed77a30cbee9b1f9850d541c51358123c9807be38c5e569970b31866b63c70471dfe1454e6ef28f24c705df133029b78e4ff042e7a54c1d0f029f2758715907dd30150e51bd6a64d1cdeaf515ac0a7f47fdd0b79498cfb0045f2b46f14cb402523d2b96342f308f4803a68876e635ec9e946ffa2b8daa98d489eb2d8a16c102c7083bd2727dba474f5b9279bddf48d42b2361abe553ad81f025fb605736b206678c966e396c360e18120e783e10bb6b63bb57ee24bb1619c0c0b18d103b9b06b8d0b9592b80378362006a211c43900802763496cb4b43a239d766bb0d603606682f87552d06a1820d71ee6c7a5178e88ab564400f518c96d0618422e0abc4033f5e10b90ec9bfe98d792ff643eee1cd26beb4df3e33fb2201b64e2cce1fb507bf059c42fc614e5262f0112eec7facb4bb7ef8f300a693bf949319317dffa6015f5b8074ec66fce516c22db64b3125990c15b0f5487a295d3038024795a05806a8ed094a294448553d84363f9668ceb5201bf9f155e9f40c0077d91869a27e00dfba5cfb0c653acc8e55bfa66c5954c21eeb652c8d3b4e6170444843723b89062ef06496b19aad25c67206a521a20d5c2db8fe901d9ede45d6b66633a904cb03a96ace19d52197d3c55bd2031be2e1a8f8dfea38170259eaf672cc9c193e9c03258f9ecf1c5d8b3c7fc1ea01cddae42714ad5a136a1f25a8608f7010ac456c076128e75844fdad98bd862950262d7e54d2f9f207f94b9a73a0fd6c5773ef7403809f27702cae8b870f2ba46259d3200e9c6f60b2f467c5e61fdfb6ab8aa2ad052e00eb3735b3e015973ca17f107b41afdf199ec9ab9a9dfc134a133b56af77052088678d031bf8b93e6365eb842aa3ae2b9b7f4251bc612b33e07fee061e9a05ced6d7c7167ebba043988c93301ac2c37cc603e6945145b8c566a85416de1701f21201975272766e50ee40866ebcf1df6df80f28bcabc5a4443c2b4f10d1600639e7f7401a2e538385e758155dc869ca95f18cbf5261fe94c9b1a1648df6fd04757b4b21038d7a711d53a56311d62298ac3cf6c0c92264779966eaafbacbb902d53d49894b8e923c356adca0da7a2aa85d663faba411d08656c9c1a0c9c11407d35f5783f483cbe984d11e6d786170bf17420b54513c488e5400a120d1752d016902d06b7445c7282930a078c1bc5610b573aaa3018fb9c7fcf19b2d4f8c2b03424d9234dab44e7a20dd7363ca27485f963d2f32a07697e28d32b510db2707003d368aa7e7326e0ed21864f20f9e61af18954617f67e076b5b069a9fe8a75b0785db4d02a3426d3d5c6985e0d14b5624a560a8db56e01d2601e9b4209a82580491bc32773ac05dce9a25e0f43f954d3c6dc017720cc475c899c44ff4a7b97604b5418a6efedd6ad45354ed7e64f741e95282d858a178e73af5fedfa664bdce061632319ddba2c01d0513018e416be867ed661c66b0dc5d53ee94192df7177207c2b42f7be3940e263fde5ef4652da68e0fd84d50e7620d743f8dfe82c1ba080222a72eeffd4c7b591eb9da29742f79b8d1608974bdf687e893f7a16851fb520423a0644b826846c123896ce772ca973ef1c49c44fef41c7ec25862ffe0ed8305b2bb2c4fbb29a8c161baf856bfa9e18972ea44359ad8edcaa022e9a7e737d601bbad56463212f1a1331d5db7aa79b68d7104b7eedaf4943f41b32ef2fc4176049f791e12fecdd7f9132d4ebd31f9653de7425c5984d373ec5c170c9fb395f300e9d0853a7f5aabd0d4d3569a1e637bb326b0ff625b508f108620718f863dd80696be2ba199afcb7e5d073fe1150895916e3754518acfd61ddd6fa890b3ec7001149facbb9f7669089e0f872510a30b373f503a1b609c9a28366acfe7a2346401892d676aa5d0817ffce8b587d0818fd0be89c6e2cc793be33ed87357f45b83057fc9bdddc5611a098ff6c778f3b460de0d34f8ed55f6f2b6e9e743e04a9b2901bbb6907280e4bc2375924c7af369249b4014282ee194f7d95cd3527858fbe8051cfb1684f611ee424d016796458c842964d6157b8750fec30cb6bcd0569c77035f5c8f18cb4259a7116a2fedf112ee5be1dfe7595aa7da135e51f3379ed12a04d3a3d556e7de09188fe4d0a82d6feaaaf5c794bd09af92043a42138710bded040dbe83938440fd40d809ddabc455a7681909b413be14e5beb3e5efea3f432c05b9c80d08070d8b6a8bfe334b3ce73e2e8042fbe5714b0226665d69f370c2270231900a2fd47af40f4c89662ccccd93d4cdfa6b6469055d491d776391cac30006cbdb131452297601319035dfa88097ba4802e892e0f86490cb971b4f6f60ea002bba9837f941bc40b4df7a8b44c53c0a491616d9ddb4c66e1c8726879cf99a06dd925bae23dcc612405ebadf270908084268516bf30badcb084a9bf8f8f92200edbaab468178ac0b5bebd10023c9c84aceba704d37c2398ca491a2a31bdafa050e40b170db4dda7eb979ab4dd37f755a662f6985626dc2fd5df9410281da240471207863f197fdd8e61033762ab4e7637fa4748b1d5387b059a26380514b1702af6d1e685f44bd021d104e073e26efcd457216a5c1b31bc1734aa73f34b3a303e771935020d30b16903122fcd20ec4871dd82a226d75a5772bfad59dc0e075063d25879b58f334ff3962ff7571f55de45ede0f0200c5e5f672fee8e250a2ed07c644f115d591f43f16ecc8c6bb554e875c64f5dfe639015e9ebabec10a5e3e04656bc5d598a94417951e7478a79d803b81b265821726632411a9d115b46efa017da69d0c8f7ce4baccc13d68858d9464ee893790c275a9f2676ee7c123cceb00c547969a8b5391e9cab52c1bda5861f707b526b4be60b4a0b3cac266346a5207ba5acd5a0f86c5df7e9ba869c4e10d0a3d2888e577b563d1b2e1140ac7a3040086e31e5e85cbcbd35940476a66d2a9707051377c6f801de94416e283d54d6f070f201818f146e2c0389750838b2dd8be65bc8651b1520eb38e385ccc18b1f307de7cf30279d5bd335547632be949915f052c84141742307a3b14dfae25e86005c90baf64c0f9c048a1a8e0af1bc4fd3dfe878e8f8e5d5cfbee9011669719e7075fddbce2eae3932108f420114084f491c44d9eaf683d72bb125b431cacda060138f430cf9f4b17fff512b5a47fd768c863836b6838eec9893e78692bf7ee54027298a6fea71c5099db791c524260af53dece96e033a835ecfcf85870f7c14b07d359f7deb087ad15a5f45755fc391a0f81278c497e4d814927cfb1173d8f4e04cb9540989a24b16a77043a8f39da366fb54d04c06ad8d0c91e1d1e2a7e7fa9069c540dd6dd804ee2b36c4c262fc151dc1f77d09bb6e6b348d2fba4df6460da026ea3ae5dd605a3f21e82ea8c37b1731e1ac071587040076f39520ac23feba901c27fdb277b73afbfad691ea9e9ceca4e6ba15d2d5f195df380f430e22218ed01297de0351f64d053131c24737a2793915607199e8c0aa09c8436da65e23a3702d27876d7693e3afc02cbbdb1fe99bf0f58442b0bac98af161cfa57fba51835057daa022ed2d47ebdd49cb4381f55ce6104826861610ecdccb2909cab381628014b645c7d11abcc965d55ca36cc736793cc565c7ba2c9c022636a37acc12330010b10549e279dfe6a7bb735242db89b3688a5e913b23108a3c2daff1a7ef37301587f05fdd8e0b621d60b01f0bb1f8594c9ea022a59cc181eb06af9493ae5fd00620a2f260c386e3cf08d88b5f90ae151b029f0a5a3de1513ec8ed51ff9033803e2a4be4029a5334ad03c1c2483cfbec88534a72aa6a9fdaeffff5f4d06e98f01e2ac76c78ca6d61623e194f056a08ba6ae4aeb25eb673302bd747bfb9831a304b7c89cd0d1168e38699802cd0c87d090d44b6f7ddfcdcc0b9a5521d83db17504ce75c0942cdfb1ec316fcd633916dd64f59dcc7848c10c230f133911f3c52104d088dbffa485868ec3125bdbce4811273bf019e3c372d74a70381bafdb73e301abbc47041225b2af238431d8384d5beeef782dc7d58937dd22ddc95d10b8c607b964a0fb37ec82bf0c20c2a9da137b317afe7d33dc7ecbd5e03f6f11a31e7c044b7c3bf7960373fee47e54a89b380792ed737799cca845db6fede53e67753400d3d81d4c4d045cedf1c99f07b662a9fd865b15a1df6a18c1d9eb612199284b02842364fa37ef63dee8b588fe048670dfe6020cd1736acd05fa2ba8dc885a330541ec7cb025c62277e1b4ba4fc191de00dcdf9034242fb502db84186f355dcc01dc8456ee78950c972bfedc73dc9437a27b84e78e2bea36335be60516ab525603faaf09c590905360960553af5b1aaba4d68a8a3829cb7ad4504c02cec86c0c05988d25682100cdadf439d28b72f38cfb02b29cd864e52a800dbdda55c7a9fd01fec12036f1e264a5dde99f011f11b0d7e5222dc4eb42ac8ae2962dd311ebcb04d5930071a1e1c0bbc82ab2c909813c2c831a55a394c85d7569e6f6f71b33f2051f4a95450705a877d908c7471a47976be3827acd88854e1c6193b9a03bf5d80672f432269e3743deeb3863d8218f84ab0292f4ea8f05172a896cdc4e6f004e014a759c0bcd0ece7e936a56ea772d75763b68bedafa3bebe04ef5844c1d5db603a3c527b31b59a5d8ddb32bd5e73000281e922e73b0cce9076fa15ef0db719806f5768bfea69b221b1c966300ac055924ff00b0d886ae7c46edebb0bce7e9c8016e9a23e83a5eeedab8e2258caab17a42fa3fdc3c74e0d9fee9d4d38d62cbee05956e901eebfa670587c9dff05ac2cf6536f7601997da54b2a7c3c8e21d0659015d0156d2e3983f3e4c660a1c347a1e551bab90ea9694cd048c8b789b2b77c40651e36b4bde2f0927bf0226eb7ee72673f5e5b8c3f2e6a6eb5b8d2c6de6ef08009c969aceeca0b36a195b6df888bb88119d52f9e3ba1d1a9b6c4be1e2381b2a0234181939519ebec252a1bfd7ee8aa4ed09503d8129aecca6ad72fcabf7ca0a03dcd50e9058f0e91b72b0c58ab1d7420858957db4ad3e22562e7c78458520ae0658f626ebe99ce6e5b3773b89a7cba990b5afd06e43a17c84cd4fe45b1942d201228ae20518a8717fcb508015674b88968552ba0255c50288ae48e78ec00095056179ac176ef660bccbd915ebb804147b9dc8c112cef24546bd3fb78979522507027c4a419222a50f26421d3238f972b9900e04ae3b6a618d11152707cd97f402b81ab010d71d24ea55ff41331f8c71f57db737863bd6a54d3dc3759f03178c04d042831e818847c06ed2e3eb97fdaf140d4df653c20516f6ab95ce85955ad003d6cc5bae9051e373195d8a3b1c0e3c5b4fad39235452256a555d7ba27c4bf705f7cfaad3027c99a1c6d890f397b86b63c9cd5ce1a1023f5ec419fbd60ce61d01c601a354082c660435baa5dbcf8f81235e3f800a6b653086466af2312bc628008b2a4490391aaa1e1eed39b77a8b8aa58f8d8f28dc14df08435da115d9d67b00430d17d1aeb5869be007f9d3351e07fa5b7da42bb88a7ef6880c5f0ac2b0c003a7c622ff23010ee53f35d90a3a2f2a3a1c5f704979d068834aa2d7f997ca0f01b4c2df1dab3a5114418d933e9c876de83ca44823a2421dc3a3882305e2c97202942a47fb55b9a1fd094697cd0f96eb8c3eeb41c61f6b11752e39d0220b811f051e274183343c59190205467f237bbf0044bd1498a6ed6a932ce74cc59736da066518a032b6c34340f262e5121dcd51043b2dd9a87dcfda7f9727371576ac9102d8101516dae36f177126ebccde605b294a8c4b45ae8739d9df5b6facd1157007aa07c81d5d0d17eb8274232f57083d83ec852a5d4dd096b0ab3d706a4fb3780407bf41d94e6670717ca03f51779b9dab282a820a05a8296106b2b8e975ddfc0203a7fa39aee475b037c6e456c3fed4a50e203f3e1b034dbf438b41d13f54bf04676c69c2f9d795e24a7d42c74797a1fe5be210b604e5114417631f50b986c80428d85e72dc0315b3a667b0ba044fa649839de7a0e3a7010d2cbcb8b49344ae054e1926a4a8b5754e85543e3f6d601144fb8d6354751361af2124b4f4b91b5002501998e3e59f3f942a23427dd9c732f5d3ef6e5623b18bcc3abd0f5178976c064f620ac61f4d982f4828ca22dc5e904cfa18d7843d59129de0e2b59835d552071743e68634a8b445018c72ea5de832903f1be2f29b7e73c8eefb10fc167ba8045957a8902c3972b89094df85ba273f5f80705b5bf761a34b96cdda8a5bacce01db03b5e557d82f2f34b3854a781c51e854a251d7566fc6853c7c7547b8817f01eef6b9eb712a77c89e17a4bce5d4b889fe52334f93947cb6288a71e3de23700231ad8dd26b020ce2d95ddc2082f2719c3e8a8de1d138fd982c40dbb4da1918040cdba696113dff40fc8b0ada68286f3349ccc4e0e16b1b9d3cea8f19f11104042cf27f76366d829306d86b633605d6b06e918aafeaebc3473860115a69e60e011d630fdd669bf064db72e5b8c392b7ab9735dad156ff38b876aaf2730d87000531b61aeb36aae333958d47c3e5f05b5d921d86d5149e942a4dbb98ffe61dc303dd949c94ea67379846fd0496d36da743c3c95122ee7ede0a6baa7c7cd8c7c1075b2dbfcd49307f7f5bed40ba6b535f3262aea0dcf08bf4fa21dea79fc9d87c05f520d54a4919f7dfc5141744dced1f98ea912ac6cca8dda126ffe4f30a93cb034eb83152b93cbc9f5d3c4cdccf63074b871d3281122bb3c089d723098cfa71023a890b95e125c5a2911523b6ccfaba59711358e5b68a1bbfcbbd0167ee57d405e16914a422833a4f8f456ed4e97e116c6156ebee031bbc067a1ea4593457cb06521e5eb4b52eb1eccdaedb76b764075e4be93edd92f4f7e6e13b675363888a05c405a3030a85cc11cd4240d36abbae477d15f7dcebf173a6d1cf6c57651fa40011bd9cc9d53fbda394d883692443165470a34e178f01f23e55d32accb49e0501d98338981350275030ff28faf519b85f45c52b2c4572c766cd5ae3d9e4e2a603bef60a3a65d0000daa2991a330348748f14ae9624c96e6889a30ee9f7ce38702b8a2b16521fb6bbe369483cc637fc6ab5a31664873495d0f4f367f87c310b3056369beef10807917ef95e4b900c2020688bad462077a74887081d53d98b7cf00b5eeee939d2f61f3e86acea7428729045f24ce2cb01ac4302729569e32c520008c0f5cf386e08e927a06ab26df26699549df9dc2256e977ed9ac18fd25c4b602432873299dae5fb06d0fd06bbd248e363f86560bc6995244fbe08e08c8fee203404355dea3077e11c7735195ee7125910e57e9b6f848e24f7e747635ad181307d6e711d526c5e8a7b2411cba587e0d5e2136c961db21f89a1e66ec83ea4e87045e316ee9cb85f8fde7bb2bad24559254109659e84d8756f6e07b74c4abbca001354bc96bec9b39f41fec6bc8b26f61b7deaea25b14488fc7390da3efeee78d06a365b728a01975dfb2644b5bf0a4bdebe1d65680e445a19f674007fb95050707079f6e7e0c3848b90198c3878c01cde7419db835bc63377b0feca7f3be661f000bd00ea0b979ece6fce456c37894daec9cf97f99b7e15573283530ddf698cb07fe32adf8c6480e349c558eb7638f89f2cd27aec83eb634f736331ed2ef456801f1087685a980bd9a5b3dc7dce999bd8264d93a7f72f2fd96e9debfa2384ec305ecb213e695c5d11780474fb568b348afa6170df818771ef8c8a1a326bccc8502a0c818a9a3ae556274481b107eb811cf7428a70851a9c5db1f95ac56e2fcf80121a000b9a4cedc621fe55969f80be5c5e5c61ddc6fd342ffad0a02317cb09204bfe17d89a7c33ab3a73f19b733e7d4a9228b8454a782a9c397f9ee9ef9ad0307ae34cfac3066a475108cff45aa3af3cfd7c34ab9292a443c6c6b12024838ad03441abe9ced0f06e04affe7c7c029086943385c9adb97be1b0e6d8fec968c22051da7c4066459ab7ba6cb92ae2675fdfdcad8ca27245b9f5bbc1554e686529704f2cb4d72ac365a8a2f97e8a7c7ca8bc7a5c323dbca4c41a523d91dcee2133f01aaded45546bb3bfa92df9bdf2f27bcc5142574796d831876453922eb5ad02206a76e522e833dbc9c0589f49254cbce0ada96246809a22a51ababb1a3bd7044051c81c22a994aec73b44defe955c586d3f6939f668f229650b88c98a404c536010059e0b3e52db184f03eefd1c7167b1a2c5bb0297bf64bff3a6599b536a0f40098726108c28b35f6d70729a7715aa9dcf58c98052b963dc6c446abf8861f4b048f5f99819527bd41b478263dfb63daa6217753efc1c5600486533217ac7414067b74836ceb5b995b02b47ecc9d6bbc90464de1913dec8172b8d481ebd719a5027593d8400b3194b1113d3be50bfd43819e18217e14b2f18ae708da2edb073c05562b4096b493997d2e2d513779daed2ff9f86b9b54f99c5db38b7c2692f50800df8a13757517b488b5d1279d5a006da554c2ffba6205e4cc441834cb02ed1706ff6b3399ec79037305b3ab4839a0e6db258ef0101b0caf2a03096c32b93a3b077b9bdd5d06cdcabde6aab3d50822582691683c8cee98801015e5abf9ee9ee206e6f134a6b17f20c3b0582c0d9cbdd3cc4e42a5cadd7c1ebed728cc649dca5e00a6ad1e063350eb793c7ef1277a767003f2d7e5efbdab0a4c4e8b4029665f84027fc29b07c054d39aca1cbdb01ffbaf51743a9c6b82b8d5b4d2b1422c2d600104c8d12dda6dfdd4c3c01341eafa6a5fb13b0f168251631ca63e9d05302a5c6d0634375f9bb85d9fdbf6976d9d76a8074b167db427cbef52ba9333ee8a879c030052666f7193958d8123cdf76aa76acac4fff42627e045239c65ba4294acb81b07c17fc224556981426c9a269ae7c0377c406ecc944fde8c81124dc8d0f5aa14027622d86d534521cabe3e057383ddc9b0199da5f43e21d56357335a217fa40d04aff3cfa23eefc4c5c267e2d03d2ee755fe33c865be47541c68b537fedf2dc206fa56b7fd4bf09ff3e03b34ef406911b55c2f3ac1d79889e49cde9a20a38a1007c4d97bb32f52b6210615c41554bb2d58e804db7ff3aaf941586efc8967d999004d0a7d1f5afd9a14ce5394a33931eab92d757d06b2f702cefbae3dede7535f00531263154394c740c4eb7f2ffa03fde4196811f174ca7a851c6faa3cdd9dd2026973db7198b3b244efd19d343c6e72f46adc2ff5d446d10df57a427a809f7b03413acc4611b381ab0c6baf87ebb481d1d4ed4db343931026f6d06414e4135d03f770a09c472c9cd8fb0522143245732b9d392265693146e92fdfe5fa710c9201827494ca96e354ef5b1cf9ca316aaf91fb9180cd645a166da26e7776feae8e00568143b5594317be12fc577718fd8b31d2406307f9c1037ab7a11e34d5dd7903d6586b44462dfcb1ad548d95fe5151d73d2d98039c896a42b5f17a6d81db7d061f80c0291690b224b11ef3fde156364a9fd7805e7b3397131928d07a0fe3f707db6b5a0e7d1f51f7b6832138725938c05beb9e41c66411714a87e856372b55030521c52a706712d0b6d9e899fa9912a9bf62900faa8a0bdb96a6d1b5d1a01600f2700de3098c9b2d145455d85a6ed476b8c5f85a8a2b4cc31ce67c503e5a6f009727b839a8b1aea05bd799dc672ec3ada7ad2b3992389b2151ff39446997ea057010d833f84ece1b80c8d4ea11c32f95c7154efb8f358999e22134c818c8450613194973c75cf8a1cf4620162c74a23c488a7be618674cd8a5d6b972fcaec20753bc53bb714ff97d81e5ba973b2c11f7f54ad6312ab8aaf7ce0c63285dd75407ba96d77cf8aef9f2dbc5a6e70e4f57029e2bb71722e8a26fe032145cdb556b049dd8695e31e80e70d65b667c9d3d69be30023e4ef1df5884821e72d4afe06d025af3403708775ce527499b4bc065a37414149d8bc06cc2d40b8cb6c1a6b7a207729aec81770cf9106aaba5ea15eba0d6a5fb0c4669e98d3837060352bd3bd402812f00d55db818a36108d7b3ca4926e3f08a2b47e623c85f76e6290851f3be00fe2312fe01a3a85e47b2b45477fe8cfd2156f6037d6e46b7394011a98d618b077c5f679b96dc20c360f93b5a6e517b757ce44d31d849de6bcd9d64bcdc659e04e278e1b089317a5cfdddb0eb7ef0aa785d6e380d336a6dcf61cc48bab686f401c02a7c0d50e654539174af19e0757f1130d7ec1e236615cffbfea03929639705c3f2db6007fca2f675e81e7dcab79273adc6b0fa5c23d75d17ecd83283b90407c5c347a28257f4b42fe78148c8a6af101de3a0121ae81392bc4bbf78b1e96b00025c3051342d3136b1f6f7e33cc77d35b8c6446759818fc527cc97c29f6fc104ad98be73bbfcc1aa82efdeacd97a3c5498163cd630c67dc0cc6c648ab53dc7044cde40f29b2eadacc9303d5f8dc6b99545355dae4c076e1c788ec5623b6c24009df48c44c6f485b30365b9f788925081555c187ff41ad12f2d2ca115b498fc0068138a5e4ca8df27f6a1ff57021d896376d1e19303e027f2cd67edb21d2cda0522c50fe3f4fe325ebb51f848fe1a7b808186bbba9024f6d67a10d614dbc2f6026c34b74d9770562aa44f95fd5c62d3a450cc5880c33d08e222c2319b17b068006b41ad5a82c897120f94b7e03c12c4aa91b39c58b2d0393341755cefe8129c02301c8cd6a65cb749d8aa34cc63cf7f815ee0aacd4f068944e856522addae06014a82574a7d8b70e2a7e8e27a20bb947e93552639caf36c52b557e1f622418d0552d9d2d773469775e51ee1d26658835e0dbbb63d87c6c94bc8278b1af3bb0103982801faff3269b67240b5773fb59a4c69c92edcf382e1a27aa346811d7e0c03ff481f9c807dfb30fcbf9156e85ac261386d06b8fcecfaf0945828d2c7d12e057a6b6f538362e2bf33e599ee91445aa7884730f7f4ac25752b25ff36a01df102b2f32c7efa5eff894c312f00b1b076c5601a03df78a1c969e9c678a6158b1602f457a3c0e2c1b7c8ef8153cac6f0d0e87c12879a80c7945a51f8cbdf3e065b034b8c7ad08603fbece2faf9db26e3c01129b76d86eeaf2e9e4139337d95108a00853a965bcea8d413362a0bf0df8f1906f216c2a245e87ea2dbd027e1041363075d0930174a8de62e254522aeb267498c65237033d6b933288017ed0c05cc95074f209e894ec8a413983d39ba8d2477456d69e8581f64aafae20b567283e23201ac3841f2b7d7fbe1af80c8bc1bca1ded5a1cbf9c32293facd5636d05df9ab5055d2a89e18865451af6ecd44bcdfdb2aaf6063a972c19173019033d264b2fe103f910ad72932f1cd144228bf9767d3b9ac14c4f744be8df9bd14fed6e25f250071b2463b8ef3a733047db7d3f4fb32626df0c064b9756ac917662c83bd2669606d09b2506962b66eba4bf89efbc59c7f733f1f9862677e0a7caface9bb56e01035716a6252358facf55934d495cf1bdd1ecde96d237e0aaf9d6ec85df98b16a0025768db4b3524d2e8cc783d6caafb8c5dc56bff295a013767df17f935c617a06e09cc4de0201b9a7eb2eb6ea2e244c013f86d4b95b30e4ee5ef8aebd6b860d032b927b544bb94b422756957d49b66db1e5fc6b05d475e4bb49876b78c47c5901887d214f4417f661e8d64a8fe69d6d3d1556adb89e38f977607353ca1c3c0905ec4edaa51e67f43fc33735488162c209fc726d8ca2356be7d0d7953980acd70681af0550a133ad292dc9937f61a5d877df50139eba7f6e4cc52b404e2eefff001830b70acf23141325d5becb01e0d6c371b381d5a7fb51760f075050b29ab905965beedeb65f7b542acacbc53b50489e2cacef7d9f689ae95ca8ee74175038067b72c9d2e06c79dfaba0b10b5c1c0946580f8e0ea6b7aa703b75afd263111303cfc2a06681b1a4a494e8675839256c59715d25c7a40c78f4effe27f46c1b510723e0a62b8b4008166c215f634e1850b288a9784383c28ff76b32cf027e27ae0241551cede89741130614369f5c923fd8ded72f33853263a66a2701501780fe03443ee608583f6a17430853649115b3eada7363d8579774c0526d43087bef1f06760ad6a2130d309e80ab13149c5f7b51ec8794b5b2b262414598724b9416db015f1e82aa2b43281ef80d4a219c59f90c70a22a7b694aa74a303a1a6ef26fe403b28c0a746a0d61173b1f69c10ad8d1089d6825768a15123b10c57f1c3a643c07d7bf299e1e6c475e0a69048b1aa8c0180acc4bf16b05c7ad54200f1ce20eaa07a275a4d3bf29aad810e53481d93693e87b1c445b120290f98415232327fd9b05f97d364585147580b6e75484e03f686e86a98c29e4fc52cb3de1dd97372e780476082ae89fc6ae396fc74f6b61c576b5152fa3c331a982fa09a8d4bbf2ba2d05fcaa5aeb0d4ff4b20f574d2878d2f9491bcd5c6537c521f472467636e3515700a30b655a278fb2d052ed2a66243bd2cd34ec368245c57b741b6408506967f200e14a77eff21e6a5ba3f7c94fa96d8884781c498d6f616322e7200bd983141f0533c17b43b92d91555f3921f02c00aa31da719853c447687141a5dbc77610fc0689b8777af90cfd3beaac4679666d359dab303dc8d975adea7a1344105c0113014be9890c01e0d258ba3c97a6c635a6a4aa7f3ba3d0a2e83d1a3b3e0ac11540060da2b12e1fc3245c13cf0e9dc24efd910816a69a363592b11714debf377c9706e7eb9c235acf7e0a6185b02e78ee34d57623c6a799c878d6f329e9b187716f02d69dd81b8381d54364e9531993c2d2c1b742a6ebca0eb6582dc4406ddf3cae044ce42b1b22b901444631f612666dcdcd85d08d15d1fcfd43f5471066fd704202af967a0fe4b9355720b1bf656e795519c9ce9fdf1ed0b527abe1be6ecc52f006b3c236ffbcbd0226db984e1605063fa5e31204a50c3e29ca92275db406a6d402361d22d6686b9c594bd9b5c0bb85aa037ccd45263cf37586938f7385c5dfc7059913d7f1db61cd704a7832c295bcd8cb0a56cd3ede86d6d5c3b6a1a59f11cf001c0d8734590e8766aac3aa927a3c3cf50c7b8bbf4a7f6a160aa741f999be7e05a41a93eee24020219ca1a48af4719803fa1226b17dad2dbfe4628d9712788004ba18f980128289f0718c98cdbb688705d2b5279a8bd1c5deacb1c49ad697d5036bbcda4f36705cf4cfb75f6e6d3734981c23cc9be0e7902b475a8d8406c6e301a5d8fcab637211591b57733d215bc70b4fc894f7f8167cc924a484c2e5345201f48a0377d67fc7180fb4637057efddd005b4a670bd71c23c0c6ff2fc3f158304741454a65af669cef556c7c5e5b8808caa7f8338cb71c5dedb0107425725e802c6b2552641462ff79b8eadcceda68c52375ecf2abd82f8a9c3d37e3e60cd19043ff2456226c0c808b56d909358b4cf6d9754c90d1a542cd03c4a2583b397d202ec58bf6e863342d13fe8359984948862363028c584b9f4fb60231d4df715a3052844a7a991e0f10fef4e58d0b0555c11b28690b505330d49e6156a95ef3b98057a72fecec1d1b53d8e45b5a7b21a263b238edc62599a6697829d266a54ae40004b338d8c1c9723faec4e52ad98611ef06a6131aaacb9b88752c0ec7c3621bf06f264d8943b210ff5a7e206fd86a48736e08601b687193e061ab9ff06e1f02501a8dd4c3d0db9d2c0db4b7f1a88e9a331b2891557cb8332537c71484fc80bfc062e67019a12a3575eba11489a11951ed24ff298b081c181a31643601ffb6b6506a0707e7bab690ef00eb0ac07f38255fa9c961de41712065c81ae69392a9ba004f24a62279df0d517c37ab2dcb069e48d113dd5f4fa175fa94f0db8ffa22240068f2a9347a480e9b15fd872080a30454a99509cbfaf2a8ada6816a84279433a0529e3f6b2e8585e89a4ad14aa0c966aee322944467f3bb1c910abae97171ccf002c124956377cb67685c9c2774b7cf342b10a9d438fc3352ad057aa6af28da307a4485e6828e770ffae703da94e4bf5fa827f6e91f1d590401b0c114f4cf13f056de7967a4aa7661a773016bf9e40a693c783890d2191dd47f4e20d9bd6283b056568055e087fa774897c9e9433c9aaf3207d1206f13fc905fd7af3485424d4034b8f0ead718e66dd7d9936251547126e02dbf30db4a3fe2070d00f670f3a2a04dd1187cd52c9ec93a7439afac9712025b35ba0df8ec7f033fd859b9ad11ef407a9919747703da3ea40bcdf2cbc2583be90c8fe04f97250eabb51dd30976f6b05657d0090912b62286cc0f9d1b6fee96e7d377bd59779434502810af02a642d03a23cadfca27265040cbff1be5ca30d9cc60de945da62d46c6d0ca758e1a35d026fa34004feee9692f139b9bc8dddaed1358473d92790817e3968c7130d67aa03adca71720639cacf67231ab21510ab9cdc0deaca8c35a9c2087562c2e2124801f7986802a2d6fbc58abfc444dbc8f9faf4eaa07a31575f86265601e434b1f501e848ca8a906fb01ddcb1b2a98f61e6368874079147226c92072bc23b4833a1058ffc74086ffd7cba6607492cae5573714d513713c6c2aa0fb537fee7031ae802ec980db39cf2308f10e975c9236c7a6fdef49e80fea5f1dfe0dcaa5cd10c3b07f446b762f934bbeb1d3fa751681c6cf32aa0da8b2d6d21de33fd8ed61e7b5d06028cb51f242f07ea24fecab67735e3335a2271148117fc48bf4056dba526d503f3b299b23e2f6abf447f2c85a3e515fba178e448bc29935619f448f8173982063173184e3013277eccbbd741dc36b5e8fd7e3a35cefdc7320c9ee205bfae600390b10c7f918a72746f8ac09261689482f53fc6b109c433b2cdfbb73f7caeec0333c8e55b4333cab029ab659747d837ce06d9d763a078db00c84db2a2917d3a03a0326c576ff94c72fde55e2b1bdb3b7543f883f8cb36050186a8924743604a01b0cffcf563e55aa2a5836cb7e204a99d7ade369919c3959be3e854ede4734d04d4d171b0d541bad4f29dc3f252bf94366df193c028f5bc330a8dcdbdd27edb02e19e29cf378cba8f914d9c44d23a33e220d6fcd7ae90de3f142671f277112c050d696b232759cbf4395c27ba31ad3b1862efeb70915561cbf02d50fb9bc2d1060d841256a1db8254bb68054e557dd7651cb727a25983f3e94f516183a9379a052efd81eecc263a211d34b15b2f9b6cf3535d720f7e226289054d250b0cd42903cbddaa7722e7f3be486f6558f153a5749f81a7775d07552ebd863a6c99a83605a5d532266632c2e7a9d13c4111acd93f0795f87027caf0272d7f103b34de08025bf224b1095fdbf5032e0c08c674d45ba4654975d1ee45e1a8d80897ee05500475f5fd0126b702b21457e449c79f041b10db735e57976c4e1b3d39712e7e9b0556f58a61d14a22447bb1dfa6c3053f47bb9105e359d9cb4bf3f5825fed49a2", + "proof_parameters": { + "channel_hash": "poseidon3", + "commitment_hash": "keccak256_masked160_lsb", + "field": "PrimeField0", + "n_verifier_friendly_commitment_layers": 9999, + "pow_hash": "keccak256", + "stark": { + "fri": { + "fri_step_list": [0, 4, 4, 3], + "last_layer_degree_bound": 128, + "n_queries": 10, + "proof_of_work_bits": 30 + }, + "log_n_cosets": 2 + }, + "statement": { + "page_hash": "pedersen" + }, + "use_extension_field": false, + "verifier_friendly_channel_updates": true, + "verifier_friendly_commitment_hash": "poseidon3" + }, + "prover_config": { + "cached_lde_config": { + "store_full_lde": false, + "use_fft_for_eval": false + }, + "constraint_polynomial_task_size": 256, + "n_out_of_memory_merkle_layers": 0, + "table_prover_n_tasks_per_segment": 32 + }, + "public_input": { + "dynamic_params": null, + "layout": "recursive", + "memory_segments": { + "bitwise": { + "begin_addr": 2524, + "stop_ptr": 2524 + }, + "execution": { + "begin_addr": 32, + "stop_ptr": 91 + }, + "output": { + "begin_addr": 91, + "stop_ptr": 92 + }, + "pedersen": { + "begin_addr": 92, + "stop_ptr": 92 + }, + "program": { + "begin_addr": 1, + "stop_ptr": 6 + }, + "range_check": { + "begin_addr": 476, + "stop_ptr": 476 + } + }, + "n_steps": 16384, + "public_memory": [ + { + "address": 1, + "page": 0, + "value": "0x1104800180018000" + }, + { + "address": 2, + "page": 0, + "value": "0x7" + }, + { + "address": 3, + "page": 0, + "value": "0x400280007ffd7fff" + }, + { + "address": 4, + "page": 0, + "value": "0x482680017ffd8000" + }, + { + "address": 5, + "page": 0, + "value": "0x1" + }, + { + "address": 6, + "page": 0, + "value": "0x10780017fff7fff" + }, + { + "address": 7, + "page": 0, + "value": "0x0" + }, + { + "address": 8, + "page": 0, + "value": "0x480680017fff8000" + }, + { + "address": 9, + "page": 0, + "value": "0x1" + }, + { + "address": 10, + "page": 0, + "value": "0x480680017fff8000" + }, + { + "address": 11, + "page": 0, + "value": "0x1" + }, + { + "address": 12, + "page": 0, + "value": "0x480680017fff8000" + }, + { + "address": 13, + "page": 0, + "value": "0xa" + }, + { + "address": 14, + "page": 0, + "value": "0x1104800180018000" + }, + { + "address": 15, + "page": 0, + "value": "0x3" + }, + { + "address": 16, + "page": 0, + "value": "0x208b7fff7fff7ffe" + }, + { + "address": 17, + "page": 0, + "value": "0x20780017fff7ffd" + }, + { + "address": 18, + "page": 0, + "value": "0x4" + }, + { + "address": 19, + "page": 0, + "value": "0x480a7ffb7fff8000" + }, + { + "address": 20, + "page": 0, + "value": "0x208b7fff7fff7ffe" + }, + { + "address": 21, + "page": 0, + "value": "0x480a7ffc7fff8000" + }, + { + "address": 22, + "page": 0, + "value": "0x482a7ffc7ffb8000" + }, + { + "address": 23, + "page": 0, + "value": "0x4825800180007ffd" + }, + { + "address": 24, + "page": 0, + "value": "0x1" + }, + { + "address": 25, + "page": 0, + "value": "0x1104800180018000" + }, + { + "address": 26, + "page": 0, + "value": "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff9" + }, + { + "address": 27, + "page": 0, + "value": "0x208b7fff7fff7ffe" + }, + { + "address": 28, + "page": 0, + "value": "0x208b7fff7fff7ffe" + }, + { + "address": 91, + "page": 0, + "value": "0x59" + } + ], + "rc_max": 32769, + "rc_min": 32763 + }, + "version": { + "commit_hash": "INVALID_COMMIT", + "proof_hash": "INVALID_PROOF_HASH", + "statement_name": "INVALID_NAME" + } +} diff --git a/src/air/layouts/dex/public_input.cairo b/src/air/layouts/dex/public_input.cairo index d07f97610..0d7c5ce70 100644 --- a/src/air/layouts/dex/public_input.cairo +++ b/src/air/layouts/dex/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{CairoVersion, PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -19,7 +19,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl DexPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput) -> (felt252, felt252) { + fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; diff --git a/src/air/layouts/recursive_with_poseidon/public_input.cairo b/src/air/layouts/recursive_with_poseidon/public_input.cairo index 949564ada..91e25671b 100644 --- a/src/air/layouts/recursive_with_poseidon/public_input.cairo +++ b/src/air/layouts/recursive_with_poseidon/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, POSEIDON_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{CairoVersion, PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -20,7 +20,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl RecursiveWithPoseidonPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput) -> (felt252, felt252) { + fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; diff --git a/src/air/layouts/small/public_input.cairo b/src/air/layouts/small/public_input.cairo index 9ab146920..82a655868 100644 --- a/src/air/layouts/small/public_input.cairo +++ b/src/air/layouts/small/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{CairoVersion, PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -19,7 +19,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl SmallPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput) -> (felt252, felt252) { + fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; diff --git a/src/air/layouts/starknet/public_input.cairo b/src/air/layouts/starknet/public_input.cairo index f3e4cbe02..4297659ad 100644 --- a/src/air/layouts/starknet/public_input.cairo +++ b/src/air/layouts/starknet/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO, EC_OP_BUILTIN_ROW_RATIO, POSEIDON_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{CairoVersion, PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -20,7 +20,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl StarknetPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput) -> (felt252, felt252) { + fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; diff --git a/src/air/layouts/starknet_with_keccak/public_input.cairo b/src/air/layouts/starknet_with_keccak/public_input.cairo index bfcc61108..b1e0f3baa 100644 --- a/src/air/layouts/starknet_with_keccak/public_input.cairo +++ b/src/air/layouts/starknet_with_keccak/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO, EC_OP_BUILTIN_ROW_RATIO, POSEIDON_ROW_RATIO, KECCAK_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{CairoVersion, PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -20,7 +20,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl StarknetWithKeccakPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput) -> (felt252, felt252) { + fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; From e48a2d0baf3810778781f30e14a3dc64982fcab0 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Fri, 7 Jun 2024 09:45:26 +0300 Subject: [PATCH 4/9] Update calldata scripts --- examples/starknet/calldata copy | 1 + examples/starknet/src/main.rs | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 examples/starknet/calldata copy diff --git a/examples/starknet/calldata copy b/examples/starknet/calldata copy new file mode 100644 index 000000000..d8c0d3a90 --- /dev/null +++ b/examples/starknet/calldata copy @@ -0,0 +1 @@ +7 20 9999 3 20 9999 2 20 9999 20 4 9 16 16 9999 16 12 9999 8 9 9999 4 0 4 4 3 7 30 18 10 2 9999 14 32762 32769 2110234636557836973669 0 6 12 1 5 37 104 104 106 106 106 490 490 2538 2538 1 290341444919459839 46 92 1 290341444919459839 2 4 3 1226245742482522112 4 4 5 74168662805676031 6 0 7 290341444919459839 8 1 9 4612671182992998400 10 5189976364521848832 11 1 12 5189976364521848832 13 1 14 5191102260133724160 15 1226245742482522112 16 9 17 4612389712311255039 18 5198983563776262144 19 2 20 5191102238658887680 21 5191102242953854976 22 5191102247248822272 23 2345108766317314046 24 146226256843603965 25 4 26 5191102242953854976 27 2345108766317314046 28 5191102242953854976 29 5200109442208333824 30 5198983563776458752 31 3618502788666131213697322783095070105623107215331596699973092056135872020480 32 1226245742482522112 33 3618502788666131213697322783095070105623107215331596699973092056135872020473 34 2345108766317314046 35 37 36 0 37 104 38 106 39 490 40 2538 100 106 101 106 102 490 103 2538 104 10 105 144 0 0 1197100363646891454313901687794606859934588623653474816795543617410574809458 3207048181556343463720131983741463455174073248789575831873141902886073852613 1377393484295248053690009559816568692501284651044584432198360089832041956211 135 1329205157367572264849546789395896934489357995285454339399964405668168751572 1788770149765513712482705130448860272609181626892176905773760038455341972158 1977542227217968941891179315381377307501139485061456943902259111044920783589 3544421895155486098999146833291817486888880510575898880475818417469973858008 1191072973595616295212701663693751507713500118017880464787470315924841813719 502601864157063751893022073970059437981047897306747826776397568419247481103 3531796964276037156525717695123214830359560024435640787950856476726498556400 2637044759818046807393975419718826309624485179051444457157789941946955134868 1203025977629686127924405959714646736666569613229013092707842514320630881700 707811687654946068916054372966210495661506439321173247415747397653552717118 1977267615434233449972010243492634248534134521554582315895869738006101038939 1733502679474850822781686663765690847675266322856680739249293755579650405684 3485854362447716954832509365281661935859455101220764222489906718298111283881 2433803164692739629779717191324914262253725502171692767497485087779060798186 1181223280539731446645542641363860890587839872483054179047744379385773485362 782106985909926068075983789421732270286750016185221533677221425697508804818 2092098859244507694059159384657485072739386387875416470790088671901817702478 2839580843430792552359336932723032950005520990109447518779216069159333282237 748025482116528278562899319650372098266812701644954678301342422153593390051 381338020849356912200702603944471977311632489147305413363837068179113834358 1556581709841076702066961823848193226425597937311852578328922519065444040969 2648621787864420061565498641933480796542064670895362529820389640005910117290 379662118614895393498759107246318053258333294923551731367163108481531078468 1564288599645786014723463321837975007005990889518384690223995804146101134741 3107591919973521366820525334386025804499094034119389823312537187050978749939 2132574963011632259577122138542297267092179225012792374617581325367778048048 603690328701616098614398095297080868871888433627006017142180124022688333931 2297719009028757498819807534417626644237071766272510995789219804303451044505 496596601013729321773587175646935296347958400693541069483216622417423227067 818168402542982239159719551714311811576861478651608366517503026495603949037 1478400302525814903103559658334023676512126817337032131648668012917305329412 1190080028284933684122691883523594885633595526001360093255796499622378572735 1631715124310825936226415290399293372894469930723599764063485516499885507344 809341868338672868234798700730405036623164596208533229329245710653306355370 606057389326044989549045315838993310904236664660341309284623332035303858093 1564385047559634781184832257687436585486606002272677630548274666873381664624 2078563922124678189311481462348491482182229789364166127954743406835823780767 2038690061123638685362491876884775738438550584269301404596771166119704065582 3509186806512021979931395635617812581593686711318136246028018514475035398513 1399040537370653109683488419931850088206329750172905773314803590917001066243 1740744866886441461996634883835602097641723521930436537167958968102893445551 1471884946537695029262920391274270148002781170946298632309739953592168101405 3347839672640956074389583565433838956995639036296749840481898710112635947081 670712314311401954545843062220154928678395357444374596322635214620256746922 1451821374549621643844062205341267230675289282748381102161910880685028294841 1796030933057037571250652445627752696633262020909296365706579731367672981527 833009566506956062197979653928481415159330913286240447900496754126820565842 1357993268630571269523538939572078828205801218418874864513106306545016702033 2864318871541541426543391501210130169587756194616635476052625361880335788870 1195857319801554847625040411310947526213044554612824988813063216851038363310 355318623783825364008790176440267829440122663267556255068041447555050382222 2748007456133617958629547473555026977693984080313425683557009628909162789979 2074985448637057792473751875854063089168811899638290299813460518596407856102 3452781126029059085159252067641694113609923236084723867008369894611588809502 1836942452759248682751066324926148345055900542278881030259967747553332553363 508574973351208512943415921977709023733537883820086676068958952439195656874 3523764156792646746758782615314002754302662884834794174183066480496982475934 232975417166652037342625134917502688434652722740353516842050395068092950926 3381528118830580454547585698635428243246380812599898826605173415435932943392 736263345907045798531776567775743792037746692636051411015351098647313864596 1587510874976868514269231539265733668415511111641351976544969148449989597459 1377498616383158552565136059316780139288647030892935546999074569773612536575 736733896466932683284972582524225280246015248716204458515108404717933937504 991628612465427089738418630335038994141614230878191640489965393331541988913 2339916676036573412532422016243542399239355815474986978215835275646017148170 2241299096215172917953819730156469030828466461769003457471323513361430922525 1810368604534459260553673522400842848816384037595752641444682383138884701408 3539521248269048257962983879494472672107541477885612547727187128624493720732 2127904415239567861610929586079730345300532479152008427229215291998753258526 1426566874245537854296709181415879814075938624855168216157746909565694332479 757519003532831122344629187417548932501463281196427370493568801738711077102 1735997538623236355496257421833461567303467188258121236639426604070564980651 752988532413372052088064730637035975974558358531949675118073731965636797139 383997857590756936233489081694063702600632188552524908725642170826907921738 192073855018920115406374740627351270244326059512941897851831867388348799477 3325382759522022926586589647409050365376608337640375748340054139464264072951 2835002751469536556791241275605219827255215462036308040725136843945910439945 423371667303749743788824200218593439423050136341680388372232837509044470633 2200097780541463497054444460433975463482106564662484076801041032092212954357 622511676256946514986881062541960759820272770418683558398489716900296991275 807511946312215844720415420028300695797313155514203176257450604608808478053 180155467190541140248296505206171870854683916530865002485004169119701181424 1168672620398746986650129197668150478955718421050129589215509579856191775876 671835547776676467968444788809171462107237328663733594533923839635286801506 2385328468988331446933713569441396272721571989462979864317012399965839466437 2945545843310224254883385878610889201685783310227921192786531939719763831981 1384086995393403372298763814518732639432573671623161096459883010815498447680 3123634213687622094331962741932526276500165059460209927128834994720364576443 2545702899795478770381165858790741075163669642508086226261627818146363247508 3284181062247267243346248181294012035085343043875255316279697075662334633323 3316923570081230234777450367390131015759249620057705711619869911602741055999 1958608421824279379335011882681252875319838331511045362536945751068505578017 1156519624762309025277259495176878088296623273713006107678199992880049861369 3524879204762900169958005555309597904156198081532613833663539014364710139234 3603682162603065814977639816286673416430277701826755167630996320415370411228 468181181475371746169400437735072306865158492847665421785800317303606981729 3252512612751804245358546700727538829087163335101690815725730408949938612368 787745263091852213707863355387883309021466704696197628824862689031260467328 1460340966585039389630818944080618967601799259511703033151590544643903673308 3180092946598147304258749372211881422868573796253379123213773606937591775680 1734211990833240084936723958986232757205455832538485564753403026931403520213 2384205531658135497150069311555954787502716665651903254948590718133403498177 1810094031972917880677026647050400438295700955511328965072509165769365302632 507287303190726785609875237331438314216319737998363382425741546197587698904 79471887775050730787989761851009201036037916304325802580234472242201631707 308304968445628462744166946981465768485136418092923868043984911177597402488 2263766885607322977789660158615497627676067289405429989896161629282544117283 3537067095145741994241119825032004797937655444631342041904073764252566765454 838702542232618687270105024049269281078757475263003427236031205177459056165 3104226887400132870997069803933183168500238741434425106933938260340828097073 3553661097126482018333710027362919832202127273874037709845001860083094684388 444380410548031848783168897596856669196278918928758267120918298080665690054 96512620237115883601374634802231913778759201052112979079495697155742841700 2543285950562675478018411685013047231565175875897110912053383756526047198026 2061571079622130422070688731602451976971573142493324067561109506895507142787 2397895492956422910362744369451859333615631087013044798633050238321800290716 993737500905213492021657062296569496852016255649552583995565166977442860117 803653111091112810121571698793429003477019529662738248015601344396183424702 1361070730342513450454835494302678885879665345813235920270808872833424454709 768897964103945228836866330956455490067004470636482592769498628299988841892 866238593929370965590285060515692073810031048956582939711658674751931716711 3319568183563482403909930884201425401905808634476033524803983400527518331202 2087937793343197227890130183109128303142877623543391571881704954546262843385 1937984615943180060280191450820578035906032142179220554881973159705732002924 1313692758255650698027185397128129927416636058010279842889157621110562056303 3553848700829689000329745914507597532891808052303443669143907931015176900606 2237425536933209153691305333542037993189824706640368718654783262739201540786 2272898968602643739244665963200009073880203729084322673920840145938028995681 2666262556837995480754239315955974397749537244697511879475408475628423939400 1923656681608306534569270228612673807267991458804763631435637287607088809938 3472557790789801590667296659918008989208168127149413350715206233949471618113 1018435610025888024140197525701947925520899320949670309753554006844734249194 3083117332632450334695249549602097337574248148304300962677959625687572367187 1046817510479880409306372185854432753587197574495248094570242869363772912489 1248078549890751353054667101511278388751663430980580760531586035822177578692 3 1405647258500518828832986411590330207356494675602030514138388197071312918053 2887568852525120579149284273188463490932672810960188932447593900314928123319 1743184740424915594643552690916427556784581912879433130228729638556735283146 128 3595169465102036953818109075253925250350299465836763155450743492515391969606 724773298235877122583555610035747041997608270153824830152599966244524249427 446229347897492687815695876059377206579703361046010999176556878545857216594 559949481414724152650745100294908218157809448821543405392032644803571115761 2031919937903335668178810248476668835313943201426698102310984130040806607019 3249574804378444804518744229129656925910336125850143550680866525942811318354 180344086909031570124251593071964003505859932704790170984025170081375598907 3599732251853512283557547535220282413840052679818805299765950086103141195713 2976868954249828145397031668380687982284656583831312560312261237375219424948 64879916430781188820059450229145590581151519754887790293283217744892166325 3004383152807243997648259142130244873146284356335823532282122426364264036215 2526799464341640503421655924872267829769995301312917399412703631680583123797 2140321994396344202918179232640393570357651019898505282872183913643400586814 211069754593954351428287982033011079058891757947432481120506375889345766938 825111169549487184768846113094727997844439066516996768045772866936933963061 1521365904879611442703306759140849267676848229178108215523363390528399493915 297769659495792151519708123550973963968096676163596112196206064458850984847 2241864048448752714021426115797407630878800958653607623030077311571713860196 2403908522444285804871444878945981740840575579681087125322073427941583418515 3473288377068564836091849217330489023970783312206531663569691732965666027400 2105650796752480470548222633622458872861651538171859220435283524811521170678 959347861644513068680674596638172093050634083664057768964576192824937225522 3181821173609199475725599598246082493220395496185214587255635719279301426471 2565516038103721716884456261599461264951774643558939726174836112329202532425 633676790941430520508444518519026420885288469240513665482459400077805198700 460762178493346803019721009072899123617176308854953602417835440208528379916 1349392762494139736275153534766394703092939923986468323658373039014283806844 2554328616031697939077482007260830975954122686569216219416950165640434882663 2389232240906344607154182301683662780462728418642431702022120545595714565348 110139820013108912354177792137617205535364519862904452966661412307424761266 3278515440843010541631684912984908535965160760758427353344295046641280971199 1742795694059695561813347890835790248072134872216792223923486416093015189698 481101208267190374520947550170994124655488394119883687489246439888134126942 2783315542131420634025289496596351656298876581593465864301845273021772892270 1263152768135711639089393495403883035967937496271137790184040340750186285379 2567847338938809027489410749003904253307770960512115180924194611053180940955 3401110560435874488070663261634218034643107938901777499823122182950303423631 3614033352679716070871324430265314103531439097525217051989593234696927227955 1248181454113371282440125279883090181332248923637635600073501755990418225892 461964190631385902790641942794335597375681627395199271551251277507532492978 555934746763652889869369694458632967994679788016198849477432323193775010983 1161703413265461268368187598112911878420398985276363155403757940967744725341 1173191303174128400871635730733342824203033961401359706138799509823345072590 2681723292980479065941524994533088909881753791470941161552237671565886280807 1261016346386165076164081575055581419697637134063327407430274961830050197107 2513893296558998413395843618597265842523847960210984587243712321122478607106 320612352990854803345430778251071115934385452386458674023211075795544436535 2388242377052285570442781024020834712710835530976060691604665893397930237642 1699471758910633665756712506723874844724446995118990134197438765193055083473 1863263220888270345355535084078978866267845114882498687553710981420391409504 932912243392495208689117161881844955925453417797710388467175347011198667381 3300431868242979727964645172599253853137091432688343721072027325397967059877 751358430327724743839796189706575202038423761997958620362744208949470015775 1906914769626592679874679957939050852664735520172163253699738990383619718296 2061631840459654611669133406536873816810095108691912981607134056459439649874 1858660426056375921651275191900903424796972968071779403859979735958779509395 3035561748175659236322561841370131688419555337849191644995662365273947194988 2104800455054850310997395230672427616891586250974502907829525162499636967839 1773005542636144617849448878168783463032227804968706200470987783993520062152 2367482543653554991029184703437583534146560288555000975130762786610364064095 1198620028805722752356948096773245504009868248645109322620809245020369072767 1761765034412801691960506502620164352747328977197746071422789032886117529500 1579371334637732124624845006907001076204864963230369179325790662711505203744 2870512517225784989868984151619522704505263026547690947304227460015321908756 1032689821999187332187311503783766265155706383070432399573109447337339623735 2160109944298226739543680484633156677954960439312971589986812647005870378444 2757181086842057055758425185702255672672468770260727593651774556865517416495 1998406786401530635489853064653957242544717780767960644184400924040376454008 3364390000324764254958451415918932234788730356582856250458626434690962647110 1507658388172016670251846769189626911725172631239915444152360608082790427548 1788918485076862121752309998615810660470865758245507427314825013662845991558 1649554609145673340069860347729280529500408922027983658062573269570564527096 3536865220839819935631441472452543040020859645472985021376510432994321004240 669720063445461171008044247681234890784277553835324410730585335247127439686 2425594017545751304330119784398037128187549764762069891647300243637348122706 958192430631283529931571854698018903617502820058796470737190097907098168228 3173635326931374949900060312397015218846481733465583755630148467026217171657 3547605561988192017954276402044493041688918338033524324185201034780422144471 2754239679785786044490989875302405402961803113553319647744774028389968854083 2331479735944143274219960049326360412883731748626378359448394697948145330884 2518246951049105477721631009741746133654947560655750093104822389120527831455 1319413715062678399875613226431645168173666598608228664075474108291027161726 441147041712285057420490555240937323311062820031662495620399280838720411115 3418444954592569783003571793680579612641404114355363534811690895465113988087 3061830414768187564417347161984796434946336799404567063798514854744492854531 826056347534026664349502405381960519557420347362891656542054036710193897760 1780090091843272174232399941502412296735021301159187691620731909199805139795 78878483106703129159270813024330194224303183712763708628307976950145886583 1137615560713993336514069732798042524290394677942255637409777243835542888992 1342272199261591495949776068537233567420188458659193366573093160716439196754 2819178662148603306133775530127011972959477735852410115900077018606887182028 3204501011268561774970586437634354100582305138939014239038793873650060705785 3594559551491288720593426943291519486906218612950808616458591099798413354100 1475483162661121427052099434387860507477164847246291405022560605552842926357 2346082476441765084772435010210875686148039289072483639760434154232724263459 2622910004019310086644152815184924867820268620486703643612626238096676446616 823134802574916200467806474738246252420573948425168165034046998136633969649 3311445261915985655283437276617102825976601310645947453228962047820860554912 2446317031363762890098646146377804202286046978427599303491456626735949119721 966707676491865826964759419111616418740607092933061715380975295850879320905 1976258574736934555373187617790693623492612425835492705598033919122989580674 2968432660021238202432273802102970520388861011994952515508825450949247562811 1235154097532033029349521651160346521587108287654752088790217837323542455445 3098627657968103457659800894173535829124449603797198886192550732965638807065 2079692725461564305266485925457640308139349079137620515879773078683717109173 3304282769661266834130852888586024469400949489034463001092648186871254445243 2590563515244710765567719099309171514307195779090968733936673635727642109904 1053459528032642904605369773616564492233964919292608373520824913122092729539 1526873621825720191637026090122227684901306509695337610759462779296873763003 1268156492269337721738927247833853074218524866493312686777298771454233345345 894037719359050010298054571802188828912716183999087382628873584139332048421 83135538741455185411800872222302445237501921540348130551108295776348361251 3145265212351955580112467512365730149205242847305148343083572081780681328915 1042845074993077941108202321034254858826680750933285657501386631460450164650 3240959729816718249296119125811435930675114946103274582571861919361309705224 170250681976820170541484556835402632350591000746673770720542367366258549076 2874567471504357557047696093132158308832960300086258549305829381733376511566 121735440860827272559394975898399180888684091768403922382010427041621221152 3153492670624975302772877718585493894895385879693622805226255017267376421284 2891796273924437218320759997372617590498888598980981950350335330327537084170 2125475836388287529607111928087201030072314222336698805474552224927510707532 1315708697872432728918991283619266318711960266683671020334956574022103167561 3101968687312016587731886843799117043691919592879798748573108955403188166649 1237708506928984773668046154493873014754367000891409815370587628361215498485 625562187429663145447705869984276615344522875066614488398430828907907467941 3200028900772358910270703509054147904749245217715180639692303367752114228511 3320435401726437830719431621449960737949684705489127218103214128102706493250 1085247364844884268197132344226865802654268231671532653196270113727443124507 384777334 70 70 1994465818700409197622561476185017920337500387491881804958193243878488488595 2770964406815742396231805579002594838574136363972785947448179691067238164396 3186440729402563907111997105021065789265441198021952656456431443062656096242 2187072162174522666588830881824999487011525590610148236142558166951712568035 3443093941503536939531801311296743351812437651989321238042305955599770917886 2677005960537641975954916708095056876754506073519917619755329085494898507405 3485375315953746133596964912495689396889979971852371263354688841239830778660 3221063105856140655406229915235126969304717507227144308140114895042107036109 3354333993755224496409929961984567593687463541546718883027900455313113415771 2016490760304802969253863810805273677466940285214532342379374229347525241971 525778286003178497204984003874006032972569827056492378519943781479001028962 322897761554279442279963540860658662565311689557651683293013919839349413871 2421104894669073692577237208278434731028051191184970535530288279692938209557 3377857455247199915925472168190965223298710357983463392781025295256351250783 820455314692619058801592453886293119518421939817862301465124779027223766341 842086152944228138773498064208004776059548471823134420819193067089175760396 1353124687901563542519974245592861904087632472829636668789236001217669757683 222453187703759222872444542637281182701507999875836739831162820314724644572 1764395332372707048399988911335841474226161266368799476317906177560467409050 705877231105983959384367589495999968121052479331645600119462017381757413615 1828706832156983810173131612730906456315522221937626024197353939875459840118 2270901780121150285514303468546375466653735426937642616805979377902063233617 1908834701612378865243535085176928657320847202636155375619565272685325224652 1082670118053061565881206750292930265111898265795394716063650134068172874436 2123641006541325961915277436592244967040133813869210315777422608435381390073 379829723806727675154041840119325830191742933801251565755463654625769630764 2503545150609073870271359716997399320304712220216307147123766434185062226583 2148661056115255831735923831571500608420428979537433301037022446299938497670 2265751977820844349543538897261142408524726425561062584439311590351236786030 2309104323966317386372246687056926830754682166047543560898364357027220069607 90489592161622006351806928889537593539159725192343528134437067463213267854 1737197703568189806240919977242532300692621534071151290287128198415458780912 2128988046236265498146430061527904102981631906537042270899546198130685863592 1558773423003464742785927603848227478635968047543687295176563673615190725833 400329102687788368337866873619648458697754176938650089524054652484511259741 681005177874355703581645822184454507604059643614055433003490341566754834464 1250890933472728907164263537995113226866562622894566658101703178643637413036 2236758125529077381710245259130626972765914138706738241427972298203552221401 1979562341409602964122000693275657950274463942910019939444854539542670895849 2337129712393276567260287412493397959821266609036401731835551992071391553057 3193350694002109435968034646905187789303533936735080469079795111609879039738 510859627248603653987808190965096744592193136630224377562737770894689796376 2857168089698335404277819720735625261794271432643155015990658358644719299893 1407945184351242195620181469828609062269038549652198471886404275971847315833 2039105339972490554203619950055749850928051502044927875121346441901646207136 3029827813552222345441591376360394214311656747880124281375286105379866722641 2396106104287766535178260603992223891268708698793743087586359234779304207281 3596197168073495371733343612644272883956453793119914949612820268946591750436 2484126503406670620234501281608974085825056263107520068443055365953376975860 846645259146548508884928930904570219912928715862119053049706653329043011283 1067851829018853235846545235291275285923696021611766623446885382396930239834 985121865157689934069644722476491011816102082713333326098041335519346102074 2841180645806952106625673954806527899056973171125395869810713127549870201550 2618396309957741787705093129549867519145207590632243093010957433789868900177 640581911451568098399233929159174424432988213392973888305417065093481154938 3019686917515108010546174837873847420615157682279915536860437653452892849051 1376023114625666386586549608319547786352025493937094825694732287698520930038 1258591914645856126537333037038922707441756833882369614680280700737496377616 565073971480337729737736262739074191368371076539116765415100568898242031502 3040763720367647036608426333837221563738577919855642853482009231753288114416 1550827814738756653956015647582151702949441924563494746979000434818413237658 201183997609892646962848892056923267902317897658640512160542218577531693686 1197357828124267389653217928518308238498593359395428327552756941967620540262 175006415718975057194741837594687600139651685500871349684423979983358564530 3016718290868672313026443181335451486495757252579722910388539163036052554716 1055448994115183381398747194145820895369102781746761637755658304742686538156 1203213334939719635870560526540012596351073272445439080293101599796698389685 3328368037477652940650675123656186591239698354174911118627375366634394995199 2611017317329984110841413481002768139727037752229056911622358456871705212347 612604574863684369738180555407984524715420773448330387091627265500739640608 30 30 1500888393519824672175042740335300145128721161014657679467423172159044215418 3114914251388326662610463445084790800505551394264393379672627813463853875398 3083591639795857565345415667084490368492916928653876929483190823256885364237 2554867824688776321773123082631443686960830014452113385908634193264525664963 1324221197679751391358871108249825668024033168477969162464100472346804358649 1046499039309297791577693706895783130313897390393512358507486979611278290838 2359653254154912689961281381854942175315445259561610733364196169287564731458 90447453667133594006941993035168207615283977974235269292277360653137432030 1291261667033589592268163506494040400035011012837321211976645355700888588458 2382765760989089627203667523300434395717135779095246512151843861937164245350 435227441614636419015713555167969247987203222035530338130284968585220368339 44901831631293532272224799590755757338742025610792641772350478872782065933 2442429763970018819801645282379014477658930536351808615604275555021253233869 153221129374348644691486620533122532492753734376393012538421218502638302453 3495499421817329066849759910670505412729186903923191792825549702620900722080 1765165586234623570742691572001162791644325313852683569386104549749374895070 2980734089943347781847904453522372906018806123750221505879784832315748408706 57857195422905479637739328241713201099953308215848176467500166752903707795 596102516621423548923913192326598428378481990755712220142140976337001284543 1725000850483003095473761565679506746765970448689410754565580882876716784621 2441207834010308686050320530223582537225445142611450645329701199781433826133 3327292236714378977588415763366495580600349733353160450425814059049256745524 2927968445227796184098155041440343620951166419736685503144829791225514180957 771410895932378704065494264751843849845298285516974237522236870942564283385 270920204477123697564634223916784002930000094959758166942930672898600967336 1196968479631477654157048146337776386420888865394991721376652626607429939460 1878799472310056754121165157337509874862303360447457856497036804474463709751 1133050478023397074463876768348634572969447674045677034776038682600409710903 2847209162913890152566118459168044591497810770745782712026232498388984887586 3105175194537597424517392956251868696192436408247473178438479455573761262589 157 157 597071559053546614676102269369670552982907844856560224998455821721927123519 193427664592279464666373675580283820573099677050171204346379403009383642150 3200938296107714157335142301282398759178715679281346825221802246228952561179 154969806467670030085816691917649710823238227494295438717240494466451628885 2134460474494105623175096295463252733836367004278458646428629992816638991901 2352076579793610663709338839377391548690060200209773251466269958837827948932 1779514093056014637326780867781470816860469208805364331720631492058651057389 2002984471774407561128905995252789047942101220803302238881815103294057458945 2472890804431287143269960759888172604717104288413328326310646774180738561625 3415789705048065084618422323093579498856332488920139653749663587904977076115 2546179090891534494264365391730147548669779338828813831019868920861271788340 1776187530272198606609331853347839961236035361863137283071797231674946793556 3544238627796850719716584142211452155779365981700005222905786045817272485435 184671869416209004101651517087830864077376649370420768318068860964416686516 2592127262918482680038241621579744908672422770549366224568054797476786228287 3527684920172072935895834559623021084102729120311648941546202521683100433386 696131350020764816721935512493791652785089910080811438569823271453403608672 3200420488645482173147960346248972873218957878471071738177752988319967905700 1197399853025651944987648687117735959722438799349935327662299544286878636466 907699022759964878860305607361890436583954234974290449415343858955344635869 468150610014268299861640178867245522612161035676481080124161863228610772379 1002614712765721094102375899428561642192297109780421934001323640859663406817 603035749657323708811368371898796460300433213160695193424435612410005069245 3562543820846023031953460271363841347431107670791902654523533832090126696322 2476018604500033253459788581943058382063427859966783857999113101466361153484 3464368942454597023260686075797315976027056038577091723170667889585232272566 1817336235848251456047754007722626545962759838279492449106761446834783065107 2469712414010921925719554087325441305194346094390676689176189549985071901724 865354761765900608105407974530419879708594407689981633158551759681457490661 2880047357199164215991571406005728738836290807920680453851451015364932401333 1904537872820203726549705311779357788731720301948607383020719945389505740592 2101183023210282042493965667711340257267089096318540185604249185484798173028 725190862565873058695212510763940776054929338493583830636426449208275227528 2190870351779442345438480449639243486543978050111058214425655051807873062636 2956612478245504069382738726103784097106883684569175380032145809034453838394 3513346155860863295806245233770376479022091762742923345385941741478223162260 2015772837218056509274036193806686517929811300044736781544549359029553370692 1794874481336975017674635483090769052915272817259912769465626210838069019525 2023464540230305353200132036683583832140976131366782835537403642294719880551 3220332795554151167869675424281092818091911548926047889296441949920232883206 2995066637130103020807145815517597179748030607046342028729234378083969168830 808018414427328931958968573931974478461794212149618421381375352458156453845 2908934065473592551272279907032420968799314583896806205142847859607351568511 2733139703243421076115776688538129339756789167561811566087866283901041933543 1401404770194597642033198737984728407795421195897307990033471073454867991574 3508396172747492320248860008663705333162530440574248429667241582700076702381 529732937778602361120800413733047459981448334740239778879884519440521482601 2447578539876720629800784448351075101704319375132567709313359386677426799839 3029992340810564228330318415244754249955222246840136948492926953328967507052 3455549996570430995970926490821058733500484435895802743649237051870475655034 2736351952248876946885658680766985268033833639704166473942479601191996675695 3231825686309771133681069430202616293768281696649764846039853596968389798500 1916162176380567887148150333742364118209220480513041840054334139517376487360 2928191693666844701736545382354270553581272562924098230404263638050656086256 1490920179033225844343986873769717653633267666482674088770115940376691226570 3040647858478239488162478847822685765597781179453159490002259843220107675369 3370569267175438315263073585378606981649250177609245498098597008119869373121 898525321916051113317884385539851791318541592501948838840136142329441859482 1743681596509165449605129485178800778637181749089804056885901338902104106732 3347464600478091139741462475871236544829321024293864538327697081412108054255 1565117317877186053473727938567872855312277666274155511587504206404584104067 2109997368221576512664594217681190572714882274489610868435196116755468362089 2721834566885183831424001577987249705595675299862925567617879649184430793159 2110115753052964511169308598490628094732677586475811634906213008291552325085 1513778498541851549855388323351329091137901707878531028366284537101605702508 2842219094662499675605672604375961204621497801125571561365392851153228695696 3256456430192108823715189143181421784735985392128209784271806047833998935865 1530439260707076870794156627055305522447632525398063675374885588884108082024 300908993761702373986968205098766039555557710603941695971507573310840961674 10034444841428657333008005943538409140256191668882574360156323631530933806 3471016583229597854245770768810170813390697912456286558435038113848009918603 3567730395070843487070073656785948606741201407077444518702957103354353424332 1696710989779121129440430720807582476586806275998442700677565777219919190557 2928725105639609555553396659691782278347314316911610079314747448354519991003 1459711598792142718169497974567193470964577233677627420717042334060114086757 567391571926247985008909285108155015243364984048362222070911069446572053445 1402126861699176253914128850195373800686904506639294165659497667124689971934 439169604928084952713538812551518750166907518985055087726896760343455179260 541173578467054635677204573537476100340057214242190405848453448252644399839 2393603770634574132993083983703642788896711769248621089554557308902743292887 3356915804426708301223175357595384683837016295912787447197925056425197869215 988402830878071319073671073471417836462357783301657363601376317087671049897 3312801035570261046928351498894131002957215012327385541110243706764810606766 1381850053674113376122391562598049773411941211789682144606806778798983388321 3287769493919959313298196324719748630873636535858680539727363533633872296779 911204813544901888299615607572645391633899198338803769137571230640631673360 2578373024026106629066959682048949666661175813186532934047349239171386768339 216914662078782652004285023654917673083739509526448765231237193596573328956 1594016860565521934020194092298373732258111346910308301831199943426900949035 2608400381737072045026095063933259885471924255227110099531610458138949679665 2442322365620069895427529641012200884834510430063480276819222715098985686391 2293762756994590136460409739141643550481025401889095759347286698785606981870 1528099718021031393878885050326906587868117652078182869938987179865020035445 599708191910301219356052061948415593413547671704538747608694139011859198315 1123496903275570310222464475618202746348635551788064416260536892849032484623 3492041330625960375241970644480575933702225571726463237492583397933501836151 3516990091008121648216011538776728432670175913831130919401075456717736247173 444652059376968258425145358358034362021865495870090957700986871878399317870 2172709532739410961231759059970346671903687364696251093582864158608970653797 2973950916618600490802292194768152966112978554937006542738959671413718629103 3190353748433166379043495274054376330293069490998808912453723690114235215874 1035930623253942726428924896252850259127713109229566264963759528263726157601 3568368384213679725001116534927545132760251595764795475821422703800489150588 1330310650252924687600747854976214708577156558323797525347676991876608143810 253809437464708175392704835093869002513731249534625268183911879049914478985 1042391195560919853928199972119661099654264835671312467223839247566904493081 3464884421194696437919603975060171955659413683297344700039195878640004034622 2586243683594805995606864514879176272625463918861716643965734031683791979977 3093759252076855070497556538752773796521581405086753477682879560771959612492 229307897984595992484782787968789834787354807309290883945734911249645928256 1550834608038120435926654538704259300699099219872537606107801538263939588197 1971182431754489165971240917564083640382743761019985575911152264501599236714 709129182827110437519085600845278440793735164040863807671389770624471037377 1435819810631995091478865699432347231057306791569218053275525736279432321740 2539067634826347769186474084150368057094768629884430697398296363890310294171 3519747828000934058169759912078013780493134808042986406793676669834678926561 643183112558370791636701733062911013652161193535714135099513404432520914250 932605273496725474697223622874881561973302736882279192012647926319475412045 947705824199387003410987321724510717333340766011675326539701846021969236798 2541682705808503479984910769485440977821028680154798535246992098220250555536 1680490144159387802867253685795117225274426950718906695783408873730459051620 203209988426769292645434018623960709807022174811611750868678713275754820484 3244384711867798787490388316214562393549868915998459976658387772265810322743 2364071980252532116218279113815770942207943409657512342490899336190608362611 509260098696687966143537232661742402511987390547261737033561191186761720926 1216990730751141769937210299210982136411212092929632115652146267061877392687 1757065311455668357555263758595076484781796403938891303974037111232611104365 1220450866867396378822048147589379326671611056101339373820472056770246420641 1430702665833996027092417621536676585446781854924647184481461870178103348811 2183285054331593660600261170473192624241217654033882507606601523447158719270 1722927747597051401979681071102169845662860335066330528327422591996249912112 2837089436012968832056078282736580866629568770864751327623283864872463161556 2701905949481388271865825241388154219606276334209442027243099005266165003655 670258216550869082324454271955990240728820232212224369926131372739944488722 289024152769584052214451915585538349562125839916932400395025640964840768225 2705078220179495927197336603591161348180979972595810928376092169993570730394 489364828580901464652366307731257429890863083832496382650674735761672673788 2461345673455440789745159577770591682221715799548122478025800154637546977002 3214124402000837952090562216606497509183938772389188611958975061415510946304 1590194245574475359889113518569003504383715911477613610097654298878067588912 1175232372628872501999931490999481720170239957848733069752904024889946712102 3084577981494309968044686014703639205073927516408926538066869421040588705648 2720757931710655307986584012374688793540560350795673448651848518465209529553 2832814018696972496428448876307563051982788138208295369272212432625307982960 755911391629332081851753202241196592916980703043991082235045183859146731720 1544853660747458642793815689082660640689175022498211576152641377453898995465 239841672883027535991012358026673471198821768640127433415700381486086149973 2806246682900587736289825441257727371580798036044960678381855072288863607633 659882841434461771117758279376889300849938167387092576926300956176168953074 1571371497674572548910119706132792549073391172058297087418359870067496850287 3271540378801760090710201330817419209299168023925956536172434655509611018707 3378584750070191316388003691537056835511483895794891711364640273565575936436 625473838460294928056716290572893092582758240233804248604940759265018002844 193959355793566324031146097645779246490023361375616887683574382101605249848 1915554636243467079295399047296660941860683298354255268580040891526951690218 1190753038193336932563645454759638031836719743030703410389613097555540318212 315180466419124365176316785746284387644291119217532482503346435607705972047 157 157 2763189339894821909760820906977599693363470805325642299721284566807696004575 1911687255864387204154467117329106555246845445180197726702600853753259298717 3057938299236067365799339912747440564483830540370916538533596371948158720335 117013421361860042600958138633006023372377599010042176827419218288147979380 3470962559775691798585044091929625496546770268342685088601742748133303190382 1161396626458116758280736596622804384380811902081486481479618325248604241100 1223251102191492253906391757255887458154901777624029833692293544798695118761 3599290024282550609625903295322177733785161544665999243688262169954925113735 923435110687549389373843542861604455920595230613760364465605350706524829819 109620686725659288968220575309235710326037307207371100104446649350971960640 1688971987611692815659564379537963175958520138750254691214345253818320390462 144943997155768338911932798619575864738466447106770882929269793049050717891 242660848654413389612704083957946958253708004855454478052973936029429336408 3090119102005024404230294741314363173892303559039644231626089533489135381976 600282625984540700871426972177213596844552213933532728712592879149644071105 3438055304747859068687117968774049124669259041203622752069621775826037383528 2311319385899192805093940773021390611752116782529361408848461712884041377754 1724716750415373748163908166656097768361718997927188595221717559388877392229 666250708498060147945242025741056571022260102093589068447994610744479425990 3402445729850467543953488036986588805502680985355989702784534138976088016996 611937044132700647620163510195597194853245329235060729057670103801342520909 468005700082341337604412147344627121079931252531585759862091551878383017964 2775570718122944818869217386352597829510091488449741915966188479993011661905 1128388847969750307644055227527405198750576959427229729865185216336653786113 1384942485180803683852675628754902514922027650785462846910721407630731820593 1561249851181430209275247748243114234905057533772521131647111622586133967697 2418255584829302494778021963692754484275999483605304587729354036280404593091 2308924455421732443638574298990066888574095130440966756360159803984678579976 2544664017436499083533813567656381625711096895868731481307499307346015533850 1043485085059083431764912760105292624145135819272944810952262794959256552395 3162689313754666068856435598832369818095276453117288076251920914835024195370 3057323227080468612811704974562418980041820665162111356955336569470156560605 2017511371282517821440981104084204649351867146155196452281287358788635679415 2160954117153465705141336851517429917819122603183885993838789760349889246292 3586197538860077042279406775857691968467685702675417481614238780597529447160 2397209056291445281073445751354999755158452479573083332476594859820401822779 2439727729694383270320689588511124711831359665122730222933436810913606490688 2802175977754502852682712542867577110151768581693780700839981874210564413948 2551454291425594851532893257503314985312789349869264237278529538737964251673 2579116801024771681419289954698772840949985261264972346366377325067462875939 3106552706111328275476090376925493376278989181130155905332556255238298690651 150765728134399682260489672908968132956589938555133945961616383548919026862 1745048903383554759950520656402574540792534616692736576779692549254391052958 1439865537400500880459979649500682301479915548866130614065388266747059317804 3407392570751911457204256985739669169845245889832189018367451022745013724987 2630568670409761405557624177845381722376698984943435469958003948105254793694 157486683939098474920432221638253377121841427831113970264033111286363866414 1036885997354007352897233369621207304470815444435541971818051843751792709358 1189855570119786890575269720597277652706889906133993449841277714430543757429 1042279743109957438197983046102312255440806176270161313082054527640310921631 3460644410477601039707370228853544001402312395429792017793768618572972353593 2746059491037752174670483826840707570848249522398486058378461352888049317152 3275342649868044679526163839316672779576190136033955505258832253705508296765 3600386605626269934805456802203023344695896514974391894481297262547911138893 137375558991550486001362219951360378190210620457090395532880681810519444832 138300613650002072175152403340223776118124586545610957388637737875156421750 1368037673579037770563083125921277000915262414316984513723308317029838301358 1372543506724210049850766560135923910424613637558076447997010205694277609869 835182317953366633207526294133354173792451273419524466062350719698219342954 1884869310712664553038904353409345254662066934443224221675549689089034041375 1529330922656316721282264042372460637316512269453848661693539495264367491826 2507648959534153164124920241051288322271132686658386400368815204442035319535 3407664344326098062136467640948732495643410648749806620882321700657998013463 2005161815417757125348763881369641912876369122058730374171111775697914754665 325445691585480953327344730939966691184750482877914408305166756652523196848 1264815959323149049483244851791828458402923667517259418948873926336829031102 1730034054516983764110594372653445083629575133370410387586952759532957201354 3101965261104571047332284214460398805449316428356840822635758938870580698558 432260921590424078837559312335391669243112514146118882869023049865767235692 2559370135711101402034351453766732093086640967524785307321986058223594353304 2307823310545005265872158300954491921902949244635540562309997134964084529578 1003528616586226594932559951105622479779221707455618075556901495050054641489 778384309118787118938880094813195447472675971365188408455804901331322797514 2390837587911781980551337114922743800084690480238172543129026910460103218653 2938981292349006511136886901023972772593325389739304937585726941646471004593 1954396485850378289932735680724591778410625068975637484860513793451335102990 1498935726991876068411380198618601367396497408471267801845642995073671152412 2249782283406902499279923609303076435132101365705055071734744298000741062790 63304087544348852617691487078061460726131824051891694045967679017954680694 2633097443102395338637696569892116431417864685703826984430548247460648198593 2411948950793423398736819841756160760583581408152604613399220580147264723389 1811760090778326402983231156814555446060071736196895908838529254120993486684 1268890412854777450912164817320299798804381739454934339955685564981423737733 1205831144611633216117463632024256652777864495419123489851832749809852930274 2541808602267403389680448713388927393613922755924952120728914285182857230542 2117136713186506560564350159459752049655023233168706293077653185578224698073 1764830207910775768070954910375750614293821649913023595244100558394225381887 2490458502932556832648481998106778638688378600972262970431618229161406852709 3189204643478745791224973425541686439959116074111737494708441801128424220920 1737561206905376775419550163393062271123815348447911674921427021838016364161 1497167137608111414677533886905438779694217314057589457221303035026490731675 1211961615616761197480049714621999433681761840778014138656176564961164173066 14115837994715696520544539468888916160246147151128070928657810246834892656 44141384123054739613449468911296728028669876226767641460578511749017595980 2804359637087013899402087055422773600769567341628936421385390940118291276262 489418529031729892933777127000190502016851976798269445583227482342040599017 3178427648571387122502928729967158402844946306781915499872106457913582656146 934916417318082546975989864970599853811665984372449086417000013134829677765 2383148031609037848889343926151444239853881078357327050608519022066121743627 6426424971412836022949482054258011442077287949641988676720615644321215309 1037087897391709256204795974088331179032637553434945732158544784677272080645 3508119341934768142027696556771013081411229354640841820300926669452489707369 3222742237326153577508906062984756293009152036215772898149489629955538346921 135198561230875270825952602166163689466843840562174754490220453014295570346 2973738971402502085354429760013704229421816767300188548516991031978203895213 2776944474115428517220862474914243203107591083119248340809107167475640735452 1565913164611645615882411446403837923976723305809740331949378794768108589400 3168132117541348333101883649293666785684421173807973395482403661759969481269 3503720956845409512247971826139224665311697521141672007032353134126650282939 809276715613560600694927790565376613986158110291102594442559806881234793875 2552528717374786768223052183208666023147332607966589216444386115304035875700 2554204426425984197301986640960106902581222904104018605499585646213789119593 1601340707908074589699419255190757046233869939290830902871075303851840625905 2860983989581570537028256622683386564852761450552486992701697356490424225799 8827092889837194152169903895613075525569214074485594999564838062914608453 626392905290707089648014272704244944901149311644174425947688970913701172487 704956565404887066882707930833900427459022442977362615136903027860234119365 927315649825559885857245747665750230080220483100376320167067439914100692257 479598864590527152936040322586388817350581034532791621994987432383785485047 1055657746098136254757033460975251412022551425028774975345551151493486390557 1640656924953795151320685004015250236514847683803259255939688575163567934966 432647542666008016772019893949416766422616430994302446114318904703342027171 2294600799317838926929653715517523826682548077006127844960445100053948962988 2597190153158239323631808203312111082764316606374800683611047608660520345633 2708533741254038775055636521628321402767296756957875277849753392773797765438 1157063566434167479086692826382923828433431620744010853118092372294960670890 2937965464854810920953929089479519264365686314836494672339307594391286140279 3520163146890279517884127600525219983371485507026855413637000717152824358399 1150286900335870097041135171686837471793027385210478132693964558248928430612 1148701358167891905780023152814889017428108775518730501154999943468861761234 1698229751435471627898224783527792904352349800578638636217096662147111882211 1973162300370715540391023603523936252950308293648450776514453024438475264117 3104443542580757247871536787782988137665117382301719547478792030897973869935 3146378776855391153136748919686492551774067552487645732731130744802600577766 584389974561262583864085245608376716196987156832437897190166276900079097872 1609173160898559180279438544909641766759627028480677389314983286587068862983 835209096740297502647250662209506958833645639994836602236750586235404047933 630080484089350306711779658464872002468341734508214625017393224360929740707 2241879922198976326449660231762977862782816317524708612568290306991756460012 2182512475202748646039399712660360662042006584303947046411560338946247934946 960434595326218251833752041827090141637408866952803781375817316550460618514 195079987885296103075748925069370113497989407703073715449367103391198071785 770253798505708602921928273313847571752301498793972308394599081995232707564 164868095335459215696378315174773387534926342819769186079531653262005828806 291496331200652748853316835318686486895233613708838455141967009837782278217 2590130935434252163915403350782837843797557503553655096295244759548792498073 2836191223025180380351392046361250418587949565700644733511440278177225391796 1503024011852849809575087269518806583759569500131974697663374955232809415911 749673966683688768331031583885768911412500015602155460488726507709168829784 1346989564144253674740655400921226588202032836932170340521385911612505809792 3353295648298483836163829672322218201813138474328020738684303074817363641688 2356302747521500647026624844030680692364445500783533270029052564827866264837 2460860633996501702415912630317643554919480550778979542097940666039369109247 1325651811315657728365944811411443988201077060313957437165468718000161327014 2262748079268634911158208353913636545215477594418329244435946739293789596712 3230967026129886934959528352269786997138285375118511694303147840981625845840 3272418126587792976932736858591603459753826565421584366118114559106265201810 20 20 2974895342237541643567829350644780014962487535108580767976458027281419406029 302392049361131862658854700727902565492114031503365742404161279800564020723 2344047613345897223196210676799321276076981872791856991038913918560809199762 374021656279694995806779662361646261911840287802924162102811975513732763639 890653581259539631271006488527571369670298568112511378495545711651961628787 3230031756224020535988135424323146524879093942167406360237158541381502268963 1949139530503223373455045391078393004671286526661154670378480619452708756064 3006353107165193795525303396584945761986873657200305931710642514421236979601 2520915757817231470712509467229809107554427401007435221545824422881557470474 1833515411381291509491187418834621793826472333932321993225312218474351129071 238932339669366896130093579892807520635000157343243775343043291357500287611 159043989906137167944729700689116169809156836712073905780325579869108216012 2635127887185039202273637780698081484266891037256536599311895952380344444292 1716495741601865261582729803896188919505488539985660338597533465789928803872 85066965898193347995497959677592535881443019627180510816452726307363744349 1796770015667854903506911413316344287189131688637840667817064267303486145486 2214939746787289928655260667359902849838822353262873700689735249750743274516 2719239167062223734705996853724400218849462611866915822368579643506842125249 3273383341334668496714246984892845741773041111578303405529722981791911733139 2098467870180838776062566580323688344595258490461926634200941771223992555040 157 157 1523226752758515473128169096933096369600538754617117716719348204559327997785 2173278843302726524389830380745651047318002701628612277171689014121460744680 3041406635036065909486657461237923797021655440009383870362091971687452101223 154967776440333099100955599143069938685564668477949337855699160726485661820 2877869665755601695420144861584497196201728425752020380659274448826171717965 1264474698692594007888830226156086179820618538635214583687163862376512916810 1955930016654445324109041026568513234949101047675961995253025334779930926035 1905135808879919963670300323339673815594978890689198195118990433841866910462 2707522760643759865901060290058203044976293982622875888420456290282670000881 2631160439645458154403045987392277759239792752717546562393984034071623304380 2594116489599627123522244262273954276696327289823838565070411346475514427385 638903128600465675017136744828618851971695978480134289975824874624963346867 891296456461165144829151872458215818455612301827858427521629028125995678745 276673440862127974459054794337718577145615652826370084536682591513638796372 1108647508559639566255038624764164506021678923318260846639449991657520658990 494654412424927548921857569328727231997872759384222314363894017127584939856 1180431088897625577670806474540619131676074904507423346022622575590858235668 1864718155886332902260623007133543197594200150402854419486055349366526828691 2438900816097435455596620971687882816750407765218894228955032531828030196055 98188463743121359609506422426895834916871069258486416774878583700525182616 1316720729349611224924895765189281110243692741228820800690837791144389273831 1713566177597322369362939975126797695452238401012981158115916385313223255703 2576907054977195326418236468371527419226608639801583698025981211004929086767 1440224554601233033863890817108224056670250865135065637796916256067736932778 43657797030067105561737680330201168235403769132177015895241749601423781055 1692474033908779020957244497151825950130795128545507964736104879877003094116 1062792154683138203433313061303384022614980195128989136522604087206094290593 1885773561860953574142742671625731827584060683594062509763710021481534307486 3502319274406482978733874055384364647432629730432187100410523604435042453339 2301898717235234349357835500322626346976382090958174430476370686243938455805 3227059870483468119386101006014980326844143584319689006948800657998657408243 1378620929202789488424565506744438642170278620888905039798942629916946048459 158516149196092446422613481500591145730013896189486463830867326541930229572 2150651419655435164976932590230352641297511382670784533487062930456191215244 1346378468612297556913105448898575200110042331363294760716853959118820267676 1955316764416359104924781025343902001637882862350641006824022345941690112367 626352134987808969318317302973797547222405561370420340428261984388283218082 2507126208775555851673982518471601344141368933506075637854184854544004599865 2802878447011283448099708475677806373354409188669182745290981767685901390774 1003063279213949960666103071865350148341465396402480238350515436601293690969 2021885196791775037309777972775616008582717436337471961562392787944192819700 449386679826446906860446049532945374673309340491751723729903991301478132443 1153487160652123785174435485569738386096415614200400464849473894025086707675 1461776233622351089828646004161413836280709135645322461150905803904642751271 2628086203841876566631513684911603625639560354043148235724245697829045456400 2240972637498222841955814086475976545395499246376723465159823174916867221992 3614655345724434363554515227144414569939787602759540195824707736163910708113 2299700839937612016685542453162327481238130239735247084689723721020975401952 818064667708846970160309712734408713569735533443627977077023741625614419510 236449713667470301978214504547126314751294298547197403379769983105858261711 2898643899883536273929939876662614489020571277892106757549659267227656961325 2087997316155471083959475002719671749620280353676132939334486384299347258533 1523817926581897164528041853489313849521616110232043663344563044357221221579 649186071790283725770551092585719337673457540171463924883471577942114176979 2314623603149232535910377853551166962510453585352099806541062576104086187380 579320555977904029880976187403895754781687938348856133970640927488410030977 2148155145426878999407009420794869953354354246788256800807387974784191806507 2020758400214442110889689781926344331316767833981502887362936501063102588040 96327161581960268357433707794419538257211005500764508779771019991979952707 1214145936908760753026886442537332829700317321504861854838294436147219742991 1439407269664071287761577869625066098769509152685643900362060058766588128433 1463101286332177569680782971660895126419499021978139740623701365120158342037 2930450645933176840696676737920959220891499667240113636806485732738312229204 1854597646388219866081526912194599103966282238027625899763435676478469049757 753217947925573273618842975095087072488581388579954006996478633997327895910 1075580498750503134880429233815005701134367903246580009049272906921582409497 1615582414548568422104133791467945373392780239540881218886540075245091322369 2048948842604663995312002440894927825941683418843437941522793536932798293242 2399565650700931182893072626083571143493606216013268159384074144209546808183 3270901397309817725386030035272089993806538055537526186606760922679820804181 76672003627319151811322600661777979247776060285942353846685062784316263760 2007515431451069601254037132774358779043625809542230659311104380841643190741 2931701507032608949967259385062030238827316683217573760973987321707003186519 108688409332791587578555683617794980983260104866859998808053146281893227988 2757104081903519242859778745981395876194545360649781924617020788840799526138 1813783365171609799850382609779284043624546236417131560416850343227759345031 108946184506002514155639164007226405620002509069098721926447718072308229320 209740424862579619079112386470858691897855852525738586852028719969033679515 3163044515702911410782198556835928747063371558613563263838852942787651412478 619384443725308092072488803705862888589758747921924943836194278178329780294 1162272734571630530470028859574864984697583562247306428697444139321666705944 765883476681219161196804456176426626924280826406864456151885287604405203276 2775807860672976894541478819457032176988323427540333482728873234400509360511 833384206161521578825777787699166802057355791447095135615298239945644345789 427698336492158621235114406384506315956436465075675433057143334935267717356 1756787519948835005178556415640919597458098498031325865946513256541542023930 3395096179562290957096767848689015207272880669560128688684628576813691061376 369819261521508355802215614485479346814131738996470508824442977772170681815 2205133127272919767125206961874945430909707060579467373667142797334332481840 579350168618611960517004360410358995194065988874421137068178119248776860184 1975352621744387568643635282067341330884369573290920694684111726538655118345 2817720786469310822199712804029407166029812208786203459201994514424608260757 3140310342160553632064330771940243708434261595602677968486856068338201101522 2447880201183707595456269065816640830073980121472867580373421387206321048579 2159842763138342901870864467058194724492142131348258016697979871005911586428 3336596493870484707321052613448700422676468461471440004511504711246997874685 2802831266513099007706226162097763051427221127540910517330963125049891691060 2694624519626049312156626111031490865485038117828563633749141392309748885108 3195647387780240267475609291497328287226169877781127395200129704347292025387 2535356784768091516512214976035503184000063402685376636827716544551567093717 1401554913426177857735705270060172710849499582643993212261226684517286606477 791706082958704609783322249665180387467852835881046278293441752145630872401 1529882369132559107857695029480710963052155001467873036387068105131509716761 2942014684365321472442626343025888434165727330734941225463504597919957518810 538945893882307198981134165433829316972698879798040206769872964249020409085 517293439641256359971405524039492786088189336886913687760073197068785515859 1425119112826044033092933241343168190189202966096395290783333776384037080342 3197205828003830399361124956300964422349621289089207509042577373697245928077 2108172297268026969662618663290279339003240824641321120750624619467391084069 1175342083197719505217907202215779812926777275674770359910170322354306546907 1092419512970831433241295480044141255215526242213908181600910761337839920178 3482311554924671780220623397044801649955933541435038194504656458567428789032 2957292731419777413344417923911967413301512843860094715626291931210458772357 3134551847171690754856751863668538931055316830717300421957032274020094533457 3066485427782518516713199568851962449982870019195592107986917725665562893408 2655691831791368866611494396538108833867579018404991575109007305760507850192 1508943670960252280132374365718929428206417066265724340576270423397668277323 51920050871167128406431476279793321374672202216564386054695792342261191366 2980882261016080670464887958175069844185381400313210546438807559991722623405 1662266612146761679561586101752163754625731842778225749069531314165382772985 2968165940547778936166889932125992166472100035533174115635474584447607454524 2901819999206571386971549577084215877353265383651646402941876502566937696523 3113647522644983724097454037447740366094531635099722425461641967180915112044 928737199438311375544778331762143893990091103766175851028518040364047187551 163013224298786587603665965584501983470025702721942349641134364618236049906 2720985913440808824590205484470805024428793592772287960392620346345018116115 692494364876246758872815244300028404135081192077781587136178233100214781165 1866060285501153069737818266919378311054164030181716999906357150051927984015 2487319198614698147221521705484399032727214603759872672081500116637905901928 558552366528516837570063075782698353732052791541417148701669901963384585011 899353266417326659064106915524338912503771682527490734642552727039419732814 1840004605366551545369642227315467605741647982508218884505399007376635713250 518073414806450039968476570235433696266947802010703202163636517568047077259 3020005863136221705702806449756505220649701814448974071825633490180614340366 1805471803580194856775963272909645169203545761459656238857522852130484467138 3077681162177598372038196052471671909124729185305449511415662818123283163438 2610659824835451366424038671327661345831076822476381129647485304754713901757 2916662040929412850696726539692695765962857433492307502848963773483453116346 1011506153777616038612007406428470438055583518011892416157833726262142643604 2413487576080987127628104096924449305135292124660874756793485665983264994121 2814251465097338626512713698137369125425220082562857161706470523223073821690 1118990257760992657271473475950000651712596506234981323571497466288733494137 849135959151596833618912099841741313337275542938286275670519278546332863514 1139532221407282506471085991908447717339643276786745625055178001019401858372 2777846326517462934865637071476395562027684197169677404380885569754356815884 1006868917481966445435591631874784979250039953133103049953080755405714591778 565478122316049644214907924648564747313870725897033089701726918604042511374 2436766798960236438411598924893727744935047917171453788790634631873290610979 2593055134356255696685392939823740622645786964632247319628120652833638293431 1512921896137061399851879901146615177182248519615912756938691056719365995593 676107537830198985459857093357697452150260090960449854034879454436273160279 1297317716020670488235697038493547131734658568355676395626420553630206564761 3204416659602465967362987150591667277876536657069107134280504991407153153106 276984481472607192370103436873164420821505777423327227336820720818871549050 1123140213622550242906190844417796497621013751639255814997722879688990301310 1869616065999419784451160727938969767250558600640895587913726793903979882325 3257901467073079387860595776917049504373534752225149439685962842376775289501 617 150 2374667954437854407447309067199627759426181676275737343679008757312511470939 863230759767030493924919354054881338152609810902181719876397446754059422582 2697465099622878772785785853195119389544158460397823384738131387166902868200 3519241321328298641491019952245831430427366481129025561455800591861467238606 1614639617443766935235219360925589801739734632309196722796242630602632431187 217218779123719200539195418571722849796052383987746909030347303793653062608 977064134723393753598437853968306901579357944952999913965258585343977111845 3215204362197253822121330851510401551454873304900934601303912980763680757135 2859749217411736701840414047714543280477080759357189957136955091718965923743 3313527369529140395454296008269245194031071348995956948384659048271811387103 803071415159825048268269827872073033828588919069965520608216552443571414508 954071908744474578765270873199138529046269543337205801843222212990499387107 2273767897424000898466291990606000458384605332743387942919400522705993206802 2029084636027130114690753105791773830660130093519884394937237125847620186149 1177189475475158872208905839987286513569809570993023366857125382637568348089 1931683954755729587678921319009249583155784862711008343702222209020910650805 716209107576778945872093622795039899096669059749246798459556510962974641755 2748677799631238215741246285337449642516551456239259835960567465569073507207 2134841565020652276825490101006463316795419321005551294054215781546726849780 2658297242561867839289478440124188450591379776181135662636473167540422947111 761938662615378561945002719229189761998434679506201845170204116282497205249 2908501026081512590416668129443080212538344554343373774537965346327582563061 2815986104765928708432580965659855234476684797878536619416155066192032252484 1427132888219343082147004636376622189783828627615843574717242541139266676775 55452020920314061971922262956358825467042454611031667532544745068281720630 1279945389733465920883341259228210537120563666076788556496793647895846632029 1101970176688058507372588040467364940751879960617743782092314942352550138953 1018694379437170940530724886214430872361380548476872399503716199527340868360 1189066683564899221747174918852481185844640714988796368306970470202523418567 2608541166585702130616936523189657669693997026124461128567623285356285017716 3266655663925481168526246995485517324148071118263854210239436931395153288157 1476592886999193749226728240006501216908138820718341273773192279632347043961 262270728241138263761962808858661398498334463629012855881579963805309048889 2238786601927249490478409474126537954747377031346972840757730964398010380473 2717930291823121771927307504576678589029751150541939275928987534755918468893 1782882310686808848049186171507573523382166957668198353636212531341929676222 3554539977707691415928915942163359199447369858330722863144496543101068518583 2336539980354889476671739300624043926108966846281092052479111941181795531566 1230335237689572687319011472769045931440271062433934716802812328322208844804 3333792954898851458649756027639992670701989935704116726188064405378919576937 3578553435913220974783237630827505112740787243448100738765389601070727393498 1461977695965008157833621993602421675688969898324196341411245667427073633552 206856966238317132149036533356118231388051530701782885361058905619414622631 339529840483614297447154208773383307825954559306308369462661834139525205974 1392487718926918979672975988542623253836189825608551465841845210559758240332 2401209943642115969841293837748409497428429398626649292914066947468289560355 3433440794719059783859645497920458539769587865208623413791587551461562367807 2566751164620253666172066312278458717444940355406727736785299259564490564241 1955840335168123757467746558952773117756555502866611969303812044176100991451 2866371172737737600951069789456977244688743490595193804779574931502297784268 483925491073211859025689856033780106664224430247616364879363125260142325055 973410328407500497936729445000852427766970409954356716788797368634634155440 959666736707311156404953131842543129022331031095249191004318444941383340955 2512348514716330609033009878895836822865819286587437024487844610139863562976 2996541236110647735541343288547255024944604660572468657404130177733185555826 1525218323717874160053579620818088987487808658751830286741450657113094983649 2899326196654277138140204966161258433648002716926180653573566301148624686424 1811030118876396018269079608969606178093591317382611155511454908508112479481 1329292784607135560163989385219117146743967576394379558646118209550272822033 1574562009487029561321368718887495889091889012509266556826597926424371579432 2501697767039619496851513514277069179057281481954280272641528992517447370872 1579637153560222973520926685484738073942382936040217448299666699540435457292 3039488527480033951696608975868408816399738686137197020500792511472723012054 666308545329233828262536026955544678502055447343581259607747848947648073262 655466393099638517008168942714109475340311464861216198208861693527089373401 2798578375675650994306221019566244013871314970712091057001475626658941008701 2881873767557131503821448856216322904210841457921127671854740022160476853311 1417787611402629015565246496627734368664978612197370124281712336877567215439 3124432502354069426118917867946772901049387325548936811039065770498506333140 2269706865261077685848100840052456161940065303358644391205202741360923940240 1053136034918855072388992867610389980172560194056288221210373022490465006375 1146390204531419474673660324682619393049368075079386085805287441507362933528 966865593788298067508824511134228863293935504827142144291950007893269175032 1439138811999273781036181556132186337149909425063781929433406601277832543494 3115225185696666868531098417765937522673857446905866496264993660948852146696 250997462479915686186827139219653478584653443978652516476122523983622598797 2215327704954624558934958464175409976551645132612622055377621867334006982561 1069213192888514986787195052464117219859079751796862029550905335976876042381 1827997738030884078067978619862644511166334770471555474949758681129748240538 168112661137895403072738486813093478934284108837857288477373579826639457281 3525023305469649623329016657685286758169177028172655518380514594894984297708 3563191083415280052307720508854768865516997670965297192962070782073148930306 436854589033292043537096370879935622803834387074289662076669120268913504223 1871990523059295771964564417561056901840952953564336309436469837175419718880 1804744512005932687771066152035063019365487078847886747941512883215601117068 3024832839107801818551179298534948466213831370744607871628124937620945796303 1392238306665910841582218437485851647745938813494717880251250895263974470174 3485872859221117468959181630541252283893592936074022063336659714520690021609 1267937691617248348258902018982874883249270015695698262310927795773685993897 1598839522729104929330826640918916602675822598712194230044071420248014839062 3342382961739111768211129885425265931677000075697431900163887747080609667602 831527534156045035054916389800345806329506672507231855183478875160617589570 3394202508155591836404447482064003163957315280029618072921110872487977331814 2483401482385871212007317071339073205959397986941856135276248791735920761914 304523088778704788551902530306267871967273530869407737043744746822506875374 2543095378435391458499597678772044779748367742246081562532030691179562572319 3096122955412410497810837372294594494172929676958879107165789133916144778854 576007153861484871787104231063115177369983678194549275082483792537043399134 3089611598285665731293636384239494067571001399096715536575795090092073830958 320179586506926814941877242404694653781176017409184705856961608081393762345 2793455690893957648748074440670299043985400529706817059516647875202461330915 3326572354952938308549059491587759228288465959479797695477052650903413715942 954727536130272374343355662144997237356788985502040136175633454841107482934 1428722002892307232366648434380431453320679932589299793140705554703960229931 2538188056690783131560451396068459878292967603202938556635425088845238688561 3035074025086103409369458833666052888340979219710957247658455825847496744337 2126056726534955488526053071965134174141161073067360809432234185023898594564 2232428571477820192273282264962667823810731702111289898576945560125563568182 3383275948034988346170315364277333806660955625027289028089559773149052259617 1583298177426486687104486163776784856396936344170689607973163503666088712563 2539727321912797267968214305729516192836956118688595512677520800000973473231 2180723049039958085626044739037654673660881278128712222142333541232551224255 27058014854475090290474540222139339260014873706631012032248504413144477381 1720552582348937035132958178830237699652277156678682754543875899907537044512 2325021175892277617179631403997355434429679516724928479351952781136357824291 2991818790729673753508241066481875124896734814798765575523903416709909513557 1313036216912777205054336680489953581119176503739959521276967998429355611796 2238540001064723819263994651665335222919891244862231594980742880131354016486 2287643687141896619436160741569914797791292223310128109048796465591757624463 2015421227926159397066052964993628008149723826576362092453098333200062331655 1468661887361873192303926127150194124204093647208464636036923060387421527726 415196871558264345795933289458733876855685112240891182249166100308021565020 3216434696010748432248258708159893469292012890935664876144722781944551757621 1567510604050341061234477678502767113496059385668936951158615018097583737093 1332071163148572034404481025366614478240461134776382231173624086844464801625 3065814833222475830511377104988156233900900477406299742305545660680909693341 2288552087495231101684123738161537204055113934548945889840404712523785053763 969068402241691987234447400795460621411210571371526570108376868079883165594 3501785087842195271898475368253747446350872530459251510222324425925414509358 2371571428590148987454126623373352581076567975624771515562338991626318328765 1717952864271313027495592975651066997090118234873530422503517010415663933593 2332003349042063769957136742674848404610648984394923557195754215271743702115 2662879993552938875015972210514622938473695659876549725007124174284822518290 2363387311296257177282320461257390914177659379684124367488982117266606912378 1499901429589574162172656304586209945280116669959505087677039194872369961415 3404124144393561482267916106211004927645496834017507179829046269029407902237 3272991666161476517080201656183640826852162731963055422575960794108093238548 1224283121663910338803360696598084027271842466658132175300379541042527309739 2295720049539519654585714444645950308574203175144069959420738259378488377047 3016493483866789404814251757104519698497357595472760979824309082660148092512 2864448303046710890283833348735325269836896915903020850245816577087648442426 1555911698799409649757968032657112843163744283566226261793465036601589838454 1926953946390915624235161415468595516565454490240936135965141668375183693017 2172282204389993535320471525969476106931032455123631921620767767195117134040 1264996878680877829593011773953569985114586681819042374454372151033741476182 1839048529413097073448468692604306811880762950714974123760016316226670851685 2364195173861578093519707798339853251231113046940222548775217306592627360692 965967467936577806906082257070172471770449421231025294679897899208842194719 3470929809063907647178743342003908337639819422002637206130133469590101609660 126299384862701904515071674674494243030784769932416519155225395880135624199 117 247053968240979794015232940052871474338240317853162895504906279913283485014 23604050915480393687487280002326207205129442432238888115009189017657202828 2177677664567815005940615801585904337429749198906592859245224070713382883684 776263181949091547210947666855573766470280740167653698351441872601872511316 2711693461458753559135829589234369029676227277712201193120145554498564055865 1507214166129906993039259180339575990923210630903140669225263385977472848219 423093493477011852748541146561279170011626195253827985519440205312385922694 2855067884509767360736589096371612419115055550063213331663416559954126918642 1167030830624809685405988802856483919135423117082141960424861885402548604037 855301496619407375573662848583557310266731656866279693695836108094473725605 1757899865936878371355465624415761963064267202413888681768256023694176306403 784657654550938204133857724217871577202284870875097379326042182651410819472 3222210180323356267342057869000828121522804609594840823431805420697831637745 2123224947068437005996015524352179973008927268174149485767365015704177875292 3530333091685175072097085186674580692089714105652309196783680340247611243636 1913921852494883948709480061936811264577239391498586186529605964823561685801 3603931099265659911484338097324557225319129850335884327197275919610800156739 3004337705845694954643149871143390747201190767511252443813292506556404072976 1588964352168623681090478653417147947785898280342292845962183756082345079514 2770498720330735269781615969671277797281210314465923050923048542269345827410 973125796494060004928684891855450188684599361247464671771771927976758234068 2015314839078910569843994155140216362151783308659675271174213438313881417815 3576466003166510462210389449933668105435279831824951041468332877213808410621 166556372214527053723392567376886674975984860967284125677484955155079478904 1854819826682625458233741760260640763246918997650545961893722189158257435530 1016496855800624409060943564848845074534082608571119933024494828497320052385 3193157079273768613875757326665180495216832758306336023919680230711714374049 275666003032516286805343369006197752975301678331765008821099336708486786131 1986861216335204480051729666122163599303087772003080974366539153373938366739 3574533363138322658250687706495524928690605287018355748463720741406473488324 1827712906301989113607475138356556368671593482381269644880672111547740637168 1063218330838840252193888204639574281431928716094679002966348376624365318091 2776908646876763126160978996195124087777732297072078953211778916150961299711 1032389686173187922870169235309891743648770260052474867942660066371702583795 170679943478015469405919352042683351237877626711226754754415103451355377079 43902946647782498353157268784405317112949248319764314248875234405754604848 470067187681983661363211541657726998561003584580162834418518493394178307623 3420767939197544346994685273527484650298300994035263322119779072036037180800 847309274266002803607332513015632062816923186409025252889857829778061955017 3023535825619582965092505819520931376840690620217162133823639871157239974447 3536583391411346655277325178628026898054306996564288374188392265189649567289 2770559118878266892184107792108942353991141419386895119869795663049555580487 988918767837254949598886991052804792497647813656580260385021926488331503979 2099514137725511393151192825433676968779093925802070193333677167860431336133 1132036817976447157172111897018307882293732587978905533956039040317594428752 1737718618334295032828461384262969110060393675823464320591545747095725169943 577750020339019461677101479170209465969818307410617203249157720324893617065 222395985183756253128370910451982922307475231287106241014510689464048604407 2787066836101783349398845639808817063803979358852772296806358003502184893893 2624096007972564752772115262153943530790688510128617738815733520771087742074 1194035481950365523767085121233374401838707312542989089074718591594309418339 1273601891896694646755538040951790295991134774780114811198347593031402471446 2406281293299479128290751383944419476157590808298901864852231503813165160906 3272329399413113737508612753597709310884388901486026663630318728959475237840 384566049116119566025471581099949773774294177490585765723027315740551361258 1903084431659614940913788603666761304558495226757329148109804317145710109105 424883369013544108568495280530444921202756210089734125501607141141869536068 978722787030550737902510511159687512274959615824986914274246678732596807389 1959019901865670922571617064133111625200140694648041248641801826935650435707 3144318639918889174051583555680961209813004498160647083543915318813499739689 1933321385622829870303429768793528487708732682409291216844122125592477466705 1413233142707090921887117775468435338213949301646745449919660930204361451049 1195585196575467184364771994599462243044696272837345551168098840286750764986 1308229636001778089924811130394185608036459419373326457658531283544068945580 814307497437466702691203432424828238573994709025144637815522729611822900125 2408100132725573965702306810582504978298981378361225794648241982594051755604 3082266851545470003349332471718985809142811908750480502177209740108388341166 1242532798163925865859263651494290502200350013732386180601523438766754856312 615687603134422638605192348808512588601453775626688047685555054877330174412 225120952557993653835798563921238481360991133467696865881204335330735561957 1986875054180460528544184802943279665820863690102096833487770645753349662570 916449466107707448852763797212244771836657619567674534854422905968926708023 708836639021076115264186696788703706559607735801403792139580882110892036999 2460187959184001360175206910231368036053377268490287779759824475705464429408 2506926928692923195437746709340245855086356993655468009074873155957604561646 470547046951593845466752726358351676455200359359063355173329860187658832845 611618038636468160974771940773309795931387374792321840218059486247084713967 512031202446576476231187777593942452465398294332676397157851089762471367956 3403517844087502012375071397451840939525478376481140191865033310124219711872 1236366911561918403042004560913436789218556147484956346229561672962894406615 3423874204389569325263604004243311645546480000182808915142447289300449569628 1660695017477604110328208882494404046347939060761900261205170891378208570799 2621220872155740070208995860531436616317512107262626879860337351696274207664 2820950916890579907324375268651920942966516232464368183498450358196190230842 1442888163258042742016173586910860753528727542892765880404584993787354891589 3153410965900103219418282205436596470988254087289227721261138091868134700199 1156570043581155864227130665532272750336940616107278259883997283295792612107 1768825309289846919737394000812618722492118804269278342062905296453557115503 57697739084256409506107447333105691825002849469105790187770298811667228128 3478352892855911674308705557433954824299843121181416774841289397400199403189 3194446024215428495224224386148610221646664115246334172322320202558324167300 3108458214858034969184423459821026462830409667755770469497535517122136577106 3264132566281615624572713130436726627653510234791659070208937990244252298468 2148990089175203567486401434291982622706289441666645943252258429772606945137 2766888756705119250948976320246481246914131081670955664011634697890174264437 2827398722444427415370110849711673843210218256540805814097541663810395212589 2383254261281004025736328521638875423734710134796195571571620731046370474076 1317659082921797597406495508763097368023613702493257603236087583988957353015 2761408072836939090213047041031066084053745310778526178387209845486271708141 1523702459340223316765695591035565327894147802100051649845446304054360224645 3166462097828599770725683254171287437262657236280200428544011297571145690408 2967267987955210670808742824505398941669021602784521572877576235949750676285 1033372472922005787506541300067771153464540982829911408607936793322625276061 2507942950955591899286629285585512125482060083791987931459387814517822858690 1359679084595123706337299777016125437249381683353927317873156550139040631727 3328756649910126190906757955101976236829214108334217634532617667216228846794 3519915284095110168928301252990969492127984462762109883862818400571702300922 3546012033590787255604304623064838455486257660742563043373423845615463144397 360155156147808175074741039989509882050040980302059609332702775253613319824 252812285799803201971451346743591994397261330141100528832147298250410368031 3231634635844187529020215057141052519651023003769491420987316025602656038995 1059327293764938308123694819588379905191417327736085831361483637173222492375 2475072507165560215373700510956211699042164220422739180191490964647966061268 3482561767885518510965199674995999383563397637805836063829512669637217224534 3560120512970575410823947375035801196189531451973340289589293161143268644027 1862788880846541860883635807256813753456285635113959754210109686176745284549 1769957984658383237553630218915408213541307784136693690679234715336188212687 150 1858234024232165466115495921598499698151197543299045217872767383096939017264 73934279296255687460434004566000380471709922872980316245268847806214652675 2577258732093011574121717557188072141001526520519849357481740738873379111534 59528211828699420626924886730261541680882130654703269044027445980400981553 733381644186939942739822301342160723877068796747907248842012819827657325115 1748969335726205238986938268821198231529542338126614933920862092192276742905 1109399980011848037014749898484847836030468319483137851644935231183767450338 3362482417164671086406914377934298788806475271122570479404265181160439845942 2876139393710400858161836819201940258622506374781181501267947185687253375241 1688996770698535655201997468801962765220311627801033580481936950586744247821 2913492016129179156909193685787666426693925689545096374289521208414039333953 3354666277509405405132797486710527071925365989985292770755401726101508470842 2860236070295155199128370676164468662922946293563419437985452291944341545927 1024388278406357250790261892790232325735543423008995788405634958966271520079 314640450925226943386381695520691923464961811478310589443158388382530176458 1276411692535696229848453929248237301673730058328829973763032174779243477408 681868939304090661431005291924758166146276406483812267628537804969538532630 1885593989211176424027548634185768379321871535677203149803411468602705071739 3251380011309886413089634980708231369910690576345443203300071288879992728651 2510856720479755719620383517677319873879413580332926660459520846294063359591 2260748632322281380801684460764270959623523550951223027730060045122060439518 1023564134437470923557387413374209378725177323809587593308973243768687880617 2463060340973796523929917830497900038168089824602703781145888896268999402288 2110690741816917421141813717372544680933675992920442019908722015903072310951 2384556452842863092449196194962877965810518466828815476917915590173429150603 1619910375490073786317699468108842282958556911664496647198525438748243972754 365839421440043817704891181859543147715147949959432743562320032064068369669 1912347749697410245102712303375588783839691387148630598644291957761109084031 3408245053698741707363711031017740387328231879342028046844164143152740195759 1822658881471746285249653842782638010240350869943993331608349554259220798719 3270513105958896593753527532516643389465139409243288616533549214503913260716 2081624882475591231739541363482195141759305208897167878865070644796475746268 114291062668770050053398145381016521280544420299600065939619006933123956667 3555986342952222100371737682982291693601541109129866680735933086809893193643 479882604232275052513924619179702765574155021821328929698931810973731999042 491597213669873325257815922088795782306238129789838059027544946202241699651 3232416221124377747644569193721273026491717055191034566892236850845751517860 2592788729058827566292986497552963061050525888415440388316472055735475418393 1055507379896195980152589575508550809166556227577091069367714012296455776632 1300215724057438979071596490869893175669708020644727528521828717960994536488 1460592230848263602893832018096613572444261349135606993617181473914628841666 1059963467253329614116929517949962682045685112604994017477430218625982358449 427694840505027592985042322858886406407539118493661472598872956021146403384 1251206841682574163525098383311838539573046238814634735169210958318109729384 2889840283339471121529769357666062609021485717887566259524817223174429035581 2638643714508182651004049265892993931098437787728289283154209890094019793451 775479763483902695991139295398524565055629393243330518265577629813158369625 3476270570533095577842809503647068831772378748601227662987597897632932572728 1547269959952956492273503162728619332619886147026210858400891504932976158056 3590655677748682008310092963673787614907774667076735095369534281663657198035 2112486689146102686038259102264414609788865230991764157656846864337336645155 1917040926821479993272323175278672874242247161182260219505034156723118064038 1315052187486437536463184994563068608695104195768888759009343917389288746962 2464348725378097901585808271805430550377562431427512252827839436417509141305 110824020452893445722673953662077792366995266546769453751225354362020312264 2719403786566752846125579325430497746403643279655895728193269675901106957510 730584646212175839564406806706917995578561738717530641537046559137368364078 921461620623272116489015089763580544513928393670621742419222100917746350973 2769331765246801022504283786829596209511480770015870085536780020967644931752 2680524427883708723717619880835325628533465430313666871833070831754044935170 516928036296329826119130375471032021057004076036672062530962254054109880963 3315618967502303991857822867558339658475819012029626141571739056996253366434 3109917134015075704219886967361737159360720231454231809313566495292095971088 1720932005872447741459360483103270897340738423128430889584795945069878928055 3351564485259497094600335463809579539634065398104758564577671842736948779939 1411032774907965676495196711129715840393990046662269595922270065674732635563 1447770928471141533913851284465974351860107876337061679595949509707086455829 3487752653277487753545097413630906203738997683139637724289557934092287513427 3364850333133657640970013336804635623778880063559840034218319593071199516154 1877061977450331595061682963941093401075535443275207403499688469351091909735 1241355026914314704924330190946192300456797653059346862511859424629604703071 2320922167343025615055047013527209360835566820099644107713077796365643552266 2807820231410845361700773353871689740868087689901168741250635488319306871356 575257242262616949453820264667941710596698062133544398863937471978633659824 3291913121889825240672214957106742232663162883127962976396367452305028008343 3153472423789168321467447473440602928830182301293547315152469281391999562440 2641602122219158135982607934548533871839888956733946917979822198905744762598 1162392353842543575974470854113738701564858139358209765505649854960938758190 1712871585954361537037803349561500209857828794756300308936232227401855523938 2752131961857331355840672149475110653938675861667885650191571209293538252017 2934380124498636643536665858133015909548049487360186675702948551464504821323 324329023946444682996215396457910724399489519071455965351280359102837971536 3303320724928072486095218534040174265979008089580283657303530535253129310618 1742798674847506907058640058708494670120383139249057416483788787545011041591 200789698768790907858527737371461031870038160756581111514918067184756573607 1222107643331851985215107415276728188215222027671445634378059411776631543486 1215435123179110078808305672433879689611417325782087347332021164842550879810 115305827785952482175128304198044604131527259637607408810835586286598218059 2126742331108839257625734615388206139285938018613626952804270574050892213570 2291650488883933128334240592717895589367985836419429692750512488616495721045 4305573592950420310224962334525937115924878042241631359379788172640811969 2719429119498431494702787781208390397481019569774148905884394451049997440888 3388241226757199326269042251432276795463336893695626233892696096240543037221 3613833314422358642549901572118636312304694920809421346135928078848469014944 2339054522629574074817094060504658481249369852215247791603576237376441983374 1154931048824939949172425786189201302684419090920742291998317977801865700946 1794836365955077642766722377649085944510359509394482242376183618479844123691 1163656319668239735880708157863404108436564593961789918604437999451577704003 3192384073584719583553457458612209732191994289402270099740767157629740081106 2222453613757255462394163409562584063078685359845956081647546654787294930556 2141716371055015049140527413136824923867652518151573178093034695769958318135 1224718009654388900104139565566955260038623354180346054008811987265121818845 2782039335261374075424600117395828325628140444919108692512966287490819664320 2276495006308015666470920692741338152315419666179213696285741214891544677298 745729927466250128254584902126317823965762692600602376511591855107525308161 516067471937045960428370139697764673233971775428555956424376424148908668409 2139391339387144621843226103791392798612951486701404921858581440388121730146 2867239175702775462884683129504647345373306668736179785956759651710989307835 3566630112905757752672748342799746464897056126210408966522444996322009084719 32076476279336449063645810947772140984890865610570346387757471402089207005 1617941897473858391330189524374901542868648189687993400816591436035046910512 3091484914657723549053327295381639655195922924393155107026590291371242716660 1243122900847204095016099108809310685925591418096576574453259170842972856507 2274475982327798380858326074650311756329752246180128925945837164830146866833 369946873912533875504496545314624792197591951511252830776356038069684628230 2215442271818156396562025628255781253450105848404311044394412558766575981381 3583809731571591277957441220521073602237044744437166133495262812442575989356 3384572265981954801577602517346882218523734557995116355739318561315993873035 348438364252307111594933624691934669660759665871252447334721461347108494329 2410347874280791943763130511935518993864614513147932251406826352716685896322 482136697942804739831876201805604508593483222170557290958656719391307291235 1140842342815989151057037243719939228461182602426168675629291433028593163353 2671003008738754357585616409142077848553601218434906577648021872280689542306 41876672332305121291521913730366817605547070701787700351440228645061880218 2882560454393663531408276830264658715038499927740696082320612409074257343997 1425989244488022966273891273684096900621304063482636529072739154428730509232 3073655462876726251218720297003988885929373942543626820095652309251257623992 2794573375925619893848282943683018585500411860251237028400264149532002159960 3596933952629250373183162427683838030476186263927460646011899377795254056058 2637165011712897260486986708420583618322655099964181723545874937531600713649 1332250506002422998968859026261324550132268161722146523718436805163225054554 1698348227585039004386974914783075281662221023637117890156642236911172839920 3465379106403341645835778519050921587480833123196383630026245476325324981189 317087077722356718862543284711459082841800519666203131113553829378953233613 2051096766784855397299478918353840479226574352363754795111139582238547144572 3347553774815409606023741357644631322127870492583401927360840302416283789046 2707062953937600516231047411420643270545988435884107325175836116568580374369 379618177542119236385464339926361199817777508574714829445404009358982050329 3581105036955316148631910770345953951111707844430547893225277450072866474301 3018161505076646431699227804815593975578267932719209339902021983318833868394 736698191810507685541932343413569357261088611925348648291151892426119142364 2701426888055459065352359946225545747562180168891763753905966084768023694662 975126555404960988244413774451116680796668595010885115375517291051936044111 2236577379917015979544685064388102253401336437661105608129193284536495766733 69367007605362364318004558463732406724972359340958000075999791847228267813 605138444742295564341842240187530224217526987900410922882840783125523967054 352005260058339933451783805050543578812560208024430813709011251130733953919 1798896103801074460397551037285776927770023038735093504076993324068901569854 517770811237639829108992765547134600955501988756373263094468553058417337454 3395849092757762294707528636758933339451247466963083537237935468456497403756 77 1522432565027559015872896621383925520549272457191131765468920161928169863055 3496534466626163805894354483862775161270909337134730675328658839414983008154 1454459942699536962816215490309407383206649172388906272716785011915312542458 3275696575108177723098469190049676781999991603783974206721448497399632212684 1264302541929558859776542845874118976465308373379034165391400652726540088832 41736011654706046467990875548034678202030502775491732926687295292236390138 1933771221589371133184943372685468022873784585189147576006636652014087146838 3557833276456484126454211294118747560844400483064472215997069410127374002652 2406705100440103336314279847263671484884766687011784180837805758727493942501 339338986903230534510597555541539456147549964880184462807759868818692468917 23982401184237268245993085764395941506150599439556772933044153230989315924 1703172639990820489458824860858992884849789799899723049520952708335744197157 3393326050410613492780233380984984061068923977462142729678989732706519673361 886261172977047744010182742166824963060599720816567455537558537708931196702 255989169333319059517101963184512682580158371234735665423233929661136692050 190856511488198618829680974768966163672719029015151309878686639235160265787 1605691584425567432876549169256774079145408755546990108363569742715423798986 80024697226266620798767822821033590104314669218590626938595573605456992 2887171479823281871334331482284765651752837537866237526920108368784347959706 3155721390813550908730862810889049716588097005062540960034266602947265269429 1521157373989302542647091821144475956974615140605079926473204393429054617658 2118135727748280179745775778064465314483090596625033550742536496904706991864 482016244878431170580433803861046623995008033772483284334490679660363689583 2403364792434037659604606449076245129334817768174273966706340446006033514669 24097527559915758552539267961208154191599798542161482512297791472627158102 1850587850666576290123180795045742880495022498026246279831992498033488921451 3091696050507960819860859325390640314525980412601898279143340312623396205084 1202570589550560240872217809136548539030744865348277791583525730475900952360 3367895035930118566673421372280133222710807642681768539673133167133891481143 158325487875254427509853264170181309009495172514594909102088027480599690178 2495288104292651849729101721542002189000422155441071906259755476604391775247 486429841655888404416375101585566020772000943551857317654961097037754739788 2988427885815038315602133564097033212147475261240792282961995286655943553085 1758216566308420825660546413283532925381115104505282360954288284216994333210 908976526826199109660839950253474889455497202992295068706474603441426195030 1921445180230524002602865962459729444295617068134765967844687165117561624291 1212339237801442858865118578745390431153118143039861888455331107773733532621 2542064105056959859106377220986051834186326280568173874830955542818008987419 1848839990171850620023622045061420422010365797834751483957401737688097963346 1182544317999795330907975841069357344352664527256200784057797360239749997633 2994531121339164483439460191598569367886858080755604793503457217726580433159 3144253704849448352739547749413417043135670461056063191046444298890034821704 155178210596798260267892643527316110367355764481802287611607895092310158766 1061763138125967800628774625100058320733681393702688685689620819038981496373 3570980373278737837598333926048860227724170261456195786285677034109494599487 630614460248080953127301161282152176866146467089506526274975910875162181702 1044017378645526043869254204699138582919807744860322934635741902503888625459 2333555617662396044793520582263718110877044829986291648728995097000797453136 2877927133326425540019375763719659453550672337859757314036103339478109003343 478152685580295001979321769519023549208645525263165037068718852543552607203 2380149651810099773579469404429085811367257950524522806836948275681342029665 2090242004394033006613140043389862796879338687526039023596070041174911378684 1228049924451858121494712091115291427747972853984311569885193498168784172896 1272642069811874186780088200321791754193105460852782918004360229523726386505 1346306081648850301310616183836483901759212426282613735670448689779988528783 2542089723253921971534007937544205732859029281490121982492512635860511298617 510524015988564165192808671123390086849060137347729461922527085954163862236 306132649350157667550950220134803686313600393266183531634564739375098770752 1303261442305066521479162756794546022135195599787487695756794977850731821689 277297262779867802400933485745560438566905577641127187473367919056873888065 2135408957691318982355177632974217744970545195801825657503003178188243223952 1067421775135799873257689536491458137825294413308581018535269249271229199230 2453253796368045580942270972533034087033748117419200869693511739721756110249 2422600817767104306916123067432928878618638259791133379569115481573538780930 3227919744575765985396950913977478264468863820770783105553555651145080308693 1362719976280626115473551604785426391108858517555622493193470864374334295137 1919132004098664094138454704585618990388497175949273861429244707480361898866 726624407373068151372949429069852310488976001016114620259254376753952833295 738356453002861654685963568391939059988486692733377287168246450450435642830 3076529853685968244528725147700642216746895695439327640636881869456678641145 1273730988503917329618690312889410309890880675347141811176599376607409260535 290298179314241569655183151408769170934471900930379845610339745849472263837 512048680698306270515590268988392195063773075642152693378267282643746883355 3602092209040281311102704382896059855068989781590630337632833138620304811020 1119021028466617626926341909577917206627447708151578528617359103579211250491 3107488101930789646340618765611267828374398476473573772617874034913583360061 816866438830460188505308821954486184889709034916804640302350882016123974050 70 459265850792145271042468292756451124322115943680887152456045120706012809891 778343250970430247570390264409627787190614505246193223147637531663818848023 2980209092047440952661823407881618339261840236827979650614702802409118628518 3118713815513091001168544629414122289669473297726508086451996607450554253358 1137165921498372844697532546623750313762296880995746354952027734290461927172 1864762947453428694223741589957251045175599762431834292084240705147249753732 1482555420216318741150988514995018144057706975926857534821619871574209975823 556941507181428924941632068079054909497596567692690981966665457991605517749 1011536538455212552697915554881671854210777810413176421245097238218536103394 1698028088894153194936190203737650034104856729243551728660977600065707537536 3517877458044773447591125112255350162455773978599357702229441754483893459012 1001223297082673707499533125829970052576953914056356641676196908852026278838 2956406193575769836183017592421467524042299029304349934300258540193365185236 2140196714471556367270129061405306386795480371026057506099283173167421684156 1419990445842643369951216247921683785950870561462579920469335032031959157603 1394721147280764772455134739603939607103135634148208698131814456161209592733 1831562540181872878281948606339469369159746003866666573161542546427948635263 1808647476644365327913670912896453825141549804321734608260431536827752638385 1894631243968412562912984440007200116312318657489199974094703795248110056118 651701360852277636921511960416567141066431296013591699953487262897741918689 2641351628661425279471359616704641907010883455906128833799221117727593199771 1711876802561585914093440640877365458528538393917725715606781818466398637007 171973025825321992073417194269107076081289606421096392207636625662974851914 3274513061240160465691436773092037786482659793081724251057454344568415502849 1001563371076180782522827587727818076080622705171408137336795154300238603022 2383437682328891126067904561502825203235408195681905867599297350470873668054 242345143054245658293937996358379807103598334653247643637646457884198714879 1092565493957909503173939039336042552632393674509789651176132662436359551597 3526132721605278196502315126368491009823306236240822878541921464541483563253 671670173630926012420678643895875219226957051151103973758011763693703960815 2040221033364216766639200276089582538144151823299958753821510821353188963624 3594280555718579175262726175934198372713862927486890384722255986952643367130 906596387061755506040495361044774502431817872172742106834377793183407119141 1175358297785975034606616667667936327678640789070043615473152905961524812400 2442014539581984333815263510146319815714191170526880135699812149066214012605 2746757195998720813965279851237683747550112461182431591445117672936541433144 2800251749877071119959910930504651244755222794451797667793612696832741126311 1132643100365971149218629481036659287623551074641759061455462003510854103283 2035984655838411094974691216614622677905366987560058607264329839268320872825 3407909796847682158898955684010145728507853151095955620367035317636383778219 248616996600584592549838027143166892463340927604562345555069995806489664320 335424319664731499456968424851031003505845088164335956090025938617749469822 3440911121814185240743256957482497467969191646690204686239857116466582794352 104788026400849482557655536995580036876525567818589029811142401289122939114 1948800995397988508311292084711275401997700611499824842510698168597581224940 415427546022104294455775745219562593210856366558107735872657100788680966510 1858224697733795663919407406830073511900156528483964072481862758297541210143 2329239112630659293147913328765103212525230711644370500139312995483729678681 1905216771713058102174308873226917168759894276838931424131789956527212368723 835462007597722060620267897201717289552584023509822299869803747090081655950 3589221166753370510640622775496478449077059694606815227701698292210520597408 3439348127822425045758281827287791012738243267484968195993139787060109050362 112150415244178769146484247158202257011077529834409400482828672103750739547 2146103898561849209418666855029612989655628774589283546554058669224058935440 2450902519681416205667309041586815137997366760075932475139890793458334270518 2579432580336732384877235473013685596345028844307683903779328573758337928472 281450516318945883655733647642702021413730438698573494331911728306797471979 443723320270292495995841021434504213584678685127418168967703567416513350080 414332598524573039225132194341776388577840633943469863869670045689556330653 1849454798550079840250039785243407801004517706648129665926829452884076024426 3177103974379839566507998765842438233460832128597443360802307857217966686110 1270753010147203061149902879994819838822139200582673605469169843537651903258 1765239294865417224026932708330514578521662170387190360240637225711069872846 745955127845851048718979110112850453713223742127770287332151032509146429624 81546998724973031865125839382656712091092096811900939568167353187733239219 3510144945616569336940235748551982024707191934453958083248738255987066143427 1765746528239636204808321905587848928370217654644860225606888699348168498409 1240636166344603239231019365461993863524285871078298607443862487801616245246 1606142830374118500885544862782909897509223729807859170844160763735332449140 3188218981095495430475050416098597410677597942530261514682098177261715900495 47 3074018444019707320358825019639827290244332503540149033704880340497148088017 3554507410003220090105263635689621589596346781085237311347909585657502105757 52481305392194891497098424942948240093912500183627904079712284859506078967 2319244346399172445739743652357061741472283038422003891315410192748660388569 1403277487074774100265495419605919289735718128576457729766455163956033437744 3432433250904997193554337237306559757115439763456317760069500751772669545651 2666443093877967318566573624745356172468018946578229039708347344914005833009 1870021490537325223255947414795504094933964281124000681226429324065300618487 348726657045147117149931513743263646797791843923805146760179696267647448828 1045203556137955748995223712860561514780667582172639278482397390047289743721 504940682003710523464407458003817238185112411783022182310774318211411827034 796678130767620908983074176704564891988411141012471451930956847481767686398 1813611830068144491955150354696677522586985036215141940998663974251163964259 3250653632033888431343887464169190202415579461715210080796585875154479713341 2890924852795152619523076809444363618684906914944557812423540406884195046644 3180845694471252107056067985948800775715664123520297513655543247220156557343 2546269594900076663020670793884591591566590177540108403699625877832307536570 869911508041495877123594263424632703009974142897778867631103449176146515493 1929031507236295990960978576633500897450243082827344998079698754990963169109 1631339857378717414051090425444473512102126107853400147980927157538823888318 2890740516617095530330581929601093385646578320115454920187105750439663546007 1744461594843879961354569613295273567308091644214366959607415457461989417065 1116356095201672913805306211692833320912182877856666165189388274677706876516 2845707024391970706650560431387742982228539260461949883652544756248630764830 3184996131641016236641269790567699855250875258662792444483292072567451405280 1984749021474617859468192214074361563299180079626503023671923498261610710017 584505864762889689644451695386987382916016204824130560692366718607362775413 2834064264150146975283766654660318883834801900920472854994841593755312046750 892913467297173320201411620473033427947138093859617777019442220736168152420 1270708988220552006254877772687611004299481734269394732414319882572685779182 3057882742325376543995507622736852557714216698654863813151263002464045292690 1171478493486572871255845701896644946530276575541421602417196742099653814449 1564472391389880734748376146638547283653689460269974561367522453129134723600 3110539705833243229877363214826731371596642670002361202098114769740604267366 3069292457018153604660078320090966116590506823412215553359730628712565150514 2208180585305083144694512166648560256788861351642068711180059161175043811760 2371075027848577879661886419784720199545752275418265650642307789814914835887 169220238312107458751804484258456875501146527287762665578781316248508322690 1284123973261387119921765646864640197178031313103811138716657347100327109404 1278284350729242554482958641170097143945393770439826065249844554130425497163 665189236478349745517076502925023032640119896452201368849420623752904646062 829842369204644721411279303814858491257386578346206437505530055270188418430 246884261008446523188256202775117015838537920681026329450616558059034553199 3030711103968153692678954424454907460309225327284644847922775125079595297088 2660986336968424385135919173589773170997196154115239053552098709566909618132 3502321533075840060044182715141429516498352936107772153062293758791410888856 1545975206847228836412206076694536834225726835364885266778030817880695952676 0 diff --git a/examples/starknet/src/main.rs b/examples/starknet/src/main.rs index 56c53114a..ebc749688 100644 --- a/examples/starknet/src/main.rs +++ b/examples/starknet/src/main.rs @@ -1,5 +1,5 @@ use cairo_proof_parser::parse; -use itertools::{chain, Itertools}; +use itertools::chain; use runner::VecFelt252; use std::io::{stdin, Read}; @@ -20,16 +20,18 @@ fn main() -> anyhow::Result<()> { public_input.into_iter(), unsent_commitment.into_iter(), witness.into_iter() - ) - .collect_vec(); + ); - let proof_string = proof - .iter() + let cairo_version = 0; // TODO: pass as argument + + let calldata = chain!(proof, vec![cairo_version.into()].into_iter()); + + let calldata_string = calldata .map(|f| f.to_string()) .collect::>() .join(" "); - println!("{}", proof_string); + println!("{}", calldata_string); Ok(()) } From 88700d0104dad922c86cfd13506dc1e39642b68e Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Fri, 7 Jun 2024 10:09:49 +0300 Subject: [PATCH 5/9] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2e3fd3ea2..90771975a 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,10 @@ scarb test For local proof verification, follow these steps: -1. Run the verifier locally on example proof using the following command: +1. Run the verifier locally using the following command on example proof, followed by the Cairo version of the circuit (0 or 1) used to generate the proof: ```bash -cargo run --release --bin runner -- target/dev/cairo_verifier.sierra.json < examples/proofs/recursive/example_proof.json +cargo run --release --bin runner -- target/dev/cairo_verifier.sierra.json 0 < examples/proofs/recursive/example_proof.json ``` ### Starknet Proof Verification From c8df4a2fa59b4fa95e2d978fcb63710a04809f18 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Mon, 10 Jun 2024 09:35:36 +0300 Subject: [PATCH 6/9] Delete calldata copy --- examples/starknet/calldata copy | 1 - 1 file changed, 1 deletion(-) delete mode 100644 examples/starknet/calldata copy diff --git a/examples/starknet/calldata copy b/examples/starknet/calldata copy deleted file mode 100644 index d8c0d3a90..000000000 --- a/examples/starknet/calldata copy +++ /dev/null @@ -1 +0,0 @@ -7 20 9999 3 20 9999 2 20 9999 20 4 9 16 16 9999 16 12 9999 8 9 9999 4 0 4 4 3 7 30 18 10 2 9999 14 32762 32769 2110234636557836973669 0 6 12 1 5 37 104 104 106 106 106 490 490 2538 2538 1 290341444919459839 46 92 1 290341444919459839 2 4 3 1226245742482522112 4 4 5 74168662805676031 6 0 7 290341444919459839 8 1 9 4612671182992998400 10 5189976364521848832 11 1 12 5189976364521848832 13 1 14 5191102260133724160 15 1226245742482522112 16 9 17 4612389712311255039 18 5198983563776262144 19 2 20 5191102238658887680 21 5191102242953854976 22 5191102247248822272 23 2345108766317314046 24 146226256843603965 25 4 26 5191102242953854976 27 2345108766317314046 28 5191102242953854976 29 5200109442208333824 30 5198983563776458752 31 3618502788666131213697322783095070105623107215331596699973092056135872020480 32 1226245742482522112 33 3618502788666131213697322783095070105623107215331596699973092056135872020473 34 2345108766317314046 35 37 36 0 37 104 38 106 39 490 40 2538 100 106 101 106 102 490 103 2538 104 10 105 144 0 0 1197100363646891454313901687794606859934588623653474816795543617410574809458 3207048181556343463720131983741463455174073248789575831873141902886073852613 1377393484295248053690009559816568692501284651044584432198360089832041956211 135 1329205157367572264849546789395896934489357995285454339399964405668168751572 1788770149765513712482705130448860272609181626892176905773760038455341972158 1977542227217968941891179315381377307501139485061456943902259111044920783589 3544421895155486098999146833291817486888880510575898880475818417469973858008 1191072973595616295212701663693751507713500118017880464787470315924841813719 502601864157063751893022073970059437981047897306747826776397568419247481103 3531796964276037156525717695123214830359560024435640787950856476726498556400 2637044759818046807393975419718826309624485179051444457157789941946955134868 1203025977629686127924405959714646736666569613229013092707842514320630881700 707811687654946068916054372966210495661506439321173247415747397653552717118 1977267615434233449972010243492634248534134521554582315895869738006101038939 1733502679474850822781686663765690847675266322856680739249293755579650405684 3485854362447716954832509365281661935859455101220764222489906718298111283881 2433803164692739629779717191324914262253725502171692767497485087779060798186 1181223280539731446645542641363860890587839872483054179047744379385773485362 782106985909926068075983789421732270286750016185221533677221425697508804818 2092098859244507694059159384657485072739386387875416470790088671901817702478 2839580843430792552359336932723032950005520990109447518779216069159333282237 748025482116528278562899319650372098266812701644954678301342422153593390051 381338020849356912200702603944471977311632489147305413363837068179113834358 1556581709841076702066961823848193226425597937311852578328922519065444040969 2648621787864420061565498641933480796542064670895362529820389640005910117290 379662118614895393498759107246318053258333294923551731367163108481531078468 1564288599645786014723463321837975007005990889518384690223995804146101134741 3107591919973521366820525334386025804499094034119389823312537187050978749939 2132574963011632259577122138542297267092179225012792374617581325367778048048 603690328701616098614398095297080868871888433627006017142180124022688333931 2297719009028757498819807534417626644237071766272510995789219804303451044505 496596601013729321773587175646935296347958400693541069483216622417423227067 818168402542982239159719551714311811576861478651608366517503026495603949037 1478400302525814903103559658334023676512126817337032131648668012917305329412 1190080028284933684122691883523594885633595526001360093255796499622378572735 1631715124310825936226415290399293372894469930723599764063485516499885507344 809341868338672868234798700730405036623164596208533229329245710653306355370 606057389326044989549045315838993310904236664660341309284623332035303858093 1564385047559634781184832257687436585486606002272677630548274666873381664624 2078563922124678189311481462348491482182229789364166127954743406835823780767 2038690061123638685362491876884775738438550584269301404596771166119704065582 3509186806512021979931395635617812581593686711318136246028018514475035398513 1399040537370653109683488419931850088206329750172905773314803590917001066243 1740744866886441461996634883835602097641723521930436537167958968102893445551 1471884946537695029262920391274270148002781170946298632309739953592168101405 3347839672640956074389583565433838956995639036296749840481898710112635947081 670712314311401954545843062220154928678395357444374596322635214620256746922 1451821374549621643844062205341267230675289282748381102161910880685028294841 1796030933057037571250652445627752696633262020909296365706579731367672981527 833009566506956062197979653928481415159330913286240447900496754126820565842 1357993268630571269523538939572078828205801218418874864513106306545016702033 2864318871541541426543391501210130169587756194616635476052625361880335788870 1195857319801554847625040411310947526213044554612824988813063216851038363310 355318623783825364008790176440267829440122663267556255068041447555050382222 2748007456133617958629547473555026977693984080313425683557009628909162789979 2074985448637057792473751875854063089168811899638290299813460518596407856102 3452781126029059085159252067641694113609923236084723867008369894611588809502 1836942452759248682751066324926148345055900542278881030259967747553332553363 508574973351208512943415921977709023733537883820086676068958952439195656874 3523764156792646746758782615314002754302662884834794174183066480496982475934 232975417166652037342625134917502688434652722740353516842050395068092950926 3381528118830580454547585698635428243246380812599898826605173415435932943392 736263345907045798531776567775743792037746692636051411015351098647313864596 1587510874976868514269231539265733668415511111641351976544969148449989597459 1377498616383158552565136059316780139288647030892935546999074569773612536575 736733896466932683284972582524225280246015248716204458515108404717933937504 991628612465427089738418630335038994141614230878191640489965393331541988913 2339916676036573412532422016243542399239355815474986978215835275646017148170 2241299096215172917953819730156469030828466461769003457471323513361430922525 1810368604534459260553673522400842848816384037595752641444682383138884701408 3539521248269048257962983879494472672107541477885612547727187128624493720732 2127904415239567861610929586079730345300532479152008427229215291998753258526 1426566874245537854296709181415879814075938624855168216157746909565694332479 757519003532831122344629187417548932501463281196427370493568801738711077102 1735997538623236355496257421833461567303467188258121236639426604070564980651 752988532413372052088064730637035975974558358531949675118073731965636797139 383997857590756936233489081694063702600632188552524908725642170826907921738 192073855018920115406374740627351270244326059512941897851831867388348799477 3325382759522022926586589647409050365376608337640375748340054139464264072951 2835002751469536556791241275605219827255215462036308040725136843945910439945 423371667303749743788824200218593439423050136341680388372232837509044470633 2200097780541463497054444460433975463482106564662484076801041032092212954357 622511676256946514986881062541960759820272770418683558398489716900296991275 807511946312215844720415420028300695797313155514203176257450604608808478053 180155467190541140248296505206171870854683916530865002485004169119701181424 1168672620398746986650129197668150478955718421050129589215509579856191775876 671835547776676467968444788809171462107237328663733594533923839635286801506 2385328468988331446933713569441396272721571989462979864317012399965839466437 2945545843310224254883385878610889201685783310227921192786531939719763831981 1384086995393403372298763814518732639432573671623161096459883010815498447680 3123634213687622094331962741932526276500165059460209927128834994720364576443 2545702899795478770381165858790741075163669642508086226261627818146363247508 3284181062247267243346248181294012035085343043875255316279697075662334633323 3316923570081230234777450367390131015759249620057705711619869911602741055999 1958608421824279379335011882681252875319838331511045362536945751068505578017 1156519624762309025277259495176878088296623273713006107678199992880049861369 3524879204762900169958005555309597904156198081532613833663539014364710139234 3603682162603065814977639816286673416430277701826755167630996320415370411228 468181181475371746169400437735072306865158492847665421785800317303606981729 3252512612751804245358546700727538829087163335101690815725730408949938612368 787745263091852213707863355387883309021466704696197628824862689031260467328 1460340966585039389630818944080618967601799259511703033151590544643903673308 3180092946598147304258749372211881422868573796253379123213773606937591775680 1734211990833240084936723958986232757205455832538485564753403026931403520213 2384205531658135497150069311555954787502716665651903254948590718133403498177 1810094031972917880677026647050400438295700955511328965072509165769365302632 507287303190726785609875237331438314216319737998363382425741546197587698904 79471887775050730787989761851009201036037916304325802580234472242201631707 308304968445628462744166946981465768485136418092923868043984911177597402488 2263766885607322977789660158615497627676067289405429989896161629282544117283 3537067095145741994241119825032004797937655444631342041904073764252566765454 838702542232618687270105024049269281078757475263003427236031205177459056165 3104226887400132870997069803933183168500238741434425106933938260340828097073 3553661097126482018333710027362919832202127273874037709845001860083094684388 444380410548031848783168897596856669196278918928758267120918298080665690054 96512620237115883601374634802231913778759201052112979079495697155742841700 2543285950562675478018411685013047231565175875897110912053383756526047198026 2061571079622130422070688731602451976971573142493324067561109506895507142787 2397895492956422910362744369451859333615631087013044798633050238321800290716 993737500905213492021657062296569496852016255649552583995565166977442860117 803653111091112810121571698793429003477019529662738248015601344396183424702 1361070730342513450454835494302678885879665345813235920270808872833424454709 768897964103945228836866330956455490067004470636482592769498628299988841892 866238593929370965590285060515692073810031048956582939711658674751931716711 3319568183563482403909930884201425401905808634476033524803983400527518331202 2087937793343197227890130183109128303142877623543391571881704954546262843385 1937984615943180060280191450820578035906032142179220554881973159705732002924 1313692758255650698027185397128129927416636058010279842889157621110562056303 3553848700829689000329745914507597532891808052303443669143907931015176900606 2237425536933209153691305333542037993189824706640368718654783262739201540786 2272898968602643739244665963200009073880203729084322673920840145938028995681 2666262556837995480754239315955974397749537244697511879475408475628423939400 1923656681608306534569270228612673807267991458804763631435637287607088809938 3472557790789801590667296659918008989208168127149413350715206233949471618113 1018435610025888024140197525701947925520899320949670309753554006844734249194 3083117332632450334695249549602097337574248148304300962677959625687572367187 1046817510479880409306372185854432753587197574495248094570242869363772912489 1248078549890751353054667101511278388751663430980580760531586035822177578692 3 1405647258500518828832986411590330207356494675602030514138388197071312918053 2887568852525120579149284273188463490932672810960188932447593900314928123319 1743184740424915594643552690916427556784581912879433130228729638556735283146 128 3595169465102036953818109075253925250350299465836763155450743492515391969606 724773298235877122583555610035747041997608270153824830152599966244524249427 446229347897492687815695876059377206579703361046010999176556878545857216594 559949481414724152650745100294908218157809448821543405392032644803571115761 2031919937903335668178810248476668835313943201426698102310984130040806607019 3249574804378444804518744229129656925910336125850143550680866525942811318354 180344086909031570124251593071964003505859932704790170984025170081375598907 3599732251853512283557547535220282413840052679818805299765950086103141195713 2976868954249828145397031668380687982284656583831312560312261237375219424948 64879916430781188820059450229145590581151519754887790293283217744892166325 3004383152807243997648259142130244873146284356335823532282122426364264036215 2526799464341640503421655924872267829769995301312917399412703631680583123797 2140321994396344202918179232640393570357651019898505282872183913643400586814 211069754593954351428287982033011079058891757947432481120506375889345766938 825111169549487184768846113094727997844439066516996768045772866936933963061 1521365904879611442703306759140849267676848229178108215523363390528399493915 297769659495792151519708123550973963968096676163596112196206064458850984847 2241864048448752714021426115797407630878800958653607623030077311571713860196 2403908522444285804871444878945981740840575579681087125322073427941583418515 3473288377068564836091849217330489023970783312206531663569691732965666027400 2105650796752480470548222633622458872861651538171859220435283524811521170678 959347861644513068680674596638172093050634083664057768964576192824937225522 3181821173609199475725599598246082493220395496185214587255635719279301426471 2565516038103721716884456261599461264951774643558939726174836112329202532425 633676790941430520508444518519026420885288469240513665482459400077805198700 460762178493346803019721009072899123617176308854953602417835440208528379916 1349392762494139736275153534766394703092939923986468323658373039014283806844 2554328616031697939077482007260830975954122686569216219416950165640434882663 2389232240906344607154182301683662780462728418642431702022120545595714565348 110139820013108912354177792137617205535364519862904452966661412307424761266 3278515440843010541631684912984908535965160760758427353344295046641280971199 1742795694059695561813347890835790248072134872216792223923486416093015189698 481101208267190374520947550170994124655488394119883687489246439888134126942 2783315542131420634025289496596351656298876581593465864301845273021772892270 1263152768135711639089393495403883035967937496271137790184040340750186285379 2567847338938809027489410749003904253307770960512115180924194611053180940955 3401110560435874488070663261634218034643107938901777499823122182950303423631 3614033352679716070871324430265314103531439097525217051989593234696927227955 1248181454113371282440125279883090181332248923637635600073501755990418225892 461964190631385902790641942794335597375681627395199271551251277507532492978 555934746763652889869369694458632967994679788016198849477432323193775010983 1161703413265461268368187598112911878420398985276363155403757940967744725341 1173191303174128400871635730733342824203033961401359706138799509823345072590 2681723292980479065941524994533088909881753791470941161552237671565886280807 1261016346386165076164081575055581419697637134063327407430274961830050197107 2513893296558998413395843618597265842523847960210984587243712321122478607106 320612352990854803345430778251071115934385452386458674023211075795544436535 2388242377052285570442781024020834712710835530976060691604665893397930237642 1699471758910633665756712506723874844724446995118990134197438765193055083473 1863263220888270345355535084078978866267845114882498687553710981420391409504 932912243392495208689117161881844955925453417797710388467175347011198667381 3300431868242979727964645172599253853137091432688343721072027325397967059877 751358430327724743839796189706575202038423761997958620362744208949470015775 1906914769626592679874679957939050852664735520172163253699738990383619718296 2061631840459654611669133406536873816810095108691912981607134056459439649874 1858660426056375921651275191900903424796972968071779403859979735958779509395 3035561748175659236322561841370131688419555337849191644995662365273947194988 2104800455054850310997395230672427616891586250974502907829525162499636967839 1773005542636144617849448878168783463032227804968706200470987783993520062152 2367482543653554991029184703437583534146560288555000975130762786610364064095 1198620028805722752356948096773245504009868248645109322620809245020369072767 1761765034412801691960506502620164352747328977197746071422789032886117529500 1579371334637732124624845006907001076204864963230369179325790662711505203744 2870512517225784989868984151619522704505263026547690947304227460015321908756 1032689821999187332187311503783766265155706383070432399573109447337339623735 2160109944298226739543680484633156677954960439312971589986812647005870378444 2757181086842057055758425185702255672672468770260727593651774556865517416495 1998406786401530635489853064653957242544717780767960644184400924040376454008 3364390000324764254958451415918932234788730356582856250458626434690962647110 1507658388172016670251846769189626911725172631239915444152360608082790427548 1788918485076862121752309998615810660470865758245507427314825013662845991558 1649554609145673340069860347729280529500408922027983658062573269570564527096 3536865220839819935631441472452543040020859645472985021376510432994321004240 669720063445461171008044247681234890784277553835324410730585335247127439686 2425594017545751304330119784398037128187549764762069891647300243637348122706 958192430631283529931571854698018903617502820058796470737190097907098168228 3173635326931374949900060312397015218846481733465583755630148467026217171657 3547605561988192017954276402044493041688918338033524324185201034780422144471 2754239679785786044490989875302405402961803113553319647744774028389968854083 2331479735944143274219960049326360412883731748626378359448394697948145330884 2518246951049105477721631009741746133654947560655750093104822389120527831455 1319413715062678399875613226431645168173666598608228664075474108291027161726 441147041712285057420490555240937323311062820031662495620399280838720411115 3418444954592569783003571793680579612641404114355363534811690895465113988087 3061830414768187564417347161984796434946336799404567063798514854744492854531 826056347534026664349502405381960519557420347362891656542054036710193897760 1780090091843272174232399941502412296735021301159187691620731909199805139795 78878483106703129159270813024330194224303183712763708628307976950145886583 1137615560713993336514069732798042524290394677942255637409777243835542888992 1342272199261591495949776068537233567420188458659193366573093160716439196754 2819178662148603306133775530127011972959477735852410115900077018606887182028 3204501011268561774970586437634354100582305138939014239038793873650060705785 3594559551491288720593426943291519486906218612950808616458591099798413354100 1475483162661121427052099434387860507477164847246291405022560605552842926357 2346082476441765084772435010210875686148039289072483639760434154232724263459 2622910004019310086644152815184924867820268620486703643612626238096676446616 823134802574916200467806474738246252420573948425168165034046998136633969649 3311445261915985655283437276617102825976601310645947453228962047820860554912 2446317031363762890098646146377804202286046978427599303491456626735949119721 966707676491865826964759419111616418740607092933061715380975295850879320905 1976258574736934555373187617790693623492612425835492705598033919122989580674 2968432660021238202432273802102970520388861011994952515508825450949247562811 1235154097532033029349521651160346521587108287654752088790217837323542455445 3098627657968103457659800894173535829124449603797198886192550732965638807065 2079692725461564305266485925457640308139349079137620515879773078683717109173 3304282769661266834130852888586024469400949489034463001092648186871254445243 2590563515244710765567719099309171514307195779090968733936673635727642109904 1053459528032642904605369773616564492233964919292608373520824913122092729539 1526873621825720191637026090122227684901306509695337610759462779296873763003 1268156492269337721738927247833853074218524866493312686777298771454233345345 894037719359050010298054571802188828912716183999087382628873584139332048421 83135538741455185411800872222302445237501921540348130551108295776348361251 3145265212351955580112467512365730149205242847305148343083572081780681328915 1042845074993077941108202321034254858826680750933285657501386631460450164650 3240959729816718249296119125811435930675114946103274582571861919361309705224 170250681976820170541484556835402632350591000746673770720542367366258549076 2874567471504357557047696093132158308832960300086258549305829381733376511566 121735440860827272559394975898399180888684091768403922382010427041621221152 3153492670624975302772877718585493894895385879693622805226255017267376421284 2891796273924437218320759997372617590498888598980981950350335330327537084170 2125475836388287529607111928087201030072314222336698805474552224927510707532 1315708697872432728918991283619266318711960266683671020334956574022103167561 3101968687312016587731886843799117043691919592879798748573108955403188166649 1237708506928984773668046154493873014754367000891409815370587628361215498485 625562187429663145447705869984276615344522875066614488398430828907907467941 3200028900772358910270703509054147904749245217715180639692303367752114228511 3320435401726437830719431621449960737949684705489127218103214128102706493250 1085247364844884268197132344226865802654268231671532653196270113727443124507 384777334 70 70 1994465818700409197622561476185017920337500387491881804958193243878488488595 2770964406815742396231805579002594838574136363972785947448179691067238164396 3186440729402563907111997105021065789265441198021952656456431443062656096242 2187072162174522666588830881824999487011525590610148236142558166951712568035 3443093941503536939531801311296743351812437651989321238042305955599770917886 2677005960537641975954916708095056876754506073519917619755329085494898507405 3485375315953746133596964912495689396889979971852371263354688841239830778660 3221063105856140655406229915235126969304717507227144308140114895042107036109 3354333993755224496409929961984567593687463541546718883027900455313113415771 2016490760304802969253863810805273677466940285214532342379374229347525241971 525778286003178497204984003874006032972569827056492378519943781479001028962 322897761554279442279963540860658662565311689557651683293013919839349413871 2421104894669073692577237208278434731028051191184970535530288279692938209557 3377857455247199915925472168190965223298710357983463392781025295256351250783 820455314692619058801592453886293119518421939817862301465124779027223766341 842086152944228138773498064208004776059548471823134420819193067089175760396 1353124687901563542519974245592861904087632472829636668789236001217669757683 222453187703759222872444542637281182701507999875836739831162820314724644572 1764395332372707048399988911335841474226161266368799476317906177560467409050 705877231105983959384367589495999968121052479331645600119462017381757413615 1828706832156983810173131612730906456315522221937626024197353939875459840118 2270901780121150285514303468546375466653735426937642616805979377902063233617 1908834701612378865243535085176928657320847202636155375619565272685325224652 1082670118053061565881206750292930265111898265795394716063650134068172874436 2123641006541325961915277436592244967040133813869210315777422608435381390073 379829723806727675154041840119325830191742933801251565755463654625769630764 2503545150609073870271359716997399320304712220216307147123766434185062226583 2148661056115255831735923831571500608420428979537433301037022446299938497670 2265751977820844349543538897261142408524726425561062584439311590351236786030 2309104323966317386372246687056926830754682166047543560898364357027220069607 90489592161622006351806928889537593539159725192343528134437067463213267854 1737197703568189806240919977242532300692621534071151290287128198415458780912 2128988046236265498146430061527904102981631906537042270899546198130685863592 1558773423003464742785927603848227478635968047543687295176563673615190725833 400329102687788368337866873619648458697754176938650089524054652484511259741 681005177874355703581645822184454507604059643614055433003490341566754834464 1250890933472728907164263537995113226866562622894566658101703178643637413036 2236758125529077381710245259130626972765914138706738241427972298203552221401 1979562341409602964122000693275657950274463942910019939444854539542670895849 2337129712393276567260287412493397959821266609036401731835551992071391553057 3193350694002109435968034646905187789303533936735080469079795111609879039738 510859627248603653987808190965096744592193136630224377562737770894689796376 2857168089698335404277819720735625261794271432643155015990658358644719299893 1407945184351242195620181469828609062269038549652198471886404275971847315833 2039105339972490554203619950055749850928051502044927875121346441901646207136 3029827813552222345441591376360394214311656747880124281375286105379866722641 2396106104287766535178260603992223891268708698793743087586359234779304207281 3596197168073495371733343612644272883956453793119914949612820268946591750436 2484126503406670620234501281608974085825056263107520068443055365953376975860 846645259146548508884928930904570219912928715862119053049706653329043011283 1067851829018853235846545235291275285923696021611766623446885382396930239834 985121865157689934069644722476491011816102082713333326098041335519346102074 2841180645806952106625673954806527899056973171125395869810713127549870201550 2618396309957741787705093129549867519145207590632243093010957433789868900177 640581911451568098399233929159174424432988213392973888305417065093481154938 3019686917515108010546174837873847420615157682279915536860437653452892849051 1376023114625666386586549608319547786352025493937094825694732287698520930038 1258591914645856126537333037038922707441756833882369614680280700737496377616 565073971480337729737736262739074191368371076539116765415100568898242031502 3040763720367647036608426333837221563738577919855642853482009231753288114416 1550827814738756653956015647582151702949441924563494746979000434818413237658 201183997609892646962848892056923267902317897658640512160542218577531693686 1197357828124267389653217928518308238498593359395428327552756941967620540262 175006415718975057194741837594687600139651685500871349684423979983358564530 3016718290868672313026443181335451486495757252579722910388539163036052554716 1055448994115183381398747194145820895369102781746761637755658304742686538156 1203213334939719635870560526540012596351073272445439080293101599796698389685 3328368037477652940650675123656186591239698354174911118627375366634394995199 2611017317329984110841413481002768139727037752229056911622358456871705212347 612604574863684369738180555407984524715420773448330387091627265500739640608 30 30 1500888393519824672175042740335300145128721161014657679467423172159044215418 3114914251388326662610463445084790800505551394264393379672627813463853875398 3083591639795857565345415667084490368492916928653876929483190823256885364237 2554867824688776321773123082631443686960830014452113385908634193264525664963 1324221197679751391358871108249825668024033168477969162464100472346804358649 1046499039309297791577693706895783130313897390393512358507486979611278290838 2359653254154912689961281381854942175315445259561610733364196169287564731458 90447453667133594006941993035168207615283977974235269292277360653137432030 1291261667033589592268163506494040400035011012837321211976645355700888588458 2382765760989089627203667523300434395717135779095246512151843861937164245350 435227441614636419015713555167969247987203222035530338130284968585220368339 44901831631293532272224799590755757338742025610792641772350478872782065933 2442429763970018819801645282379014477658930536351808615604275555021253233869 153221129374348644691486620533122532492753734376393012538421218502638302453 3495499421817329066849759910670505412729186903923191792825549702620900722080 1765165586234623570742691572001162791644325313852683569386104549749374895070 2980734089943347781847904453522372906018806123750221505879784832315748408706 57857195422905479637739328241713201099953308215848176467500166752903707795 596102516621423548923913192326598428378481990755712220142140976337001284543 1725000850483003095473761565679506746765970448689410754565580882876716784621 2441207834010308686050320530223582537225445142611450645329701199781433826133 3327292236714378977588415763366495580600349733353160450425814059049256745524 2927968445227796184098155041440343620951166419736685503144829791225514180957 771410895932378704065494264751843849845298285516974237522236870942564283385 270920204477123697564634223916784002930000094959758166942930672898600967336 1196968479631477654157048146337776386420888865394991721376652626607429939460 1878799472310056754121165157337509874862303360447457856497036804474463709751 1133050478023397074463876768348634572969447674045677034776038682600409710903 2847209162913890152566118459168044591497810770745782712026232498388984887586 3105175194537597424517392956251868696192436408247473178438479455573761262589 157 157 597071559053546614676102269369670552982907844856560224998455821721927123519 193427664592279464666373675580283820573099677050171204346379403009383642150 3200938296107714157335142301282398759178715679281346825221802246228952561179 154969806467670030085816691917649710823238227494295438717240494466451628885 2134460474494105623175096295463252733836367004278458646428629992816638991901 2352076579793610663709338839377391548690060200209773251466269958837827948932 1779514093056014637326780867781470816860469208805364331720631492058651057389 2002984471774407561128905995252789047942101220803302238881815103294057458945 2472890804431287143269960759888172604717104288413328326310646774180738561625 3415789705048065084618422323093579498856332488920139653749663587904977076115 2546179090891534494264365391730147548669779338828813831019868920861271788340 1776187530272198606609331853347839961236035361863137283071797231674946793556 3544238627796850719716584142211452155779365981700005222905786045817272485435 184671869416209004101651517087830864077376649370420768318068860964416686516 2592127262918482680038241621579744908672422770549366224568054797476786228287 3527684920172072935895834559623021084102729120311648941546202521683100433386 696131350020764816721935512493791652785089910080811438569823271453403608672 3200420488645482173147960346248972873218957878471071738177752988319967905700 1197399853025651944987648687117735959722438799349935327662299544286878636466 907699022759964878860305607361890436583954234974290449415343858955344635869 468150610014268299861640178867245522612161035676481080124161863228610772379 1002614712765721094102375899428561642192297109780421934001323640859663406817 603035749657323708811368371898796460300433213160695193424435612410005069245 3562543820846023031953460271363841347431107670791902654523533832090126696322 2476018604500033253459788581943058382063427859966783857999113101466361153484 3464368942454597023260686075797315976027056038577091723170667889585232272566 1817336235848251456047754007722626545962759838279492449106761446834783065107 2469712414010921925719554087325441305194346094390676689176189549985071901724 865354761765900608105407974530419879708594407689981633158551759681457490661 2880047357199164215991571406005728738836290807920680453851451015364932401333 1904537872820203726549705311779357788731720301948607383020719945389505740592 2101183023210282042493965667711340257267089096318540185604249185484798173028 725190862565873058695212510763940776054929338493583830636426449208275227528 2190870351779442345438480449639243486543978050111058214425655051807873062636 2956612478245504069382738726103784097106883684569175380032145809034453838394 3513346155860863295806245233770376479022091762742923345385941741478223162260 2015772837218056509274036193806686517929811300044736781544549359029553370692 1794874481336975017674635483090769052915272817259912769465626210838069019525 2023464540230305353200132036683583832140976131366782835537403642294719880551 3220332795554151167869675424281092818091911548926047889296441949920232883206 2995066637130103020807145815517597179748030607046342028729234378083969168830 808018414427328931958968573931974478461794212149618421381375352458156453845 2908934065473592551272279907032420968799314583896806205142847859607351568511 2733139703243421076115776688538129339756789167561811566087866283901041933543 1401404770194597642033198737984728407795421195897307990033471073454867991574 3508396172747492320248860008663705333162530440574248429667241582700076702381 529732937778602361120800413733047459981448334740239778879884519440521482601 2447578539876720629800784448351075101704319375132567709313359386677426799839 3029992340810564228330318415244754249955222246840136948492926953328967507052 3455549996570430995970926490821058733500484435895802743649237051870475655034 2736351952248876946885658680766985268033833639704166473942479601191996675695 3231825686309771133681069430202616293768281696649764846039853596968389798500 1916162176380567887148150333742364118209220480513041840054334139517376487360 2928191693666844701736545382354270553581272562924098230404263638050656086256 1490920179033225844343986873769717653633267666482674088770115940376691226570 3040647858478239488162478847822685765597781179453159490002259843220107675369 3370569267175438315263073585378606981649250177609245498098597008119869373121 898525321916051113317884385539851791318541592501948838840136142329441859482 1743681596509165449605129485178800778637181749089804056885901338902104106732 3347464600478091139741462475871236544829321024293864538327697081412108054255 1565117317877186053473727938567872855312277666274155511587504206404584104067 2109997368221576512664594217681190572714882274489610868435196116755468362089 2721834566885183831424001577987249705595675299862925567617879649184430793159 2110115753052964511169308598490628094732677586475811634906213008291552325085 1513778498541851549855388323351329091137901707878531028366284537101605702508 2842219094662499675605672604375961204621497801125571561365392851153228695696 3256456430192108823715189143181421784735985392128209784271806047833998935865 1530439260707076870794156627055305522447632525398063675374885588884108082024 300908993761702373986968205098766039555557710603941695971507573310840961674 10034444841428657333008005943538409140256191668882574360156323631530933806 3471016583229597854245770768810170813390697912456286558435038113848009918603 3567730395070843487070073656785948606741201407077444518702957103354353424332 1696710989779121129440430720807582476586806275998442700677565777219919190557 2928725105639609555553396659691782278347314316911610079314747448354519991003 1459711598792142718169497974567193470964577233677627420717042334060114086757 567391571926247985008909285108155015243364984048362222070911069446572053445 1402126861699176253914128850195373800686904506639294165659497667124689971934 439169604928084952713538812551518750166907518985055087726896760343455179260 541173578467054635677204573537476100340057214242190405848453448252644399839 2393603770634574132993083983703642788896711769248621089554557308902743292887 3356915804426708301223175357595384683837016295912787447197925056425197869215 988402830878071319073671073471417836462357783301657363601376317087671049897 3312801035570261046928351498894131002957215012327385541110243706764810606766 1381850053674113376122391562598049773411941211789682144606806778798983388321 3287769493919959313298196324719748630873636535858680539727363533633872296779 911204813544901888299615607572645391633899198338803769137571230640631673360 2578373024026106629066959682048949666661175813186532934047349239171386768339 216914662078782652004285023654917673083739509526448765231237193596573328956 1594016860565521934020194092298373732258111346910308301831199943426900949035 2608400381737072045026095063933259885471924255227110099531610458138949679665 2442322365620069895427529641012200884834510430063480276819222715098985686391 2293762756994590136460409739141643550481025401889095759347286698785606981870 1528099718021031393878885050326906587868117652078182869938987179865020035445 599708191910301219356052061948415593413547671704538747608694139011859198315 1123496903275570310222464475618202746348635551788064416260536892849032484623 3492041330625960375241970644480575933702225571726463237492583397933501836151 3516990091008121648216011538776728432670175913831130919401075456717736247173 444652059376968258425145358358034362021865495870090957700986871878399317870 2172709532739410961231759059970346671903687364696251093582864158608970653797 2973950916618600490802292194768152966112978554937006542738959671413718629103 3190353748433166379043495274054376330293069490998808912453723690114235215874 1035930623253942726428924896252850259127713109229566264963759528263726157601 3568368384213679725001116534927545132760251595764795475821422703800489150588 1330310650252924687600747854976214708577156558323797525347676991876608143810 253809437464708175392704835093869002513731249534625268183911879049914478985 1042391195560919853928199972119661099654264835671312467223839247566904493081 3464884421194696437919603975060171955659413683297344700039195878640004034622 2586243683594805995606864514879176272625463918861716643965734031683791979977 3093759252076855070497556538752773796521581405086753477682879560771959612492 229307897984595992484782787968789834787354807309290883945734911249645928256 1550834608038120435926654538704259300699099219872537606107801538263939588197 1971182431754489165971240917564083640382743761019985575911152264501599236714 709129182827110437519085600845278440793735164040863807671389770624471037377 1435819810631995091478865699432347231057306791569218053275525736279432321740 2539067634826347769186474084150368057094768629884430697398296363890310294171 3519747828000934058169759912078013780493134808042986406793676669834678926561 643183112558370791636701733062911013652161193535714135099513404432520914250 932605273496725474697223622874881561973302736882279192012647926319475412045 947705824199387003410987321724510717333340766011675326539701846021969236798 2541682705808503479984910769485440977821028680154798535246992098220250555536 1680490144159387802867253685795117225274426950718906695783408873730459051620 203209988426769292645434018623960709807022174811611750868678713275754820484 3244384711867798787490388316214562393549868915998459976658387772265810322743 2364071980252532116218279113815770942207943409657512342490899336190608362611 509260098696687966143537232661742402511987390547261737033561191186761720926 1216990730751141769937210299210982136411212092929632115652146267061877392687 1757065311455668357555263758595076484781796403938891303974037111232611104365 1220450866867396378822048147589379326671611056101339373820472056770246420641 1430702665833996027092417621536676585446781854924647184481461870178103348811 2183285054331593660600261170473192624241217654033882507606601523447158719270 1722927747597051401979681071102169845662860335066330528327422591996249912112 2837089436012968832056078282736580866629568770864751327623283864872463161556 2701905949481388271865825241388154219606276334209442027243099005266165003655 670258216550869082324454271955990240728820232212224369926131372739944488722 289024152769584052214451915585538349562125839916932400395025640964840768225 2705078220179495927197336603591161348180979972595810928376092169993570730394 489364828580901464652366307731257429890863083832496382650674735761672673788 2461345673455440789745159577770591682221715799548122478025800154637546977002 3214124402000837952090562216606497509183938772389188611958975061415510946304 1590194245574475359889113518569003504383715911477613610097654298878067588912 1175232372628872501999931490999481720170239957848733069752904024889946712102 3084577981494309968044686014703639205073927516408926538066869421040588705648 2720757931710655307986584012374688793540560350795673448651848518465209529553 2832814018696972496428448876307563051982788138208295369272212432625307982960 755911391629332081851753202241196592916980703043991082235045183859146731720 1544853660747458642793815689082660640689175022498211576152641377453898995465 239841672883027535991012358026673471198821768640127433415700381486086149973 2806246682900587736289825441257727371580798036044960678381855072288863607633 659882841434461771117758279376889300849938167387092576926300956176168953074 1571371497674572548910119706132792549073391172058297087418359870067496850287 3271540378801760090710201330817419209299168023925956536172434655509611018707 3378584750070191316388003691537056835511483895794891711364640273565575936436 625473838460294928056716290572893092582758240233804248604940759265018002844 193959355793566324031146097645779246490023361375616887683574382101605249848 1915554636243467079295399047296660941860683298354255268580040891526951690218 1190753038193336932563645454759638031836719743030703410389613097555540318212 315180466419124365176316785746284387644291119217532482503346435607705972047 157 157 2763189339894821909760820906977599693363470805325642299721284566807696004575 1911687255864387204154467117329106555246845445180197726702600853753259298717 3057938299236067365799339912747440564483830540370916538533596371948158720335 117013421361860042600958138633006023372377599010042176827419218288147979380 3470962559775691798585044091929625496546770268342685088601742748133303190382 1161396626458116758280736596622804384380811902081486481479618325248604241100 1223251102191492253906391757255887458154901777624029833692293544798695118761 3599290024282550609625903295322177733785161544665999243688262169954925113735 923435110687549389373843542861604455920595230613760364465605350706524829819 109620686725659288968220575309235710326037307207371100104446649350971960640 1688971987611692815659564379537963175958520138750254691214345253818320390462 144943997155768338911932798619575864738466447106770882929269793049050717891 242660848654413389612704083957946958253708004855454478052973936029429336408 3090119102005024404230294741314363173892303559039644231626089533489135381976 600282625984540700871426972177213596844552213933532728712592879149644071105 3438055304747859068687117968774049124669259041203622752069621775826037383528 2311319385899192805093940773021390611752116782529361408848461712884041377754 1724716750415373748163908166656097768361718997927188595221717559388877392229 666250708498060147945242025741056571022260102093589068447994610744479425990 3402445729850467543953488036986588805502680985355989702784534138976088016996 611937044132700647620163510195597194853245329235060729057670103801342520909 468005700082341337604412147344627121079931252531585759862091551878383017964 2775570718122944818869217386352597829510091488449741915966188479993011661905 1128388847969750307644055227527405198750576959427229729865185216336653786113 1384942485180803683852675628754902514922027650785462846910721407630731820593 1561249851181430209275247748243114234905057533772521131647111622586133967697 2418255584829302494778021963692754484275999483605304587729354036280404593091 2308924455421732443638574298990066888574095130440966756360159803984678579976 2544664017436499083533813567656381625711096895868731481307499307346015533850 1043485085059083431764912760105292624145135819272944810952262794959256552395 3162689313754666068856435598832369818095276453117288076251920914835024195370 3057323227080468612811704974562418980041820665162111356955336569470156560605 2017511371282517821440981104084204649351867146155196452281287358788635679415 2160954117153465705141336851517429917819122603183885993838789760349889246292 3586197538860077042279406775857691968467685702675417481614238780597529447160 2397209056291445281073445751354999755158452479573083332476594859820401822779 2439727729694383270320689588511124711831359665122730222933436810913606490688 2802175977754502852682712542867577110151768581693780700839981874210564413948 2551454291425594851532893257503314985312789349869264237278529538737964251673 2579116801024771681419289954698772840949985261264972346366377325067462875939 3106552706111328275476090376925493376278989181130155905332556255238298690651 150765728134399682260489672908968132956589938555133945961616383548919026862 1745048903383554759950520656402574540792534616692736576779692549254391052958 1439865537400500880459979649500682301479915548866130614065388266747059317804 3407392570751911457204256985739669169845245889832189018367451022745013724987 2630568670409761405557624177845381722376698984943435469958003948105254793694 157486683939098474920432221638253377121841427831113970264033111286363866414 1036885997354007352897233369621207304470815444435541971818051843751792709358 1189855570119786890575269720597277652706889906133993449841277714430543757429 1042279743109957438197983046102312255440806176270161313082054527640310921631 3460644410477601039707370228853544001402312395429792017793768618572972353593 2746059491037752174670483826840707570848249522398486058378461352888049317152 3275342649868044679526163839316672779576190136033955505258832253705508296765 3600386605626269934805456802203023344695896514974391894481297262547911138893 137375558991550486001362219951360378190210620457090395532880681810519444832 138300613650002072175152403340223776118124586545610957388637737875156421750 1368037673579037770563083125921277000915262414316984513723308317029838301358 1372543506724210049850766560135923910424613637558076447997010205694277609869 835182317953366633207526294133354173792451273419524466062350719698219342954 1884869310712664553038904353409345254662066934443224221675549689089034041375 1529330922656316721282264042372460637316512269453848661693539495264367491826 2507648959534153164124920241051288322271132686658386400368815204442035319535 3407664344326098062136467640948732495643410648749806620882321700657998013463 2005161815417757125348763881369641912876369122058730374171111775697914754665 325445691585480953327344730939966691184750482877914408305166756652523196848 1264815959323149049483244851791828458402923667517259418948873926336829031102 1730034054516983764110594372653445083629575133370410387586952759532957201354 3101965261104571047332284214460398805449316428356840822635758938870580698558 432260921590424078837559312335391669243112514146118882869023049865767235692 2559370135711101402034351453766732093086640967524785307321986058223594353304 2307823310545005265872158300954491921902949244635540562309997134964084529578 1003528616586226594932559951105622479779221707455618075556901495050054641489 778384309118787118938880094813195447472675971365188408455804901331322797514 2390837587911781980551337114922743800084690480238172543129026910460103218653 2938981292349006511136886901023972772593325389739304937585726941646471004593 1954396485850378289932735680724591778410625068975637484860513793451335102990 1498935726991876068411380198618601367396497408471267801845642995073671152412 2249782283406902499279923609303076435132101365705055071734744298000741062790 63304087544348852617691487078061460726131824051891694045967679017954680694 2633097443102395338637696569892116431417864685703826984430548247460648198593 2411948950793423398736819841756160760583581408152604613399220580147264723389 1811760090778326402983231156814555446060071736196895908838529254120993486684 1268890412854777450912164817320299798804381739454934339955685564981423737733 1205831144611633216117463632024256652777864495419123489851832749809852930274 2541808602267403389680448713388927393613922755924952120728914285182857230542 2117136713186506560564350159459752049655023233168706293077653185578224698073 1764830207910775768070954910375750614293821649913023595244100558394225381887 2490458502932556832648481998106778638688378600972262970431618229161406852709 3189204643478745791224973425541686439959116074111737494708441801128424220920 1737561206905376775419550163393062271123815348447911674921427021838016364161 1497167137608111414677533886905438779694217314057589457221303035026490731675 1211961615616761197480049714621999433681761840778014138656176564961164173066 14115837994715696520544539468888916160246147151128070928657810246834892656 44141384123054739613449468911296728028669876226767641460578511749017595980 2804359637087013899402087055422773600769567341628936421385390940118291276262 489418529031729892933777127000190502016851976798269445583227482342040599017 3178427648571387122502928729967158402844946306781915499872106457913582656146 934916417318082546975989864970599853811665984372449086417000013134829677765 2383148031609037848889343926151444239853881078357327050608519022066121743627 6426424971412836022949482054258011442077287949641988676720615644321215309 1037087897391709256204795974088331179032637553434945732158544784677272080645 3508119341934768142027696556771013081411229354640841820300926669452489707369 3222742237326153577508906062984756293009152036215772898149489629955538346921 135198561230875270825952602166163689466843840562174754490220453014295570346 2973738971402502085354429760013704229421816767300188548516991031978203895213 2776944474115428517220862474914243203107591083119248340809107167475640735452 1565913164611645615882411446403837923976723305809740331949378794768108589400 3168132117541348333101883649293666785684421173807973395482403661759969481269 3503720956845409512247971826139224665311697521141672007032353134126650282939 809276715613560600694927790565376613986158110291102594442559806881234793875 2552528717374786768223052183208666023147332607966589216444386115304035875700 2554204426425984197301986640960106902581222904104018605499585646213789119593 1601340707908074589699419255190757046233869939290830902871075303851840625905 2860983989581570537028256622683386564852761450552486992701697356490424225799 8827092889837194152169903895613075525569214074485594999564838062914608453 626392905290707089648014272704244944901149311644174425947688970913701172487 704956565404887066882707930833900427459022442977362615136903027860234119365 927315649825559885857245747665750230080220483100376320167067439914100692257 479598864590527152936040322586388817350581034532791621994987432383785485047 1055657746098136254757033460975251412022551425028774975345551151493486390557 1640656924953795151320685004015250236514847683803259255939688575163567934966 432647542666008016772019893949416766422616430994302446114318904703342027171 2294600799317838926929653715517523826682548077006127844960445100053948962988 2597190153158239323631808203312111082764316606374800683611047608660520345633 2708533741254038775055636521628321402767296756957875277849753392773797765438 1157063566434167479086692826382923828433431620744010853118092372294960670890 2937965464854810920953929089479519264365686314836494672339307594391286140279 3520163146890279517884127600525219983371485507026855413637000717152824358399 1150286900335870097041135171686837471793027385210478132693964558248928430612 1148701358167891905780023152814889017428108775518730501154999943468861761234 1698229751435471627898224783527792904352349800578638636217096662147111882211 1973162300370715540391023603523936252950308293648450776514453024438475264117 3104443542580757247871536787782988137665117382301719547478792030897973869935 3146378776855391153136748919686492551774067552487645732731130744802600577766 584389974561262583864085245608376716196987156832437897190166276900079097872 1609173160898559180279438544909641766759627028480677389314983286587068862983 835209096740297502647250662209506958833645639994836602236750586235404047933 630080484089350306711779658464872002468341734508214625017393224360929740707 2241879922198976326449660231762977862782816317524708612568290306991756460012 2182512475202748646039399712660360662042006584303947046411560338946247934946 960434595326218251833752041827090141637408866952803781375817316550460618514 195079987885296103075748925069370113497989407703073715449367103391198071785 770253798505708602921928273313847571752301498793972308394599081995232707564 164868095335459215696378315174773387534926342819769186079531653262005828806 291496331200652748853316835318686486895233613708838455141967009837782278217 2590130935434252163915403350782837843797557503553655096295244759548792498073 2836191223025180380351392046361250418587949565700644733511440278177225391796 1503024011852849809575087269518806583759569500131974697663374955232809415911 749673966683688768331031583885768911412500015602155460488726507709168829784 1346989564144253674740655400921226588202032836932170340521385911612505809792 3353295648298483836163829672322218201813138474328020738684303074817363641688 2356302747521500647026624844030680692364445500783533270029052564827866264837 2460860633996501702415912630317643554919480550778979542097940666039369109247 1325651811315657728365944811411443988201077060313957437165468718000161327014 2262748079268634911158208353913636545215477594418329244435946739293789596712 3230967026129886934959528352269786997138285375118511694303147840981625845840 3272418126587792976932736858591603459753826565421584366118114559106265201810 20 20 2974895342237541643567829350644780014962487535108580767976458027281419406029 302392049361131862658854700727902565492114031503365742404161279800564020723 2344047613345897223196210676799321276076981872791856991038913918560809199762 374021656279694995806779662361646261911840287802924162102811975513732763639 890653581259539631271006488527571369670298568112511378495545711651961628787 3230031756224020535988135424323146524879093942167406360237158541381502268963 1949139530503223373455045391078393004671286526661154670378480619452708756064 3006353107165193795525303396584945761986873657200305931710642514421236979601 2520915757817231470712509467229809107554427401007435221545824422881557470474 1833515411381291509491187418834621793826472333932321993225312218474351129071 238932339669366896130093579892807520635000157343243775343043291357500287611 159043989906137167944729700689116169809156836712073905780325579869108216012 2635127887185039202273637780698081484266891037256536599311895952380344444292 1716495741601865261582729803896188919505488539985660338597533465789928803872 85066965898193347995497959677592535881443019627180510816452726307363744349 1796770015667854903506911413316344287189131688637840667817064267303486145486 2214939746787289928655260667359902849838822353262873700689735249750743274516 2719239167062223734705996853724400218849462611866915822368579643506842125249 3273383341334668496714246984892845741773041111578303405529722981791911733139 2098467870180838776062566580323688344595258490461926634200941771223992555040 157 157 1523226752758515473128169096933096369600538754617117716719348204559327997785 2173278843302726524389830380745651047318002701628612277171689014121460744680 3041406635036065909486657461237923797021655440009383870362091971687452101223 154967776440333099100955599143069938685564668477949337855699160726485661820 2877869665755601695420144861584497196201728425752020380659274448826171717965 1264474698692594007888830226156086179820618538635214583687163862376512916810 1955930016654445324109041026568513234949101047675961995253025334779930926035 1905135808879919963670300323339673815594978890689198195118990433841866910462 2707522760643759865901060290058203044976293982622875888420456290282670000881 2631160439645458154403045987392277759239792752717546562393984034071623304380 2594116489599627123522244262273954276696327289823838565070411346475514427385 638903128600465675017136744828618851971695978480134289975824874624963346867 891296456461165144829151872458215818455612301827858427521629028125995678745 276673440862127974459054794337718577145615652826370084536682591513638796372 1108647508559639566255038624764164506021678923318260846639449991657520658990 494654412424927548921857569328727231997872759384222314363894017127584939856 1180431088897625577670806474540619131676074904507423346022622575590858235668 1864718155886332902260623007133543197594200150402854419486055349366526828691 2438900816097435455596620971687882816750407765218894228955032531828030196055 98188463743121359609506422426895834916871069258486416774878583700525182616 1316720729349611224924895765189281110243692741228820800690837791144389273831 1713566177597322369362939975126797695452238401012981158115916385313223255703 2576907054977195326418236468371527419226608639801583698025981211004929086767 1440224554601233033863890817108224056670250865135065637796916256067736932778 43657797030067105561737680330201168235403769132177015895241749601423781055 1692474033908779020957244497151825950130795128545507964736104879877003094116 1062792154683138203433313061303384022614980195128989136522604087206094290593 1885773561860953574142742671625731827584060683594062509763710021481534307486 3502319274406482978733874055384364647432629730432187100410523604435042453339 2301898717235234349357835500322626346976382090958174430476370686243938455805 3227059870483468119386101006014980326844143584319689006948800657998657408243 1378620929202789488424565506744438642170278620888905039798942629916946048459 158516149196092446422613481500591145730013896189486463830867326541930229572 2150651419655435164976932590230352641297511382670784533487062930456191215244 1346378468612297556913105448898575200110042331363294760716853959118820267676 1955316764416359104924781025343902001637882862350641006824022345941690112367 626352134987808969318317302973797547222405561370420340428261984388283218082 2507126208775555851673982518471601344141368933506075637854184854544004599865 2802878447011283448099708475677806373354409188669182745290981767685901390774 1003063279213949960666103071865350148341465396402480238350515436601293690969 2021885196791775037309777972775616008582717436337471961562392787944192819700 449386679826446906860446049532945374673309340491751723729903991301478132443 1153487160652123785174435485569738386096415614200400464849473894025086707675 1461776233622351089828646004161413836280709135645322461150905803904642751271 2628086203841876566631513684911603625639560354043148235724245697829045456400 2240972637498222841955814086475976545395499246376723465159823174916867221992 3614655345724434363554515227144414569939787602759540195824707736163910708113 2299700839937612016685542453162327481238130239735247084689723721020975401952 818064667708846970160309712734408713569735533443627977077023741625614419510 236449713667470301978214504547126314751294298547197403379769983105858261711 2898643899883536273929939876662614489020571277892106757549659267227656961325 2087997316155471083959475002719671749620280353676132939334486384299347258533 1523817926581897164528041853489313849521616110232043663344563044357221221579 649186071790283725770551092585719337673457540171463924883471577942114176979 2314623603149232535910377853551166962510453585352099806541062576104086187380 579320555977904029880976187403895754781687938348856133970640927488410030977 2148155145426878999407009420794869953354354246788256800807387974784191806507 2020758400214442110889689781926344331316767833981502887362936501063102588040 96327161581960268357433707794419538257211005500764508779771019991979952707 1214145936908760753026886442537332829700317321504861854838294436147219742991 1439407269664071287761577869625066098769509152685643900362060058766588128433 1463101286332177569680782971660895126419499021978139740623701365120158342037 2930450645933176840696676737920959220891499667240113636806485732738312229204 1854597646388219866081526912194599103966282238027625899763435676478469049757 753217947925573273618842975095087072488581388579954006996478633997327895910 1075580498750503134880429233815005701134367903246580009049272906921582409497 1615582414548568422104133791467945373392780239540881218886540075245091322369 2048948842604663995312002440894927825941683418843437941522793536932798293242 2399565650700931182893072626083571143493606216013268159384074144209546808183 3270901397309817725386030035272089993806538055537526186606760922679820804181 76672003627319151811322600661777979247776060285942353846685062784316263760 2007515431451069601254037132774358779043625809542230659311104380841643190741 2931701507032608949967259385062030238827316683217573760973987321707003186519 108688409332791587578555683617794980983260104866859998808053146281893227988 2757104081903519242859778745981395876194545360649781924617020788840799526138 1813783365171609799850382609779284043624546236417131560416850343227759345031 108946184506002514155639164007226405620002509069098721926447718072308229320 209740424862579619079112386470858691897855852525738586852028719969033679515 3163044515702911410782198556835928747063371558613563263838852942787651412478 619384443725308092072488803705862888589758747921924943836194278178329780294 1162272734571630530470028859574864984697583562247306428697444139321666705944 765883476681219161196804456176426626924280826406864456151885287604405203276 2775807860672976894541478819457032176988323427540333482728873234400509360511 833384206161521578825777787699166802057355791447095135615298239945644345789 427698336492158621235114406384506315956436465075675433057143334935267717356 1756787519948835005178556415640919597458098498031325865946513256541542023930 3395096179562290957096767848689015207272880669560128688684628576813691061376 369819261521508355802215614485479346814131738996470508824442977772170681815 2205133127272919767125206961874945430909707060579467373667142797334332481840 579350168618611960517004360410358995194065988874421137068178119248776860184 1975352621744387568643635282067341330884369573290920694684111726538655118345 2817720786469310822199712804029407166029812208786203459201994514424608260757 3140310342160553632064330771940243708434261595602677968486856068338201101522 2447880201183707595456269065816640830073980121472867580373421387206321048579 2159842763138342901870864467058194724492142131348258016697979871005911586428 3336596493870484707321052613448700422676468461471440004511504711246997874685 2802831266513099007706226162097763051427221127540910517330963125049891691060 2694624519626049312156626111031490865485038117828563633749141392309748885108 3195647387780240267475609291497328287226169877781127395200129704347292025387 2535356784768091516512214976035503184000063402685376636827716544551567093717 1401554913426177857735705270060172710849499582643993212261226684517286606477 791706082958704609783322249665180387467852835881046278293441752145630872401 1529882369132559107857695029480710963052155001467873036387068105131509716761 2942014684365321472442626343025888434165727330734941225463504597919957518810 538945893882307198981134165433829316972698879798040206769872964249020409085 517293439641256359971405524039492786088189336886913687760073197068785515859 1425119112826044033092933241343168190189202966096395290783333776384037080342 3197205828003830399361124956300964422349621289089207509042577373697245928077 2108172297268026969662618663290279339003240824641321120750624619467391084069 1175342083197719505217907202215779812926777275674770359910170322354306546907 1092419512970831433241295480044141255215526242213908181600910761337839920178 3482311554924671780220623397044801649955933541435038194504656458567428789032 2957292731419777413344417923911967413301512843860094715626291931210458772357 3134551847171690754856751863668538931055316830717300421957032274020094533457 3066485427782518516713199568851962449982870019195592107986917725665562893408 2655691831791368866611494396538108833867579018404991575109007305760507850192 1508943670960252280132374365718929428206417066265724340576270423397668277323 51920050871167128406431476279793321374672202216564386054695792342261191366 2980882261016080670464887958175069844185381400313210546438807559991722623405 1662266612146761679561586101752163754625731842778225749069531314165382772985 2968165940547778936166889932125992166472100035533174115635474584447607454524 2901819999206571386971549577084215877353265383651646402941876502566937696523 3113647522644983724097454037447740366094531635099722425461641967180915112044 928737199438311375544778331762143893990091103766175851028518040364047187551 163013224298786587603665965584501983470025702721942349641134364618236049906 2720985913440808824590205484470805024428793592772287960392620346345018116115 692494364876246758872815244300028404135081192077781587136178233100214781165 1866060285501153069737818266919378311054164030181716999906357150051927984015 2487319198614698147221521705484399032727214603759872672081500116637905901928 558552366528516837570063075782698353732052791541417148701669901963384585011 899353266417326659064106915524338912503771682527490734642552727039419732814 1840004605366551545369642227315467605741647982508218884505399007376635713250 518073414806450039968476570235433696266947802010703202163636517568047077259 3020005863136221705702806449756505220649701814448974071825633490180614340366 1805471803580194856775963272909645169203545761459656238857522852130484467138 3077681162177598372038196052471671909124729185305449511415662818123283163438 2610659824835451366424038671327661345831076822476381129647485304754713901757 2916662040929412850696726539692695765962857433492307502848963773483453116346 1011506153777616038612007406428470438055583518011892416157833726262142643604 2413487576080987127628104096924449305135292124660874756793485665983264994121 2814251465097338626512713698137369125425220082562857161706470523223073821690 1118990257760992657271473475950000651712596506234981323571497466288733494137 849135959151596833618912099841741313337275542938286275670519278546332863514 1139532221407282506471085991908447717339643276786745625055178001019401858372 2777846326517462934865637071476395562027684197169677404380885569754356815884 1006868917481966445435591631874784979250039953133103049953080755405714591778 565478122316049644214907924648564747313870725897033089701726918604042511374 2436766798960236438411598924893727744935047917171453788790634631873290610979 2593055134356255696685392939823740622645786964632247319628120652833638293431 1512921896137061399851879901146615177182248519615912756938691056719365995593 676107537830198985459857093357697452150260090960449854034879454436273160279 1297317716020670488235697038493547131734658568355676395626420553630206564761 3204416659602465967362987150591667277876536657069107134280504991407153153106 276984481472607192370103436873164420821505777423327227336820720818871549050 1123140213622550242906190844417796497621013751639255814997722879688990301310 1869616065999419784451160727938969767250558600640895587913726793903979882325 3257901467073079387860595776917049504373534752225149439685962842376775289501 617 150 2374667954437854407447309067199627759426181676275737343679008757312511470939 863230759767030493924919354054881338152609810902181719876397446754059422582 2697465099622878772785785853195119389544158460397823384738131387166902868200 3519241321328298641491019952245831430427366481129025561455800591861467238606 1614639617443766935235219360925589801739734632309196722796242630602632431187 217218779123719200539195418571722849796052383987746909030347303793653062608 977064134723393753598437853968306901579357944952999913965258585343977111845 3215204362197253822121330851510401551454873304900934601303912980763680757135 2859749217411736701840414047714543280477080759357189957136955091718965923743 3313527369529140395454296008269245194031071348995956948384659048271811387103 803071415159825048268269827872073033828588919069965520608216552443571414508 954071908744474578765270873199138529046269543337205801843222212990499387107 2273767897424000898466291990606000458384605332743387942919400522705993206802 2029084636027130114690753105791773830660130093519884394937237125847620186149 1177189475475158872208905839987286513569809570993023366857125382637568348089 1931683954755729587678921319009249583155784862711008343702222209020910650805 716209107576778945872093622795039899096669059749246798459556510962974641755 2748677799631238215741246285337449642516551456239259835960567465569073507207 2134841565020652276825490101006463316795419321005551294054215781546726849780 2658297242561867839289478440124188450591379776181135662636473167540422947111 761938662615378561945002719229189761998434679506201845170204116282497205249 2908501026081512590416668129443080212538344554343373774537965346327582563061 2815986104765928708432580965659855234476684797878536619416155066192032252484 1427132888219343082147004636376622189783828627615843574717242541139266676775 55452020920314061971922262956358825467042454611031667532544745068281720630 1279945389733465920883341259228210537120563666076788556496793647895846632029 1101970176688058507372588040467364940751879960617743782092314942352550138953 1018694379437170940530724886214430872361380548476872399503716199527340868360 1189066683564899221747174918852481185844640714988796368306970470202523418567 2608541166585702130616936523189657669693997026124461128567623285356285017716 3266655663925481168526246995485517324148071118263854210239436931395153288157 1476592886999193749226728240006501216908138820718341273773192279632347043961 262270728241138263761962808858661398498334463629012855881579963805309048889 2238786601927249490478409474126537954747377031346972840757730964398010380473 2717930291823121771927307504576678589029751150541939275928987534755918468893 1782882310686808848049186171507573523382166957668198353636212531341929676222 3554539977707691415928915942163359199447369858330722863144496543101068518583 2336539980354889476671739300624043926108966846281092052479111941181795531566 1230335237689572687319011472769045931440271062433934716802812328322208844804 3333792954898851458649756027639992670701989935704116726188064405378919576937 3578553435913220974783237630827505112740787243448100738765389601070727393498 1461977695965008157833621993602421675688969898324196341411245667427073633552 206856966238317132149036533356118231388051530701782885361058905619414622631 339529840483614297447154208773383307825954559306308369462661834139525205974 1392487718926918979672975988542623253836189825608551465841845210559758240332 2401209943642115969841293837748409497428429398626649292914066947468289560355 3433440794719059783859645497920458539769587865208623413791587551461562367807 2566751164620253666172066312278458717444940355406727736785299259564490564241 1955840335168123757467746558952773117756555502866611969303812044176100991451 2866371172737737600951069789456977244688743490595193804779574931502297784268 483925491073211859025689856033780106664224430247616364879363125260142325055 973410328407500497936729445000852427766970409954356716788797368634634155440 959666736707311156404953131842543129022331031095249191004318444941383340955 2512348514716330609033009878895836822865819286587437024487844610139863562976 2996541236110647735541343288547255024944604660572468657404130177733185555826 1525218323717874160053579620818088987487808658751830286741450657113094983649 2899326196654277138140204966161258433648002716926180653573566301148624686424 1811030118876396018269079608969606178093591317382611155511454908508112479481 1329292784607135560163989385219117146743967576394379558646118209550272822033 1574562009487029561321368718887495889091889012509266556826597926424371579432 2501697767039619496851513514277069179057281481954280272641528992517447370872 1579637153560222973520926685484738073942382936040217448299666699540435457292 3039488527480033951696608975868408816399738686137197020500792511472723012054 666308545329233828262536026955544678502055447343581259607747848947648073262 655466393099638517008168942714109475340311464861216198208861693527089373401 2798578375675650994306221019566244013871314970712091057001475626658941008701 2881873767557131503821448856216322904210841457921127671854740022160476853311 1417787611402629015565246496627734368664978612197370124281712336877567215439 3124432502354069426118917867946772901049387325548936811039065770498506333140 2269706865261077685848100840052456161940065303358644391205202741360923940240 1053136034918855072388992867610389980172560194056288221210373022490465006375 1146390204531419474673660324682619393049368075079386085805287441507362933528 966865593788298067508824511134228863293935504827142144291950007893269175032 1439138811999273781036181556132186337149909425063781929433406601277832543494 3115225185696666868531098417765937522673857446905866496264993660948852146696 250997462479915686186827139219653478584653443978652516476122523983622598797 2215327704954624558934958464175409976551645132612622055377621867334006982561 1069213192888514986787195052464117219859079751796862029550905335976876042381 1827997738030884078067978619862644511166334770471555474949758681129748240538 168112661137895403072738486813093478934284108837857288477373579826639457281 3525023305469649623329016657685286758169177028172655518380514594894984297708 3563191083415280052307720508854768865516997670965297192962070782073148930306 436854589033292043537096370879935622803834387074289662076669120268913504223 1871990523059295771964564417561056901840952953564336309436469837175419718880 1804744512005932687771066152035063019365487078847886747941512883215601117068 3024832839107801818551179298534948466213831370744607871628124937620945796303 1392238306665910841582218437485851647745938813494717880251250895263974470174 3485872859221117468959181630541252283893592936074022063336659714520690021609 1267937691617248348258902018982874883249270015695698262310927795773685993897 1598839522729104929330826640918916602675822598712194230044071420248014839062 3342382961739111768211129885425265931677000075697431900163887747080609667602 831527534156045035054916389800345806329506672507231855183478875160617589570 3394202508155591836404447482064003163957315280029618072921110872487977331814 2483401482385871212007317071339073205959397986941856135276248791735920761914 304523088778704788551902530306267871967273530869407737043744746822506875374 2543095378435391458499597678772044779748367742246081562532030691179562572319 3096122955412410497810837372294594494172929676958879107165789133916144778854 576007153861484871787104231063115177369983678194549275082483792537043399134 3089611598285665731293636384239494067571001399096715536575795090092073830958 320179586506926814941877242404694653781176017409184705856961608081393762345 2793455690893957648748074440670299043985400529706817059516647875202461330915 3326572354952938308549059491587759228288465959479797695477052650903413715942 954727536130272374343355662144997237356788985502040136175633454841107482934 1428722002892307232366648434380431453320679932589299793140705554703960229931 2538188056690783131560451396068459878292967603202938556635425088845238688561 3035074025086103409369458833666052888340979219710957247658455825847496744337 2126056726534955488526053071965134174141161073067360809432234185023898594564 2232428571477820192273282264962667823810731702111289898576945560125563568182 3383275948034988346170315364277333806660955625027289028089559773149052259617 1583298177426486687104486163776784856396936344170689607973163503666088712563 2539727321912797267968214305729516192836956118688595512677520800000973473231 2180723049039958085626044739037654673660881278128712222142333541232551224255 27058014854475090290474540222139339260014873706631012032248504413144477381 1720552582348937035132958178830237699652277156678682754543875899907537044512 2325021175892277617179631403997355434429679516724928479351952781136357824291 2991818790729673753508241066481875124896734814798765575523903416709909513557 1313036216912777205054336680489953581119176503739959521276967998429355611796 2238540001064723819263994651665335222919891244862231594980742880131354016486 2287643687141896619436160741569914797791292223310128109048796465591757624463 2015421227926159397066052964993628008149723826576362092453098333200062331655 1468661887361873192303926127150194124204093647208464636036923060387421527726 415196871558264345795933289458733876855685112240891182249166100308021565020 3216434696010748432248258708159893469292012890935664876144722781944551757621 1567510604050341061234477678502767113496059385668936951158615018097583737093 1332071163148572034404481025366614478240461134776382231173624086844464801625 3065814833222475830511377104988156233900900477406299742305545660680909693341 2288552087495231101684123738161537204055113934548945889840404712523785053763 969068402241691987234447400795460621411210571371526570108376868079883165594 3501785087842195271898475368253747446350872530459251510222324425925414509358 2371571428590148987454126623373352581076567975624771515562338991626318328765 1717952864271313027495592975651066997090118234873530422503517010415663933593 2332003349042063769957136742674848404610648984394923557195754215271743702115 2662879993552938875015972210514622938473695659876549725007124174284822518290 2363387311296257177282320461257390914177659379684124367488982117266606912378 1499901429589574162172656304586209945280116669959505087677039194872369961415 3404124144393561482267916106211004927645496834017507179829046269029407902237 3272991666161476517080201656183640826852162731963055422575960794108093238548 1224283121663910338803360696598084027271842466658132175300379541042527309739 2295720049539519654585714444645950308574203175144069959420738259378488377047 3016493483866789404814251757104519698497357595472760979824309082660148092512 2864448303046710890283833348735325269836896915903020850245816577087648442426 1555911698799409649757968032657112843163744283566226261793465036601589838454 1926953946390915624235161415468595516565454490240936135965141668375183693017 2172282204389993535320471525969476106931032455123631921620767767195117134040 1264996878680877829593011773953569985114586681819042374454372151033741476182 1839048529413097073448468692604306811880762950714974123760016316226670851685 2364195173861578093519707798339853251231113046940222548775217306592627360692 965967467936577806906082257070172471770449421231025294679897899208842194719 3470929809063907647178743342003908337639819422002637206130133469590101609660 126299384862701904515071674674494243030784769932416519155225395880135624199 117 247053968240979794015232940052871474338240317853162895504906279913283485014 23604050915480393687487280002326207205129442432238888115009189017657202828 2177677664567815005940615801585904337429749198906592859245224070713382883684 776263181949091547210947666855573766470280740167653698351441872601872511316 2711693461458753559135829589234369029676227277712201193120145554498564055865 1507214166129906993039259180339575990923210630903140669225263385977472848219 423093493477011852748541146561279170011626195253827985519440205312385922694 2855067884509767360736589096371612419115055550063213331663416559954126918642 1167030830624809685405988802856483919135423117082141960424861885402548604037 855301496619407375573662848583557310266731656866279693695836108094473725605 1757899865936878371355465624415761963064267202413888681768256023694176306403 784657654550938204133857724217871577202284870875097379326042182651410819472 3222210180323356267342057869000828121522804609594840823431805420697831637745 2123224947068437005996015524352179973008927268174149485767365015704177875292 3530333091685175072097085186674580692089714105652309196783680340247611243636 1913921852494883948709480061936811264577239391498586186529605964823561685801 3603931099265659911484338097324557225319129850335884327197275919610800156739 3004337705845694954643149871143390747201190767511252443813292506556404072976 1588964352168623681090478653417147947785898280342292845962183756082345079514 2770498720330735269781615969671277797281210314465923050923048542269345827410 973125796494060004928684891855450188684599361247464671771771927976758234068 2015314839078910569843994155140216362151783308659675271174213438313881417815 3576466003166510462210389449933668105435279831824951041468332877213808410621 166556372214527053723392567376886674975984860967284125677484955155079478904 1854819826682625458233741760260640763246918997650545961893722189158257435530 1016496855800624409060943564848845074534082608571119933024494828497320052385 3193157079273768613875757326665180495216832758306336023919680230711714374049 275666003032516286805343369006197752975301678331765008821099336708486786131 1986861216335204480051729666122163599303087772003080974366539153373938366739 3574533363138322658250687706495524928690605287018355748463720741406473488324 1827712906301989113607475138356556368671593482381269644880672111547740637168 1063218330838840252193888204639574281431928716094679002966348376624365318091 2776908646876763126160978996195124087777732297072078953211778916150961299711 1032389686173187922870169235309891743648770260052474867942660066371702583795 170679943478015469405919352042683351237877626711226754754415103451355377079 43902946647782498353157268784405317112949248319764314248875234405754604848 470067187681983661363211541657726998561003584580162834418518493394178307623 3420767939197544346994685273527484650298300994035263322119779072036037180800 847309274266002803607332513015632062816923186409025252889857829778061955017 3023535825619582965092505819520931376840690620217162133823639871157239974447 3536583391411346655277325178628026898054306996564288374188392265189649567289 2770559118878266892184107792108942353991141419386895119869795663049555580487 988918767837254949598886991052804792497647813656580260385021926488331503979 2099514137725511393151192825433676968779093925802070193333677167860431336133 1132036817976447157172111897018307882293732587978905533956039040317594428752 1737718618334295032828461384262969110060393675823464320591545747095725169943 577750020339019461677101479170209465969818307410617203249157720324893617065 222395985183756253128370910451982922307475231287106241014510689464048604407 2787066836101783349398845639808817063803979358852772296806358003502184893893 2624096007972564752772115262153943530790688510128617738815733520771087742074 1194035481950365523767085121233374401838707312542989089074718591594309418339 1273601891896694646755538040951790295991134774780114811198347593031402471446 2406281293299479128290751383944419476157590808298901864852231503813165160906 3272329399413113737508612753597709310884388901486026663630318728959475237840 384566049116119566025471581099949773774294177490585765723027315740551361258 1903084431659614940913788603666761304558495226757329148109804317145710109105 424883369013544108568495280530444921202756210089734125501607141141869536068 978722787030550737902510511159687512274959615824986914274246678732596807389 1959019901865670922571617064133111625200140694648041248641801826935650435707 3144318639918889174051583555680961209813004498160647083543915318813499739689 1933321385622829870303429768793528487708732682409291216844122125592477466705 1413233142707090921887117775468435338213949301646745449919660930204361451049 1195585196575467184364771994599462243044696272837345551168098840286750764986 1308229636001778089924811130394185608036459419373326457658531283544068945580 814307497437466702691203432424828238573994709025144637815522729611822900125 2408100132725573965702306810582504978298981378361225794648241982594051755604 3082266851545470003349332471718985809142811908750480502177209740108388341166 1242532798163925865859263651494290502200350013732386180601523438766754856312 615687603134422638605192348808512588601453775626688047685555054877330174412 225120952557993653835798563921238481360991133467696865881204335330735561957 1986875054180460528544184802943279665820863690102096833487770645753349662570 916449466107707448852763797212244771836657619567674534854422905968926708023 708836639021076115264186696788703706559607735801403792139580882110892036999 2460187959184001360175206910231368036053377268490287779759824475705464429408 2506926928692923195437746709340245855086356993655468009074873155957604561646 470547046951593845466752726358351676455200359359063355173329860187658832845 611618038636468160974771940773309795931387374792321840218059486247084713967 512031202446576476231187777593942452465398294332676397157851089762471367956 3403517844087502012375071397451840939525478376481140191865033310124219711872 1236366911561918403042004560913436789218556147484956346229561672962894406615 3423874204389569325263604004243311645546480000182808915142447289300449569628 1660695017477604110328208882494404046347939060761900261205170891378208570799 2621220872155740070208995860531436616317512107262626879860337351696274207664 2820950916890579907324375268651920942966516232464368183498450358196190230842 1442888163258042742016173586910860753528727542892765880404584993787354891589 3153410965900103219418282205436596470988254087289227721261138091868134700199 1156570043581155864227130665532272750336940616107278259883997283295792612107 1768825309289846919737394000812618722492118804269278342062905296453557115503 57697739084256409506107447333105691825002849469105790187770298811667228128 3478352892855911674308705557433954824299843121181416774841289397400199403189 3194446024215428495224224386148610221646664115246334172322320202558324167300 3108458214858034969184423459821026462830409667755770469497535517122136577106 3264132566281615624572713130436726627653510234791659070208937990244252298468 2148990089175203567486401434291982622706289441666645943252258429772606945137 2766888756705119250948976320246481246914131081670955664011634697890174264437 2827398722444427415370110849711673843210218256540805814097541663810395212589 2383254261281004025736328521638875423734710134796195571571620731046370474076 1317659082921797597406495508763097368023613702493257603236087583988957353015 2761408072836939090213047041031066084053745310778526178387209845486271708141 1523702459340223316765695591035565327894147802100051649845446304054360224645 3166462097828599770725683254171287437262657236280200428544011297571145690408 2967267987955210670808742824505398941669021602784521572877576235949750676285 1033372472922005787506541300067771153464540982829911408607936793322625276061 2507942950955591899286629285585512125482060083791987931459387814517822858690 1359679084595123706337299777016125437249381683353927317873156550139040631727 3328756649910126190906757955101976236829214108334217634532617667216228846794 3519915284095110168928301252990969492127984462762109883862818400571702300922 3546012033590787255604304623064838455486257660742563043373423845615463144397 360155156147808175074741039989509882050040980302059609332702775253613319824 252812285799803201971451346743591994397261330141100528832147298250410368031 3231634635844187529020215057141052519651023003769491420987316025602656038995 1059327293764938308123694819588379905191417327736085831361483637173222492375 2475072507165560215373700510956211699042164220422739180191490964647966061268 3482561767885518510965199674995999383563397637805836063829512669637217224534 3560120512970575410823947375035801196189531451973340289589293161143268644027 1862788880846541860883635807256813753456285635113959754210109686176745284549 1769957984658383237553630218915408213541307784136693690679234715336188212687 150 1858234024232165466115495921598499698151197543299045217872767383096939017264 73934279296255687460434004566000380471709922872980316245268847806214652675 2577258732093011574121717557188072141001526520519849357481740738873379111534 59528211828699420626924886730261541680882130654703269044027445980400981553 733381644186939942739822301342160723877068796747907248842012819827657325115 1748969335726205238986938268821198231529542338126614933920862092192276742905 1109399980011848037014749898484847836030468319483137851644935231183767450338 3362482417164671086406914377934298788806475271122570479404265181160439845942 2876139393710400858161836819201940258622506374781181501267947185687253375241 1688996770698535655201997468801962765220311627801033580481936950586744247821 2913492016129179156909193685787666426693925689545096374289521208414039333953 3354666277509405405132797486710527071925365989985292770755401726101508470842 2860236070295155199128370676164468662922946293563419437985452291944341545927 1024388278406357250790261892790232325735543423008995788405634958966271520079 314640450925226943386381695520691923464961811478310589443158388382530176458 1276411692535696229848453929248237301673730058328829973763032174779243477408 681868939304090661431005291924758166146276406483812267628537804969538532630 1885593989211176424027548634185768379321871535677203149803411468602705071739 3251380011309886413089634980708231369910690576345443203300071288879992728651 2510856720479755719620383517677319873879413580332926660459520846294063359591 2260748632322281380801684460764270959623523550951223027730060045122060439518 1023564134437470923557387413374209378725177323809587593308973243768687880617 2463060340973796523929917830497900038168089824602703781145888896268999402288 2110690741816917421141813717372544680933675992920442019908722015903072310951 2384556452842863092449196194962877965810518466828815476917915590173429150603 1619910375490073786317699468108842282958556911664496647198525438748243972754 365839421440043817704891181859543147715147949959432743562320032064068369669 1912347749697410245102712303375588783839691387148630598644291957761109084031 3408245053698741707363711031017740387328231879342028046844164143152740195759 1822658881471746285249653842782638010240350869943993331608349554259220798719 3270513105958896593753527532516643389465139409243288616533549214503913260716 2081624882475591231739541363482195141759305208897167878865070644796475746268 114291062668770050053398145381016521280544420299600065939619006933123956667 3555986342952222100371737682982291693601541109129866680735933086809893193643 479882604232275052513924619179702765574155021821328929698931810973731999042 491597213669873325257815922088795782306238129789838059027544946202241699651 3232416221124377747644569193721273026491717055191034566892236850845751517860 2592788729058827566292986497552963061050525888415440388316472055735475418393 1055507379896195980152589575508550809166556227577091069367714012296455776632 1300215724057438979071596490869893175669708020644727528521828717960994536488 1460592230848263602893832018096613572444261349135606993617181473914628841666 1059963467253329614116929517949962682045685112604994017477430218625982358449 427694840505027592985042322858886406407539118493661472598872956021146403384 1251206841682574163525098383311838539573046238814634735169210958318109729384 2889840283339471121529769357666062609021485717887566259524817223174429035581 2638643714508182651004049265892993931098437787728289283154209890094019793451 775479763483902695991139295398524565055629393243330518265577629813158369625 3476270570533095577842809503647068831772378748601227662987597897632932572728 1547269959952956492273503162728619332619886147026210858400891504932976158056 3590655677748682008310092963673787614907774667076735095369534281663657198035 2112486689146102686038259102264414609788865230991764157656846864337336645155 1917040926821479993272323175278672874242247161182260219505034156723118064038 1315052187486437536463184994563068608695104195768888759009343917389288746962 2464348725378097901585808271805430550377562431427512252827839436417509141305 110824020452893445722673953662077792366995266546769453751225354362020312264 2719403786566752846125579325430497746403643279655895728193269675901106957510 730584646212175839564406806706917995578561738717530641537046559137368364078 921461620623272116489015089763580544513928393670621742419222100917746350973 2769331765246801022504283786829596209511480770015870085536780020967644931752 2680524427883708723717619880835325628533465430313666871833070831754044935170 516928036296329826119130375471032021057004076036672062530962254054109880963 3315618967502303991857822867558339658475819012029626141571739056996253366434 3109917134015075704219886967361737159360720231454231809313566495292095971088 1720932005872447741459360483103270897340738423128430889584795945069878928055 3351564485259497094600335463809579539634065398104758564577671842736948779939 1411032774907965676495196711129715840393990046662269595922270065674732635563 1447770928471141533913851284465974351860107876337061679595949509707086455829 3487752653277487753545097413630906203738997683139637724289557934092287513427 3364850333133657640970013336804635623778880063559840034218319593071199516154 1877061977450331595061682963941093401075535443275207403499688469351091909735 1241355026914314704924330190946192300456797653059346862511859424629604703071 2320922167343025615055047013527209360835566820099644107713077796365643552266 2807820231410845361700773353871689740868087689901168741250635488319306871356 575257242262616949453820264667941710596698062133544398863937471978633659824 3291913121889825240672214957106742232663162883127962976396367452305028008343 3153472423789168321467447473440602928830182301293547315152469281391999562440 2641602122219158135982607934548533871839888956733946917979822198905744762598 1162392353842543575974470854113738701564858139358209765505649854960938758190 1712871585954361537037803349561500209857828794756300308936232227401855523938 2752131961857331355840672149475110653938675861667885650191571209293538252017 2934380124498636643536665858133015909548049487360186675702948551464504821323 324329023946444682996215396457910724399489519071455965351280359102837971536 3303320724928072486095218534040174265979008089580283657303530535253129310618 1742798674847506907058640058708494670120383139249057416483788787545011041591 200789698768790907858527737371461031870038160756581111514918067184756573607 1222107643331851985215107415276728188215222027671445634378059411776631543486 1215435123179110078808305672433879689611417325782087347332021164842550879810 115305827785952482175128304198044604131527259637607408810835586286598218059 2126742331108839257625734615388206139285938018613626952804270574050892213570 2291650488883933128334240592717895589367985836419429692750512488616495721045 4305573592950420310224962334525937115924878042241631359379788172640811969 2719429119498431494702787781208390397481019569774148905884394451049997440888 3388241226757199326269042251432276795463336893695626233892696096240543037221 3613833314422358642549901572118636312304694920809421346135928078848469014944 2339054522629574074817094060504658481249369852215247791603576237376441983374 1154931048824939949172425786189201302684419090920742291998317977801865700946 1794836365955077642766722377649085944510359509394482242376183618479844123691 1163656319668239735880708157863404108436564593961789918604437999451577704003 3192384073584719583553457458612209732191994289402270099740767157629740081106 2222453613757255462394163409562584063078685359845956081647546654787294930556 2141716371055015049140527413136824923867652518151573178093034695769958318135 1224718009654388900104139565566955260038623354180346054008811987265121818845 2782039335261374075424600117395828325628140444919108692512966287490819664320 2276495006308015666470920692741338152315419666179213696285741214891544677298 745729927466250128254584902126317823965762692600602376511591855107525308161 516067471937045960428370139697764673233971775428555956424376424148908668409 2139391339387144621843226103791392798612951486701404921858581440388121730146 2867239175702775462884683129504647345373306668736179785956759651710989307835 3566630112905757752672748342799746464897056126210408966522444996322009084719 32076476279336449063645810947772140984890865610570346387757471402089207005 1617941897473858391330189524374901542868648189687993400816591436035046910512 3091484914657723549053327295381639655195922924393155107026590291371242716660 1243122900847204095016099108809310685925591418096576574453259170842972856507 2274475982327798380858326074650311756329752246180128925945837164830146866833 369946873912533875504496545314624792197591951511252830776356038069684628230 2215442271818156396562025628255781253450105848404311044394412558766575981381 3583809731571591277957441220521073602237044744437166133495262812442575989356 3384572265981954801577602517346882218523734557995116355739318561315993873035 348438364252307111594933624691934669660759665871252447334721461347108494329 2410347874280791943763130511935518993864614513147932251406826352716685896322 482136697942804739831876201805604508593483222170557290958656719391307291235 1140842342815989151057037243719939228461182602426168675629291433028593163353 2671003008738754357585616409142077848553601218434906577648021872280689542306 41876672332305121291521913730366817605547070701787700351440228645061880218 2882560454393663531408276830264658715038499927740696082320612409074257343997 1425989244488022966273891273684096900621304063482636529072739154428730509232 3073655462876726251218720297003988885929373942543626820095652309251257623992 2794573375925619893848282943683018585500411860251237028400264149532002159960 3596933952629250373183162427683838030476186263927460646011899377795254056058 2637165011712897260486986708420583618322655099964181723545874937531600713649 1332250506002422998968859026261324550132268161722146523718436805163225054554 1698348227585039004386974914783075281662221023637117890156642236911172839920 3465379106403341645835778519050921587480833123196383630026245476325324981189 317087077722356718862543284711459082841800519666203131113553829378953233613 2051096766784855397299478918353840479226574352363754795111139582238547144572 3347553774815409606023741357644631322127870492583401927360840302416283789046 2707062953937600516231047411420643270545988435884107325175836116568580374369 379618177542119236385464339926361199817777508574714829445404009358982050329 3581105036955316148631910770345953951111707844430547893225277450072866474301 3018161505076646431699227804815593975578267932719209339902021983318833868394 736698191810507685541932343413569357261088611925348648291151892426119142364 2701426888055459065352359946225545747562180168891763753905966084768023694662 975126555404960988244413774451116680796668595010885115375517291051936044111 2236577379917015979544685064388102253401336437661105608129193284536495766733 69367007605362364318004558463732406724972359340958000075999791847228267813 605138444742295564341842240187530224217526987900410922882840783125523967054 352005260058339933451783805050543578812560208024430813709011251130733953919 1798896103801074460397551037285776927770023038735093504076993324068901569854 517770811237639829108992765547134600955501988756373263094468553058417337454 3395849092757762294707528636758933339451247466963083537237935468456497403756 77 1522432565027559015872896621383925520549272457191131765468920161928169863055 3496534466626163805894354483862775161270909337134730675328658839414983008154 1454459942699536962816215490309407383206649172388906272716785011915312542458 3275696575108177723098469190049676781999991603783974206721448497399632212684 1264302541929558859776542845874118976465308373379034165391400652726540088832 41736011654706046467990875548034678202030502775491732926687295292236390138 1933771221589371133184943372685468022873784585189147576006636652014087146838 3557833276456484126454211294118747560844400483064472215997069410127374002652 2406705100440103336314279847263671484884766687011784180837805758727493942501 339338986903230534510597555541539456147549964880184462807759868818692468917 23982401184237268245993085764395941506150599439556772933044153230989315924 1703172639990820489458824860858992884849789799899723049520952708335744197157 3393326050410613492780233380984984061068923977462142729678989732706519673361 886261172977047744010182742166824963060599720816567455537558537708931196702 255989169333319059517101963184512682580158371234735665423233929661136692050 190856511488198618829680974768966163672719029015151309878686639235160265787 1605691584425567432876549169256774079145408755546990108363569742715423798986 80024697226266620798767822821033590104314669218590626938595573605456992 2887171479823281871334331482284765651752837537866237526920108368784347959706 3155721390813550908730862810889049716588097005062540960034266602947265269429 1521157373989302542647091821144475956974615140605079926473204393429054617658 2118135727748280179745775778064465314483090596625033550742536496904706991864 482016244878431170580433803861046623995008033772483284334490679660363689583 2403364792434037659604606449076245129334817768174273966706340446006033514669 24097527559915758552539267961208154191599798542161482512297791472627158102 1850587850666576290123180795045742880495022498026246279831992498033488921451 3091696050507960819860859325390640314525980412601898279143340312623396205084 1202570589550560240872217809136548539030744865348277791583525730475900952360 3367895035930118566673421372280133222710807642681768539673133167133891481143 158325487875254427509853264170181309009495172514594909102088027480599690178 2495288104292651849729101721542002189000422155441071906259755476604391775247 486429841655888404416375101585566020772000943551857317654961097037754739788 2988427885815038315602133564097033212147475261240792282961995286655943553085 1758216566308420825660546413283532925381115104505282360954288284216994333210 908976526826199109660839950253474889455497202992295068706474603441426195030 1921445180230524002602865962459729444295617068134765967844687165117561624291 1212339237801442858865118578745390431153118143039861888455331107773733532621 2542064105056959859106377220986051834186326280568173874830955542818008987419 1848839990171850620023622045061420422010365797834751483957401737688097963346 1182544317999795330907975841069357344352664527256200784057797360239749997633 2994531121339164483439460191598569367886858080755604793503457217726580433159 3144253704849448352739547749413417043135670461056063191046444298890034821704 155178210596798260267892643527316110367355764481802287611607895092310158766 1061763138125967800628774625100058320733681393702688685689620819038981496373 3570980373278737837598333926048860227724170261456195786285677034109494599487 630614460248080953127301161282152176866146467089506526274975910875162181702 1044017378645526043869254204699138582919807744860322934635741902503888625459 2333555617662396044793520582263718110877044829986291648728995097000797453136 2877927133326425540019375763719659453550672337859757314036103339478109003343 478152685580295001979321769519023549208645525263165037068718852543552607203 2380149651810099773579469404429085811367257950524522806836948275681342029665 2090242004394033006613140043389862796879338687526039023596070041174911378684 1228049924451858121494712091115291427747972853984311569885193498168784172896 1272642069811874186780088200321791754193105460852782918004360229523726386505 1346306081648850301310616183836483901759212426282613735670448689779988528783 2542089723253921971534007937544205732859029281490121982492512635860511298617 510524015988564165192808671123390086849060137347729461922527085954163862236 306132649350157667550950220134803686313600393266183531634564739375098770752 1303261442305066521479162756794546022135195599787487695756794977850731821689 277297262779867802400933485745560438566905577641127187473367919056873888065 2135408957691318982355177632974217744970545195801825657503003178188243223952 1067421775135799873257689536491458137825294413308581018535269249271229199230 2453253796368045580942270972533034087033748117419200869693511739721756110249 2422600817767104306916123067432928878618638259791133379569115481573538780930 3227919744575765985396950913977478264468863820770783105553555651145080308693 1362719976280626115473551604785426391108858517555622493193470864374334295137 1919132004098664094138454704585618990388497175949273861429244707480361898866 726624407373068151372949429069852310488976001016114620259254376753952833295 738356453002861654685963568391939059988486692733377287168246450450435642830 3076529853685968244528725147700642216746895695439327640636881869456678641145 1273730988503917329618690312889410309890880675347141811176599376607409260535 290298179314241569655183151408769170934471900930379845610339745849472263837 512048680698306270515590268988392195063773075642152693378267282643746883355 3602092209040281311102704382896059855068989781590630337632833138620304811020 1119021028466617626926341909577917206627447708151578528617359103579211250491 3107488101930789646340618765611267828374398476473573772617874034913583360061 816866438830460188505308821954486184889709034916804640302350882016123974050 70 459265850792145271042468292756451124322115943680887152456045120706012809891 778343250970430247570390264409627787190614505246193223147637531663818848023 2980209092047440952661823407881618339261840236827979650614702802409118628518 3118713815513091001168544629414122289669473297726508086451996607450554253358 1137165921498372844697532546623750313762296880995746354952027734290461927172 1864762947453428694223741589957251045175599762431834292084240705147249753732 1482555420216318741150988514995018144057706975926857534821619871574209975823 556941507181428924941632068079054909497596567692690981966665457991605517749 1011536538455212552697915554881671854210777810413176421245097238218536103394 1698028088894153194936190203737650034104856729243551728660977600065707537536 3517877458044773447591125112255350162455773978599357702229441754483893459012 1001223297082673707499533125829970052576953914056356641676196908852026278838 2956406193575769836183017592421467524042299029304349934300258540193365185236 2140196714471556367270129061405306386795480371026057506099283173167421684156 1419990445842643369951216247921683785950870561462579920469335032031959157603 1394721147280764772455134739603939607103135634148208698131814456161209592733 1831562540181872878281948606339469369159746003866666573161542546427948635263 1808647476644365327913670912896453825141549804321734608260431536827752638385 1894631243968412562912984440007200116312318657489199974094703795248110056118 651701360852277636921511960416567141066431296013591699953487262897741918689 2641351628661425279471359616704641907010883455906128833799221117727593199771 1711876802561585914093440640877365458528538393917725715606781818466398637007 171973025825321992073417194269107076081289606421096392207636625662974851914 3274513061240160465691436773092037786482659793081724251057454344568415502849 1001563371076180782522827587727818076080622705171408137336795154300238603022 2383437682328891126067904561502825203235408195681905867599297350470873668054 242345143054245658293937996358379807103598334653247643637646457884198714879 1092565493957909503173939039336042552632393674509789651176132662436359551597 3526132721605278196502315126368491009823306236240822878541921464541483563253 671670173630926012420678643895875219226957051151103973758011763693703960815 2040221033364216766639200276089582538144151823299958753821510821353188963624 3594280555718579175262726175934198372713862927486890384722255986952643367130 906596387061755506040495361044774502431817872172742106834377793183407119141 1175358297785975034606616667667936327678640789070043615473152905961524812400 2442014539581984333815263510146319815714191170526880135699812149066214012605 2746757195998720813965279851237683747550112461182431591445117672936541433144 2800251749877071119959910930504651244755222794451797667793612696832741126311 1132643100365971149218629481036659287623551074641759061455462003510854103283 2035984655838411094974691216614622677905366987560058607264329839268320872825 3407909796847682158898955684010145728507853151095955620367035317636383778219 248616996600584592549838027143166892463340927604562345555069995806489664320 335424319664731499456968424851031003505845088164335956090025938617749469822 3440911121814185240743256957482497467969191646690204686239857116466582794352 104788026400849482557655536995580036876525567818589029811142401289122939114 1948800995397988508311292084711275401997700611499824842510698168597581224940 415427546022104294455775745219562593210856366558107735872657100788680966510 1858224697733795663919407406830073511900156528483964072481862758297541210143 2329239112630659293147913328765103212525230711644370500139312995483729678681 1905216771713058102174308873226917168759894276838931424131789956527212368723 835462007597722060620267897201717289552584023509822299869803747090081655950 3589221166753370510640622775496478449077059694606815227701698292210520597408 3439348127822425045758281827287791012738243267484968195993139787060109050362 112150415244178769146484247158202257011077529834409400482828672103750739547 2146103898561849209418666855029612989655628774589283546554058669224058935440 2450902519681416205667309041586815137997366760075932475139890793458334270518 2579432580336732384877235473013685596345028844307683903779328573758337928472 281450516318945883655733647642702021413730438698573494331911728306797471979 443723320270292495995841021434504213584678685127418168967703567416513350080 414332598524573039225132194341776388577840633943469863869670045689556330653 1849454798550079840250039785243407801004517706648129665926829452884076024426 3177103974379839566507998765842438233460832128597443360802307857217966686110 1270753010147203061149902879994819838822139200582673605469169843537651903258 1765239294865417224026932708330514578521662170387190360240637225711069872846 745955127845851048718979110112850453713223742127770287332151032509146429624 81546998724973031865125839382656712091092096811900939568167353187733239219 3510144945616569336940235748551982024707191934453958083248738255987066143427 1765746528239636204808321905587848928370217654644860225606888699348168498409 1240636166344603239231019365461993863524285871078298607443862487801616245246 1606142830374118500885544862782909897509223729807859170844160763735332449140 3188218981095495430475050416098597410677597942530261514682098177261715900495 47 3074018444019707320358825019639827290244332503540149033704880340497148088017 3554507410003220090105263635689621589596346781085237311347909585657502105757 52481305392194891497098424942948240093912500183627904079712284859506078967 2319244346399172445739743652357061741472283038422003891315410192748660388569 1403277487074774100265495419605919289735718128576457729766455163956033437744 3432433250904997193554337237306559757115439763456317760069500751772669545651 2666443093877967318566573624745356172468018946578229039708347344914005833009 1870021490537325223255947414795504094933964281124000681226429324065300618487 348726657045147117149931513743263646797791843923805146760179696267647448828 1045203556137955748995223712860561514780667582172639278482397390047289743721 504940682003710523464407458003817238185112411783022182310774318211411827034 796678130767620908983074176704564891988411141012471451930956847481767686398 1813611830068144491955150354696677522586985036215141940998663974251163964259 3250653632033888431343887464169190202415579461715210080796585875154479713341 2890924852795152619523076809444363618684906914944557812423540406884195046644 3180845694471252107056067985948800775715664123520297513655543247220156557343 2546269594900076663020670793884591591566590177540108403699625877832307536570 869911508041495877123594263424632703009974142897778867631103449176146515493 1929031507236295990960978576633500897450243082827344998079698754990963169109 1631339857378717414051090425444473512102126107853400147980927157538823888318 2890740516617095530330581929601093385646578320115454920187105750439663546007 1744461594843879961354569613295273567308091644214366959607415457461989417065 1116356095201672913805306211692833320912182877856666165189388274677706876516 2845707024391970706650560431387742982228539260461949883652544756248630764830 3184996131641016236641269790567699855250875258662792444483292072567451405280 1984749021474617859468192214074361563299180079626503023671923498261610710017 584505864762889689644451695386987382916016204824130560692366718607362775413 2834064264150146975283766654660318883834801900920472854994841593755312046750 892913467297173320201411620473033427947138093859617777019442220736168152420 1270708988220552006254877772687611004299481734269394732414319882572685779182 3057882742325376543995507622736852557714216698654863813151263002464045292690 1171478493486572871255845701896644946530276575541421602417196742099653814449 1564472391389880734748376146638547283653689460269974561367522453129134723600 3110539705833243229877363214826731371596642670002361202098114769740604267366 3069292457018153604660078320090966116590506823412215553359730628712565150514 2208180585305083144694512166648560256788861351642068711180059161175043811760 2371075027848577879661886419784720199545752275418265650642307789814914835887 169220238312107458751804484258456875501146527287762665578781316248508322690 1284123973261387119921765646864640197178031313103811138716657347100327109404 1278284350729242554482958641170097143945393770439826065249844554130425497163 665189236478349745517076502925023032640119896452201368849420623752904646062 829842369204644721411279303814858491257386578346206437505530055270188418430 246884261008446523188256202775117015838537920681026329450616558059034553199 3030711103968153692678954424454907460309225327284644847922775125079595297088 2660986336968424385135919173589773170997196154115239053552098709566909618132 3502321533075840060044182715141429516498352936107772153062293758791410888856 1545975206847228836412206076694536834225726835364885266778030817880695952676 0 From 2de105b77bf804e8e0665392b38f2c4c54a1a196 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Mon, 10 Jun 2024 15:42:11 +0300 Subject: [PATCH 7/9] Review comments --- .github/workflows/tests.yml | 5 +- fact_registry/src/verifier.cairo | 5 +- runner/src/main.rs | 8 +- src/air/layouts/dex/public_input.cairo | 8 +- src/air/layouts/recursive/public_input.cairo | 137 ++++++++++-------- .../public_input.cairo | 8 +- src/air/layouts/small/public_input.cairo | 8 +- src/air/layouts/starknet/public_input.cairo | 8 +- .../starknet_with_keccak/public_input.cairo | 8 +- src/air/public_input.cairo | 3 +- src/air/public_memory.cairo | 13 +- src/lib.cairo | 5 +- 12 files changed, 136 insertions(+), 80 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1a2cfaa1b..4ad71ad6e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,4 +18,7 @@ jobs: run: scarb fmt --check - name: Run tests - run: scarb test \ No newline at end of file + run: scarb test + + - name: Build fact registry + run: (cd fact_registry && scarb build) diff --git a/fact_registry/src/verifier.cairo b/fact_registry/src/verifier.cairo index 76e0d7e47..d8da1d18b 100644 --- a/fact_registry/src/verifier.cairo +++ b/fact_registry/src/verifier.cairo @@ -39,7 +39,10 @@ mod CairoVerifier { cairo_version: CairoVersion ) -> (felt252, felt252) { stark_proof.verify(SECURITY_BITS); - let (program_hash, output_hash) = stark_proof.public_input.verify(cairo_version); + let (program_hash, output_hash) = match cairo_version { + CairoVersion::Cairo0 => stark_proof.public_input.verify_cairo0(), + CairoVersion::Cairo1 => stark_proof.public_input.verify_cairo1(), + }; self.emit(ProofVerified { program_hash, output_hash }); (program_hash, output_hash) } diff --git a/runner/src/main.rs b/runner/src/main.rs index 1a4ff0cfd..27d3f6209 100644 --- a/runner/src/main.rs +++ b/runner/src/main.rs @@ -59,13 +59,9 @@ fn main() -> anyhow::Result<()> { let func = runner.find_function(function).unwrap(); let proof_arg = Arg::Array(proof.into_iter().map(Arg::Value).collect_vec()); let cairo_version_arg = Arg::Value(cli.cairo_version.into()); + let args = &[proof_arg, cairo_version_arg]; let result = runner - .run_function_with_starknet_context( - func, - &[proof_arg, cairo_version_arg], - Some(u32::MAX as usize), - Default::default(), - ) + .run_function_with_starknet_context(func, args, Some(u32::MAX as usize), Default::default()) .unwrap(); // let profiling_processor = // ProfilingInfoProcessor::new(None, sierra_program.program, UnorderedHashMap::default()); diff --git a/src/air/layouts/dex/public_input.cairo b/src/air/layouts/dex/public_input.cairo index 0d7c5ce70..c513487e2 100644 --- a/src/air/layouts/dex/public_input.cairo +++ b/src/air/layouts/dex/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO }, - public_input::{CairoVersion, PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -19,7 +19,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl DexPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { + fn verify_cairo0(self: @PublicInput) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; @@ -114,6 +114,10 @@ impl DexPublicInputImpl of PublicInputTrait { (program_hash, output_hash) } + fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { + panic!("Not implemented") + } + fn validate(self: @PublicInput, stark_domains: @StarkDomains) { assert_range_u128_le(*self.log_n_steps, MAX_LOG_N_STEPS); let n_steps = pow(2, *self.log_n_steps); diff --git a/src/air/layouts/recursive/public_input.cairo b/src/air/layouts/recursive/public_input.cairo index ad8e71750..b4778169f 100644 --- a/src/air/layouts/recursive/public_input.cairo +++ b/src/air/layouts/recursive/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO }, - public_input::{CairoVersion, PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -19,7 +19,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl RecursivePublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { + fn verify_cairo0(self: @PublicInput) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; @@ -39,66 +39,63 @@ impl RecursivePublicInputImpl of PublicInputTrait { let builtins = get_builtins(); let memory = self.main_page; - let offset = match cairo_version { - CairoVersion::Cairo0 => 0, - CairoVersion::Cairo1 => 1, - }; - // 1. Program segment assert(initial_pc == INITIAL_PC, 'Invalid initial_pc'); - assert(final_pc == INITIAL_PC + 4 + offset, 'Invalid final_pc'); + assert(final_pc == INITIAL_PC + 4, 'Invalid final_pc'); let mut memory_index: usize = 0; - let program_end_pc = initial_fp - (2 + offset); + let program_end_pc = initial_fp - 2; let program_len = program_end_pc - initial_pc; let program = memory .extract_range( initial_pc.try_into().unwrap(), program_len.try_into().unwrap(), ref memory_index ); - if cairo_version == CairoVersion::Cairo0 { - // Instruction: ap += N_BUILTINS. - assert(*program[0] == 0x40780017fff7fff, 'Invalid program'); - assert(*program[1] == builtins.len().into(), 'Invalid program'); - // Instruction: call rel ?. - assert(*program[2] == 0x1104800180018000, 'Invalid program'); - // Instruction: jmp rel 0. - assert(*program[4] == 0x10780017fff7fff, 'Invalid program'); - assert(*program[5] == 0x0, 'Invalid program'); - - // 2. Execution segment - // 2.1 Initial_fp, initial_pc - let fp2 = *memory.at(memory_index); - assert(fp2.address == initial_fp - 2, 'Invalid fp2 addr'); - assert(fp2.value == initial_fp, 'Invalid fp2 val'); - - let fp1 = *memory.at(memory_index + 1); - assert(fp1.address == initial_fp - 1, 'Invalid fp1 addr'); - assert(fp1.value == 0, 'Invalid fp1 val'); - memory_index += 2; - - // 2.2 Main arguments and return values - let mut begin_addresses = array![]; - let mut stop_addresses = array![]; - let mut i = 0; - let builtins_len = builtins.len(); - while i != builtins_len { - let segment = *public_segments.at(2 + i); - begin_addresses.append(segment.begin_addr); - stop_addresses.append(segment.stop_ptr); - i += 1; - }; - - memory.verify_stack(initial_ap, begin_addresses.span(), builtins_len, ref memory_index); - memory - .verify_stack( - final_ap - builtins_len.into(), - stop_addresses.span(), - builtins_len, - ref memory_index - ); - } + assert( + *program[0] == 0x40780017fff7fff, 'Invalid program' + ); // Instruction: ap += N_BUILTINS. + assert(*program[1] == builtins.len().into(), 'Invalid program'); + assert(*program[2] == 0x1104800180018000, 'Invalid program'); // Instruction: call rel ?. + assert(*program[4] == 0x10780017fff7fff, 'Invalid program'); // Instruction: jmp rel 0. + assert(*program[5] == 0x0, 'Invalid program'); + + let program_hash = poseidon_hash_span(program); + + // 2. Execution segment + // 2.1 Initial_fp, initial_pc + let fp2 = *memory.at(memory_index); + assert(fp2.address == initial_fp - 2, 'Invalid fp2 addr'); + assert(fp2.value == initial_fp, 'Invalid fp2 val'); + + let fp1 = *memory.at(memory_index + 1); + assert(fp1.address == initial_fp - 1, 'Invalid fp1 addr'); + assert(fp1.value == 0, 'Invalid fp1 val'); + memory_index += 2; + + // 2.2 Main arguments and return values + let mut begin_addresses = ArrayTrait::new(); + let mut stop_addresses = ArrayTrait::new(); + let mut i = 0; + let builtins_len = builtins.len(); + loop { + if i == builtins_len { + break; + } + + begin_addresses.append(*public_segments.at(2 + i).begin_addr); + stop_addresses.append(*public_segments.at(2 + i).stop_ptr); + + i += 1; + }; + memory.verify_stack(initial_ap, begin_addresses.span(), builtins_len, ref memory_index); + memory + .verify_stack( + final_ap - builtins_len.into(), + stop_addresses.span(), + builtins_len, + ref memory_index + ); // 3. Output segment let output_len = output_stop - output_start; @@ -106,18 +103,40 @@ impl RecursivePublicInputImpl of PublicInputTrait { .extract_range( output_start.try_into().unwrap(), output_len.try_into().unwrap(), ref memory_index ); + let output_hash = poseidon_hash_span(output); - if cairo_version == CairoVersion::Cairo0 { - // Check main page len - assert( - *memory.at(memory_index - 1) == *memory.at(memory.len() - 1), - 'Invalid main page len' - ); - } + // Check main page len + assert( + *memory.at(memory_index - 1) == *memory.at(memory.len() - 1), 'Invalid main page len' + ); + + (program_hash, output_hash) + } + + fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { + let public_segments = self.segments; + let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; + let initial_ap = *public_segments.at(segments::EXECUTION).begin_addr; + let final_ap = *public_segments.at(segments::EXECUTION).stop_ptr; + let output_start = *public_segments.at(segments::OUTPUT).begin_addr; + let output_stop = *public_segments.at(segments::OUTPUT).stop_ptr; + let output_len: u32 = (output_stop - output_start).try_into().unwrap(); + + assert(initial_ap < MAX_ADDRESS, 'Invalid initial_ap'); + assert(final_ap < MAX_ADDRESS, 'Invalid final_ap'); + assert(self.continuous_page_headers.len() == 0, 'Invalid continuous_page_headers'); + let memory = self.main_page; + + // 1. Program segment + assert(initial_pc == INITIAL_PC, 'Invalid initial_pc'); + let program = memory + .extract_range_unchecked(initial_pc.try_into().unwrap(), memory.len() - output_len); let program_hash = poseidon_hash_span(program); - let output_hash = poseidon_hash_span(output); + // 2. Output segment + let output = memory.extract_range_unchecked(memory.len() - output_len, output_len); + let output_hash = poseidon_hash_span(output); (program_hash, output_hash) } diff --git a/src/air/layouts/recursive_with_poseidon/public_input.cairo b/src/air/layouts/recursive_with_poseidon/public_input.cairo index 91e25671b..20e7837a1 100644 --- a/src/air/layouts/recursive_with_poseidon/public_input.cairo +++ b/src/air/layouts/recursive_with_poseidon/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, POSEIDON_ROW_RATIO }, - public_input::{CairoVersion, PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -20,7 +20,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl RecursiveWithPoseidonPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { + fn verify_cairo0(self: @PublicInput) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; @@ -115,6 +115,10 @@ impl RecursiveWithPoseidonPublicInputImpl of PublicInputTrait { (program_hash, output_hash) } + fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { + panic!("Not implemented") + } + fn validate(self: @PublicInput, stark_domains: @StarkDomains) { assert_range_u128_le(*self.log_n_steps, MAX_LOG_N_STEPS); let n_steps = pow(2, *self.log_n_steps); diff --git a/src/air/layouts/small/public_input.cairo b/src/air/layouts/small/public_input.cairo index 82a655868..ad7106239 100644 --- a/src/air/layouts/small/public_input.cairo +++ b/src/air/layouts/small/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO }, - public_input::{CairoVersion, PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -19,7 +19,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl SmallPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { + fn verify_cairo0(self: @PublicInput) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; @@ -114,6 +114,10 @@ impl SmallPublicInputImpl of PublicInputTrait { (program_hash, output_hash) } + fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { + panic!("Not implemented") + } + fn validate(self: @PublicInput, stark_domains: @StarkDomains) { assert_range_u128_le(*self.log_n_steps, MAX_LOG_N_STEPS); let n_steps = pow(2, *self.log_n_steps); diff --git a/src/air/layouts/starknet/public_input.cairo b/src/air/layouts/starknet/public_input.cairo index 4297659ad..25905ea57 100644 --- a/src/air/layouts/starknet/public_input.cairo +++ b/src/air/layouts/starknet/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO, EC_OP_BUILTIN_ROW_RATIO, POSEIDON_ROW_RATIO }, - public_input::{CairoVersion, PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -20,7 +20,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl StarknetPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { + fn verify_cairo0(self: @PublicInput) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; @@ -115,6 +115,10 @@ impl StarknetPublicInputImpl of PublicInputTrait { (program_hash, output_hash) } + fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { + panic!("Not implemented") + } + fn validate(self: @PublicInput, stark_domains: @StarkDomains) { assert_range_u128_le(*self.log_n_steps, MAX_LOG_N_STEPS); let n_steps = pow(2, *self.log_n_steps); diff --git a/src/air/layouts/starknet_with_keccak/public_input.cairo b/src/air/layouts/starknet_with_keccak/public_input.cairo index b1e0f3baa..2641c2782 100644 --- a/src/air/layouts/starknet_with_keccak/public_input.cairo +++ b/src/air/layouts/starknet_with_keccak/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO, EC_OP_BUILTIN_ROW_RATIO, POSEIDON_ROW_RATIO, KECCAK_ROW_RATIO }, - public_input::{CairoVersion, PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait} }, domains::StarkDomains }; @@ -20,7 +20,7 @@ use core::{pedersen::PedersenTrait, hash::{HashStateTrait, HashStateExTrait, Has use poseidon::poseidon_hash_span; impl StarknetWithKeccakPublicInputImpl of PublicInputTrait { - fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252) { + fn verify_cairo0(self: @PublicInput) -> (felt252, felt252) { let public_segments = self.segments; let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; @@ -115,6 +115,10 @@ impl StarknetWithKeccakPublicInputImpl of PublicInputTrait { (program_hash, output_hash) } + fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { + panic!("Not implemented") + } + fn validate(self: @PublicInput, stark_domains: @StarkDomains) { assert_range_u128_le(*self.log_n_steps, MAX_LOG_N_STEPS); let n_steps = pow(2, *self.log_n_steps); diff --git a/src/air/public_input.cairo b/src/air/public_input.cairo index 92154aa90..623a0cef7 100644 --- a/src/air/public_input.cairo +++ b/src/air/public_input.cairo @@ -41,7 +41,8 @@ enum CairoVersion { } trait PublicInputTrait { - fn verify(self: @PublicInput, cairo_version: CairoVersion) -> (felt252, felt252); + fn verify_cairo0(self: @PublicInput) -> (felt252, felt252); + fn verify_cairo1(self: @PublicInput) -> (felt252, felt252); fn validate(self: @PublicInput, stark_domains: @StarkDomains); } diff --git a/src/air/public_memory.cairo b/src/air/public_memory.cairo index 504395ce1..0e8ab0aeb 100644 --- a/src/air/public_memory.cairo +++ b/src/air/public_memory.cairo @@ -11,7 +11,7 @@ type Page = Array; // Each such page must be verified externally to the verifier: // hash = Hash( // memory[start_address], memory[start_address + 1], ..., memory[start_address + size - 1]). -// prod = prod_i (z - ((start_address + i) + alpha * (memory[start_address + i])). +// prod = prod_i (z - ((start_address + i) + alpha * (memory[start_address + i]))). // z, alpha are taken from the interaction values, and can be obtained directly from the // StarkProof object. // z = interaction_elements.memory_multi_column_perm_perm__interaction_elm @@ -64,6 +64,17 @@ impl PageImpl of PageTrait { } } + fn extract_range_unchecked(self: @Page, addr: u32, len: usize) -> Span { + let mut arr = ArrayTrait::new(); + let mut slice = self.span().slice(addr, len); + while !slice + .is_empty() { + let current = *slice.pop_front().unwrap(); + arr.append(current.value); + }; + arr.span() + } + fn verify_stack( self: @Page, start_ap: felt252, diff --git a/src/lib.cairo b/src/lib.cairo index 4bff68054..5553d0c7f 100644 --- a/src/lib.cairo +++ b/src/lib.cairo @@ -48,7 +48,10 @@ fn main(mut serialized: Span, cairo_version: CairoVersion) -> (felt252, let stark_proof: StarkProof = stark_proof_serde.into(); stark_proof.verify(SECURITY_BITS); - let (program_hash, output_hash) = stark_proof.public_input.verify(cairo_version); + let (program_hash, output_hash) = match cairo_version { + CairoVersion::Cairo0 => stark_proof.public_input.verify_cairo0(), + CairoVersion::Cairo1 => stark_proof.public_input.verify_cairo1(), + }; (program_hash, output_hash) } From a8671d58b3eb9643c55f215f5d62640a7babf321 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Mon, 10 Jun 2024 17:27:50 +0300 Subject: [PATCH 8/9] Syntax --- src/air/public_memory.cairo | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/air/public_memory.cairo b/src/air/public_memory.cairo index 0e8ab0aeb..af58c1e28 100644 --- a/src/air/public_memory.cairo +++ b/src/air/public_memory.cairo @@ -67,11 +67,9 @@ impl PageImpl of PageTrait { fn extract_range_unchecked(self: @Page, addr: u32, len: usize) -> Span { let mut arr = ArrayTrait::new(); let mut slice = self.span().slice(addr, len); - while !slice - .is_empty() { - let current = *slice.pop_front().unwrap(); - arr.append(current.value); - }; + while let Option::Some(current) = slice.pop_front() { + arr.append(*current.value); + }; arr.span() } From e9c5d6bbfc2bf77c37bb57444edc0e3209ac57d7 Mon Sep 17 00:00:00 2001 From: delaaxe <1091900+delaaxe@users.noreply.github.com> Date: Tue, 11 Jun 2024 08:32:58 +0300 Subject: [PATCH 9/9] Implement `verify_cairo1` in all layouts --- src/air/layouts/dex/public_input.cairo | 4 +-- src/air/layouts/recursive/public_input.cairo | 27 ++---------------- .../public_input.cairo | 4 +-- src/air/layouts/small/public_input.cairo | 4 +-- src/air/layouts/starknet/public_input.cairo | 4 +-- .../starknet_with_keccak/public_input.cairo | 4 +-- src/air/public_input.cairo | 28 +++++++++++++++++++ 7 files changed, 40 insertions(+), 35 deletions(-) diff --git a/src/air/layouts/dex/public_input.cairo b/src/air/layouts/dex/public_input.cairo index c513487e2..616ab8437 100644 --- a/src/air/layouts/dex/public_input.cairo +++ b/src/air/layouts/dex/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait, verify_cairo1_public_input} }, domains::StarkDomains }; @@ -115,7 +115,7 @@ impl DexPublicInputImpl of PublicInputTrait { } fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { - panic!("Not implemented") + verify_cairo1_public_input(self) } fn validate(self: @PublicInput, stark_domains: @StarkDomains) { diff --git a/src/air/layouts/recursive/public_input.cairo b/src/air/layouts/recursive/public_input.cairo index b4778169f..ab73b9456 100644 --- a/src/air/layouts/recursive/public_input.cairo +++ b/src/air/layouts/recursive/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait, verify_cairo1_public_input} }, domains::StarkDomains }; @@ -114,30 +114,7 @@ impl RecursivePublicInputImpl of PublicInputTrait { } fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { - let public_segments = self.segments; - - let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; - let initial_ap = *public_segments.at(segments::EXECUTION).begin_addr; - let final_ap = *public_segments.at(segments::EXECUTION).stop_ptr; - let output_start = *public_segments.at(segments::OUTPUT).begin_addr; - let output_stop = *public_segments.at(segments::OUTPUT).stop_ptr; - let output_len: u32 = (output_stop - output_start).try_into().unwrap(); - - assert(initial_ap < MAX_ADDRESS, 'Invalid initial_ap'); - assert(final_ap < MAX_ADDRESS, 'Invalid final_ap'); - assert(self.continuous_page_headers.len() == 0, 'Invalid continuous_page_headers'); - let memory = self.main_page; - - // 1. Program segment - assert(initial_pc == INITIAL_PC, 'Invalid initial_pc'); - let program = memory - .extract_range_unchecked(initial_pc.try_into().unwrap(), memory.len() - output_len); - let program_hash = poseidon_hash_span(program); - - // 2. Output segment - let output = memory.extract_range_unchecked(memory.len() - output_len, output_len); - let output_hash = poseidon_hash_span(output); - (program_hash, output_hash) + verify_cairo1_public_input(self) } fn validate(self: @PublicInput, stark_domains: @StarkDomains) { diff --git a/src/air/layouts/recursive_with_poseidon/public_input.cairo b/src/air/layouts/recursive_with_poseidon/public_input.cairo index 20e7837a1..7f53bfa84 100644 --- a/src/air/layouts/recursive_with_poseidon/public_input.cairo +++ b/src/air/layouts/recursive_with_poseidon/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, POSEIDON_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait, verify_cairo1_public_input} }, domains::StarkDomains }; @@ -116,7 +116,7 @@ impl RecursiveWithPoseidonPublicInputImpl of PublicInputTrait { } fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { - panic!("Not implemented") + verify_cairo1_public_input(self) } fn validate(self: @PublicInput, stark_domains: @StarkDomains) { diff --git a/src/air/layouts/small/public_input.cairo b/src/air/layouts/small/public_input.cairo index ad7106239..06dba89e7 100644 --- a/src/air/layouts/small/public_input.cairo +++ b/src/air/layouts/small/public_input.cairo @@ -10,7 +10,7 @@ use cairo_verifier::{ segments, get_builtins, CPU_COMPONENT_HEIGHT, CPU_COMPONENT_STEP, LAYOUT_CODE, PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait, verify_cairo1_public_input} }, domains::StarkDomains }; @@ -115,7 +115,7 @@ impl SmallPublicInputImpl of PublicInputTrait { } fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { - panic!("Not implemented") + verify_cairo1_public_input(self) } fn validate(self: @PublicInput, stark_domains: @StarkDomains) { diff --git a/src/air/layouts/starknet/public_input.cairo b/src/air/layouts/starknet/public_input.cairo index 25905ea57..edfb424ec 100644 --- a/src/air/layouts/starknet/public_input.cairo +++ b/src/air/layouts/starknet/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO, EC_OP_BUILTIN_ROW_RATIO, POSEIDON_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait, verify_cairo1_public_input} }, domains::StarkDomains }; @@ -116,7 +116,7 @@ impl StarknetPublicInputImpl of PublicInputTrait { } fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { - panic!("Not implemented") + verify_cairo1_public_input(self) } fn validate(self: @PublicInput, stark_domains: @StarkDomains) { diff --git a/src/air/layouts/starknet_with_keccak/public_input.cairo b/src/air/layouts/starknet_with_keccak/public_input.cairo index 2641c2782..9b477ddeb 100644 --- a/src/air/layouts/starknet_with_keccak/public_input.cairo +++ b/src/air/layouts/starknet_with_keccak/public_input.cairo @@ -11,7 +11,7 @@ use cairo_verifier::{ PEDERSEN_BUILTIN_ROW_RATIO, RANGE_CHECK_BUILTIN_ROW_RATIO, BITWISE_ROW_RATIO, ECDSA_BUILTIN_ROW_RATIO, EC_OP_BUILTIN_ROW_RATIO, POSEIDON_ROW_RATIO, KECCAK_ROW_RATIO }, - public_input::{PublicInput, PublicInputTrait} + public_input::{PublicInput, PublicInputTrait, verify_cairo1_public_input} }, domains::StarkDomains }; @@ -116,7 +116,7 @@ impl StarknetWithKeccakPublicInputImpl of PublicInputTrait { } fn verify_cairo1(self: @PublicInput) -> (felt252, felt252) { - panic!("Not implemented") + verify_cairo1_public_input(self) } fn validate(self: @PublicInput, stark_domains: @StarkDomains) { diff --git a/src/air/public_input.cairo b/src/air/public_input.cairo index 623a0cef7..5f7e53d74 100644 --- a/src/air/public_input.cairo +++ b/src/air/public_input.cairo @@ -2,6 +2,7 @@ use cairo_verifier::{ air::public_memory::{ Page, PageTrait, ContinuousPageHeader, get_continuous_pages_product, AddrValueSize }, + air::constants::{MAX_ADDRESS, INITIAL_PC}, air::layouts::recursive::constants::segments, domains::StarkDomains, common::{ array_extend::ArrayExtend, array_append::ArrayAppendTrait, @@ -138,3 +139,30 @@ fn get_public_memory_product( (prod, total_length) } + +fn verify_cairo1_public_input(public_input: @PublicInput) -> (felt252, felt252) { + let public_segments = public_input.segments; + + let initial_pc = *public_segments.at(segments::PROGRAM).begin_addr; + let initial_ap = *public_segments.at(segments::EXECUTION).begin_addr; + let final_ap = *public_segments.at(segments::EXECUTION).stop_ptr; + let output_start = *public_segments.at(segments::OUTPUT).begin_addr; + let output_stop = *public_segments.at(segments::OUTPUT).stop_ptr; + let output_len: u32 = (output_stop - output_start).try_into().unwrap(); + + assert(initial_ap < MAX_ADDRESS, 'Invalid initial_ap'); + assert(final_ap < MAX_ADDRESS, 'Invalid final_ap'); + assert(public_input.continuous_page_headers.len() == 0, 'Invalid continuous_page_headers'); + let memory = public_input.main_page; + + // 1. Program segment + assert(initial_pc == INITIAL_PC, 'Invalid initial_pc'); + let program = memory + .extract_range_unchecked(initial_pc.try_into().unwrap(), memory.len() - output_len); + let program_hash = poseidon_hash_span(program); + + // 2. Output segment + let output = memory.extract_range_unchecked(memory.len() - output_len, output_len); + let output_hash = poseidon_hash_span(output); + (program_hash, output_hash) +}