From 61fb9d3f88133ea08c352898f9db100c41a5d432 Mon Sep 17 00:00:00 2001 From: Mitchell Tracy Date: Thu, 28 Mar 2024 10:27:42 -0400 Subject: [PATCH] plumb da_gas_used through kernel and rollup. Basic computation. --- .../src/core/libraries/ConstantsGen.sol | 3 + .../core/libraries/decoders/TxsDecoder.sol | 58 +-- l1-contracts/test/fixtures/empty_block_0.json | 16 +- l1-contracts/test/fixtures/empty_block_1.json | 20 +- l1-contracts/test/fixtures/mixed_block_0.json | 16 +- l1-contracts/test/fixtures/mixed_block_1.json | 20 +- .../crates/public-kernel-lib/src/common.nr | 18 +- .../crates/rollup-lib/src/components.nr | 7 +- ...accumulated_non_revertible_data_builder.nr | 82 +++- .../combined_accumulated_data.nr | 7 +- .../combined_accumulated_data_builder.nr | 1 + ...private_accumulated_non_revertible_data.nr | 1 + .../public_accumulated_non_revertible_data.nr | 1 + .../crates/types/src/constants.nr | 7 + .../archiver/kv_archiver_store/block_store.ts | 5 +- .../memory_archiver_store.ts | 15 +- yarn-project/circuit-types/jest.config.ts | 12 + yarn-project/circuit-types/package.json | 11 - yarn-project/circuit-types/src/index.ts | 20 +- .../src/interfaces/block-prover.ts | 4 + yarn-project/circuit-types/src/mocks.ts | 10 +- .../circuit-types/src/mocks_to_purge.ts | 2 + .../circuit-types/src/tx/processed_tx.ts | 3 + .../circuit-types/src/tx/tx_receipt.ts | 16 +- yarn-project/circuit-types/src/tx_effect.ts | 28 +- yarn-project/circuits.js/src/constants.gen.ts | 3 + .../src/gas/get_da_gas_used.test.ts | 30 ++ .../circuits.js/src/gas/get_da_gas_used.ts | 62 +++ yarn-project/circuits.js/src/gas/index.ts | 1 + yarn-project/circuits.js/src/index.ts | 1 + .../__snapshots__/gas_used.test.ts.snap | 393 ++++++++++++++++++ .../circuits.js/src/structs/gas_used.test.ts | 38 ++ .../circuits.js/src/structs/gas_used.ts | 72 ++++ yarn-project/circuits.js/src/structs/index.ts | 1 + .../kernel/combined_accumulated_data.ts | 45 +- ...vate_kernel_tail_circuit_private_inputs.ts | 4 +- .../circuits.js/src/structs/revert_code.ts | 11 +- .../circuits.js/src/tests/factories.ts | 4 + .../end-to-end/src/e2e_token_contract.test.ts | 7 +- .../src/integration_l1_publisher.test.ts | 3 + .../src/__snapshots__/index.test.ts.snap | 28 +- .../nested-call-private-kernel-init.hex | 2 +- .../nested-call-private-kernel-inner.hex | 2 +- .../nested-call-private-kernel-ordering.hex | 2 +- .../src/type_conversion.ts | 45 +- yarn-project/p2p/src/client/mocks.ts | 13 +- yarn-project/prover-client/jest.config.ts | 12 + yarn-project/prover-client/package.json | 11 - .../orchestrator/block-building-helpers.ts | 13 +- .../src/orchestrator/orchestrator.test.ts | 7 + .../src/note_processor/note_processor.test.ts | 25 +- .../published-data.md | 88 ++-- yellow-paper/docs/gas-and-fees/da-metering.md | 209 ++++++++++ yellow-paper/sidebars.js | 1 + 54 files changed, 1307 insertions(+), 209 deletions(-) create mode 100644 yarn-project/circuit-types/jest.config.ts create mode 100644 yarn-project/circuits.js/src/gas/get_da_gas_used.test.ts create mode 100644 yarn-project/circuits.js/src/gas/get_da_gas_used.ts create mode 100644 yarn-project/circuits.js/src/gas/index.ts create mode 100644 yarn-project/circuits.js/src/structs/__snapshots__/gas_used.test.ts.snap create mode 100644 yarn-project/circuits.js/src/structs/gas_used.test.ts create mode 100644 yarn-project/circuits.js/src/structs/gas_used.ts create mode 100644 yarn-project/prover-client/jest.config.ts create mode 100644 yellow-paper/docs/gas-and-fees/da-metering.md diff --git a/l1-contracts/src/core/libraries/ConstantsGen.sol b/l1-contracts/src/core/libraries/ConstantsGen.sol index 1c31e002eb40..15b097f8216b 100644 --- a/l1-contracts/src/core/libraries/ConstantsGen.sol +++ b/l1-contracts/src/core/libraries/ConstantsGen.sol @@ -48,6 +48,9 @@ library Constants { uint256 internal constant MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX = 4; uint256 internal constant NUM_ENCRYPTED_LOGS_HASHES_PER_TX = 1; uint256 internal constant NUM_UNENCRYPTED_LOGS_HASHES_PER_TX = 1; + uint256 internal constant DA_GAS_PER_BYTE = 16; + uint256 internal constant FIXED_DA_GAS = 272; + uint256 internal constant DA_BYTES_PER_FIELD = 32; uint256 internal constant NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP = 16; uint256 internal constant VK_TREE_HEIGHT = 3; uint256 internal constant FUNCTION_TREE_HEIGHT = 5; diff --git a/l1-contracts/src/core/libraries/decoders/TxsDecoder.sol b/l1-contracts/src/core/libraries/decoders/TxsDecoder.sol index 587197b8088b..a6087d24fa99 100644 --- a/l1-contracts/src/core/libraries/decoders/TxsDecoder.sol +++ b/l1-contracts/src/core/libraries/decoders/TxsDecoder.sol @@ -18,33 +18,36 @@ import {Hash} from "../Hash.sol"; * ------------------- * L2 Body Data Specification * ------------------- - * | byte start | num bytes | name - * | --- | --- | --- - * | 0x0 | 0x4 | len(numTxs) (denoted t) - * | | | TxEffect 0 { - * | 0x4 | 0x1 | len(newNoteHashes) (denoted b) - * | 0x4 + 0x1 | b * 0x20 | newNoteHashes - * | 0x4 + 0x1 + b * 0x20 | 0x1 | len(newNullifiers) (denoted c) - * | 0x4 + 0x1 + b * 0x20 + 0x1 | c * 0x20 | newNullifiers - * | 0x4 + 0x1 + b * 0x20 + 0x1 + c * 0x20 | 0x1 | len(newL2ToL1Msgs) (denoted d) - * | 0x4 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 | d * 0x20 | newL2ToL1Msgs - * | 0x4 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 | 0x1 | len(newPublicDataWrites) (denoted e) - * | 0x4 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 | e * 0x40 | newPublicDataWrites - * | 0x4 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 | 0x04 | byteLen(newEncryptedLogs) (denoted f) - * | 0x4 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 | f | newEncryptedLogs - * | 0x4 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 + f | 0x04 | byteLen(newUnencryptedLogs) (denoted g) - * | 0x4 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 + f + 0x4 | g | newUnencryptedLogs - * | | | }, - * | | | TxEffect 1 { - * | | | ... - * | | | }, - * | | | ... - * | | | TxEffect (t - 1) { - * | | | ... - * | | | }, + * | byte start | num bytes | name + * | --- | --- | --- + * | 0x0 | 0x4 | len(numTxs) (denoted t) + * | | | TxEffect 0 { + * | 0x4 | 0x8 | daGasUsed + * | 0x4 + 0x8 | 0x1 | revertCode + * | 0x4 + 0x8 + 0x1 | 0x1 | len(newNoteHashes) (denoted b) + * | 0x4 + 0x8 + 0x1 + 0x1 | b * 0x20 | newNoteHashes + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 | 0x1 | len(newNullifiers) (denoted c) + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 | c * 0x20 | newNullifiers + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 | 0x1 | len(newL2ToL1Msgs) (denoted d) + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 | d * 0x20 | newL2ToL1Msgs + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 | 0x1 | len(newPublicDataWrites) (denoted e) + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 | e * 0x40 | newPublicDataWrites + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 | 0x04 | byteLen(newEncryptedLogs) (denoted f) + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 | f | newEncryptedLogs + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 + f | 0x04 | byteLen(newUnencryptedLogs) (denoted g) + * | 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 + f + 0x4 | g | newUnencryptedLogs + * | | | }, + * | | | TxEffect 1 { + * | | | ... + * | | | }, + * | | | ... + * | | | TxEffect (t - 1) { + * | | | ... + * | | | }, */ library TxsDecoder { struct ArrayOffsets { + uint256 daGasUsed; uint256 revertCode; uint256 noteHash; uint256 nullifier; @@ -105,6 +108,10 @@ library TxsDecoder { * Zero values. */ + // daGasUsed + offsets.daGasUsed = offset; + offset += 0x8; + // Revert Code offsets.revertCode = offset; offset += 0x1; @@ -146,7 +153,8 @@ library TxsDecoder { // Insertions are split into multiple `bytes.concat` to work around stack too deep. vars.baseLeaf = bytes.concat( - // pad the revert code to 32 bytes to match the hash preimage + // pad these values to 32 bytes to match the hash preimage + sliceAndPadLeft(_body, offsets.daGasUsed, 0x8, 0x20), sliceAndPadLeft(_body, offsets.revertCode, 0x1, 0x20), bytes.concat( sliceAndPadRight( diff --git a/l1-contracts/test/fixtures/empty_block_0.json b/l1-contracts/test/fixtures/empty_block_0.json index a862e82b53b7..2c43c22cd3ea 100644 --- a/l1-contracts/test/fixtures/empty_block_0.json +++ b/l1-contracts/test/fixtures/empty_block_0.json @@ -17,23 +17,23 @@ ] }, "block": { - "archive": "0x29598370fa40a50b7fbb99e501f11527a69e104a43c8eefbfe66888f137e7e49", - "body": "0x0000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "txsEffectsHash": "0x008194e3dd375d5d878dcf9546bb5c2c77e165c6b1bef9aead8ceb35c3762bd5", + "archive": "0x0d46b75aab05566e1c725d2e3fd396625e7e68063b393501140c92b2f8d61481", + "body": "0x00000004000000000000019000000000000000000000000000000000000000019000000000000000000000000000000000000000019000000000000000000000000000000000000000019000000000000000000000000000", + "txsEffectsHash": "0x00b255173dfd4d694f1cda6750950244cb2efdc1c80176a61675779f5a400123", "decodedHeader": { "contentCommitment": { "inHash": "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c", "outHash": "0x00efcbdb79553ae6863646bf36441755bc344a9a4af335fadc6659594faa4316", "txTreeHeight": 2, - "txsEffectsHash": "0x008194e3dd375d5d878dcf9546bb5c2c77e165c6b1bef9aead8ceb35c3762bd5" + "txsEffectsHash": "0x00b255173dfd4d694f1cda6750950244cb2efdc1c80176a61675779f5a400123" }, "globalVariables": { "blockNumber": 1, "chainId": 31337, "timestamp": 0, "version": 1, - "coinbase": "0x5e65711eaf5606f1f42dd36579261833e54595ee", - "feeRecipient": "0x00eafbad09eab548a89726e2a735bdcadc37aa4c318ed7a12d9be6a7542e517e" + "coinbase": "0x27204f71247c4b9a95aa1b191c2983b1734cb861", + "feeRecipient": "0x1887e79146cc1e84707003c5b9d9fdaf3cfe2bcf07d682a032fdba97cc98b97e" }, "lastArchive": { "nextAvailableLeafIndex": 1, @@ -60,7 +60,7 @@ } } }, - "header": "0x1e3523d3bd50ae6204e1ec2ee1bdf8af4c6217ec80900052d2cf4259379dd130000000010000000000000000000000000000000000000000000000000000000000000002008194e3dd375d5d878dcf9546bb5c2c77e165c6b1bef9aead8ceb35c3762bd500089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00efcbdb79553ae6863646bf36441755bc344a9a4af335fadc6659594faa43161864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000000c00000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000005e65711eaf5606f1f42dd36579261833e54595ee00eafbad09eab548a89726e2a735bdcadc37aa4c318ed7a12d9be6a7542e517e", - "publicInputsHash": "0x009e67eb54715bba61c94f475f6d4bf81b775da316c2c9a6a12506851f760bf0" + "header": "0x1e3523d3bd50ae6204e1ec2ee1bdf8af4c6217ec80900052d2cf4259379dd13000000001000000000000000000000000000000000000000000000000000000000000000200b255173dfd4d694f1cda6750950244cb2efdc1c80176a61675779f5a40012300089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00efcbdb79553ae6863646bf36441755bc344a9a4af335fadc6659594faa43161864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000000c00000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000027204f71247c4b9a95aa1b191c2983b1734cb8611887e79146cc1e84707003c5b9d9fdaf3cfe2bcf07d682a032fdba97cc98b97e", + "publicInputsHash": "0x00e871424d9f28f7086909abbf5863791205778e437e8a19d9ee0a72eb7baa0e" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/empty_block_1.json b/l1-contracts/test/fixtures/empty_block_1.json index f6a627a00e6d..8a989dd25f08 100644 --- a/l1-contracts/test/fixtures/empty_block_1.json +++ b/l1-contracts/test/fixtures/empty_block_1.json @@ -17,27 +17,27 @@ ] }, "block": { - "archive": "0x045487d0ec498eb3f7f027715db8d67cc060604058bc5dd3e2e39fb47fe0ea17", - "body": "0x0000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "txsEffectsHash": "0x008194e3dd375d5d878dcf9546bb5c2c77e165c6b1bef9aead8ceb35c3762bd5", + "archive": "0x15739377b1844c78d29e3a560c31fc4fc966d80f5ee8886c900a825afb49a56a", + "body": "0x00000004000000000000019000000000000000000000000000000000000000019000000000000000000000000000000000000000019000000000000000000000000000000000000000019000000000000000000000000000", + "txsEffectsHash": "0x00b255173dfd4d694f1cda6750950244cb2efdc1c80176a61675779f5a400123", "decodedHeader": { "contentCommitment": { "inHash": "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c", "outHash": "0x00efcbdb79553ae6863646bf36441755bc344a9a4af335fadc6659594faa4316", "txTreeHeight": 2, - "txsEffectsHash": "0x008194e3dd375d5d878dcf9546bb5c2c77e165c6b1bef9aead8ceb35c3762bd5" + "txsEffectsHash": "0x00b255173dfd4d694f1cda6750950244cb2efdc1c80176a61675779f5a400123" }, "globalVariables": { "blockNumber": 2, "chainId": 31337, - "timestamp": 1711036059, + "timestamp": 1711569782, "version": 1, - "coinbase": "0x5e65711eaf5606f1f42dd36579261833e54595ee", - "feeRecipient": "0x00eafbad09eab548a89726e2a735bdcadc37aa4c318ed7a12d9be6a7542e517e" + "coinbase": "0x27204f71247c4b9a95aa1b191c2983b1734cb861", + "feeRecipient": "0x1887e79146cc1e84707003c5b9d9fdaf3cfe2bcf07d682a032fdba97cc98b97e" }, "lastArchive": { "nextAvailableLeafIndex": 2, - "root": "0x29598370fa40a50b7fbb99e501f11527a69e104a43c8eefbfe66888f137e7e49" + "root": "0x0d46b75aab05566e1c725d2e3fd396625e7e68063b393501140c92b2f8d61481" }, "stateReference": { "l1ToL2MessageTree": { @@ -60,7 +60,7 @@ } } }, - "header": "0x29598370fa40a50b7fbb99e501f11527a69e104a43c8eefbfe66888f137e7e49000000020000000000000000000000000000000000000000000000000000000000000002008194e3dd375d5d878dcf9546bb5c2c77e165c6b1bef9aead8ceb35c3762bd500089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00efcbdb79553ae6863646bf36441755bc344a9a4af335fadc6659594faa43161864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001400000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065fc569b5e65711eaf5606f1f42dd36579261833e54595ee00eafbad09eab548a89726e2a735bdcadc37aa4c318ed7a12d9be6a7542e517e", - "publicInputsHash": "0x00e9cfdd839060c90c216e1cecd24c5570a84e380e2bc640fd9dbbb5b2dd0718" + "header": "0x0d46b75aab05566e1c725d2e3fd396625e7e68063b393501140c92b2f8d6148100000002000000000000000000000000000000000000000000000000000000000000000200b255173dfd4d694f1cda6750950244cb2efdc1c80176a61675779f5a40012300089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00efcbdb79553ae6863646bf36441755bc344a9a4af335fadc6659594faa43161864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001400000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000066047b7627204f71247c4b9a95aa1b191c2983b1734cb8611887e79146cc1e84707003c5b9d9fdaf3cfe2bcf07d682a032fdba97cc98b97e", + "publicInputsHash": "0x000d3792c334226f40d2d19fd433172dceb4202d337b9a8b0cd01c71c72ee262" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_0.json b/l1-contracts/test/fixtures/mixed_block_0.json index d3b9839f52bd..8c5ded28d014 100644 --- a/l1-contracts/test/fixtures/mixed_block_0.json +++ b/l1-contracts/test/fixtures/mixed_block_0.json @@ -34,23 +34,23 @@ ] }, "block": { - "archive": "0x1ddfa79462a8e2beea5cca8199d5ce0f9b0412d561d4a35c8905b8e8b2beb7ca", - "body": "0x0000000400380000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f00000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000171000000000000000000000000000000000000000000000000000000000000017200000000000000000000000000000000000000000000000000000000000001730000000000000000000000000000000000000000000000000000000000000174000000000000000000000000000000000000000000000000000000000000017500000000000000000000000000000000000000000000000000000000000001760000000000000000000000000000000000000000000000000000000000000177370000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f00000000000000000000000000000000000000000000000000000000000002700000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000027200000000000000000000000000000000000000000000000000000000000002730000000000000000000000000000000000000000000000000000000000000274000000000000000000000000000000000000000000000000000000000000027500000000000000000000000000000000000000000000000000000000000002760200000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000341100000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f0000000000000000000000000000000000000000000000000000000000000559000011000000021c000000b010a2bbd74d570162c997959bacb8696740c7e546d1e820a3ef3cbb06aec5b2dbe4ff56246431b95bca6a9f2b2292fde63c6d78884aae32a500f0152abc901ee282de062d3415d375de3593c40b6e14f06b0c6df665794962b73019e11d7a0c04127bd70a45136ea8b9ae21a8ed4c970111c8064d017f5b0f2c5393737cfeb206e38a47b1bf58417e605c97c4349d9b8f15e8b51b7fba8cb1e31cc6fabff0392b27cf7c1dfec5d9b20db8af3a38e9f903000000b01c7a7c90871d4f3bbdc115e923409bf63575c0f12ed1861b1d48f634642d15c62e5814361b1e0d5200248cc389944d91e9980efd0d6db6debd331eb0cfae4528048770f423e0871b5f5874535d207787bc4a55b85692ed99b4edcc4522ac7f2d1c186d3504b5976902405d03ec5cee862d0e0ce317ffa4c69ab4e04c335603c576df0e1f2b1c63c874146baf0cb7c476030f3a511054686e095db2f3c7cd3542e9849f287bcbf895dedfdfaeb0652226000000b01605c3d4b8545cbcf35ad088aa62cbcb872f0d8c62acc490de9005135e51fd7cab21c962dcc1abe65f28e96adcd271a6c1a238940e1aed0257f6e3576526c8f626da07e617f3afaeb40bb364e2005c3b58970aba95ae52fc917f3991478ad83e93f399158cb773aa4171e14f63faf9901cf8003377010e084f7e2a251f3421f5d84b6ec9f80eb89388ca2c6b0dbd3fb91bf7ecf4b536467c2890704bd416c9663a11753f21d820f99678f910a0b270600000021c000000b01121aedf25d06480c417ca7cb9e27e1fbc5f938585e775a81739a7ec767d5ce5a8a3f3e0e4e467cc0ea34c07ce4db5d68fef8565e828794928633d171fb83005070a8a4709998b3a5814daf9c2c11153ad50e38eb130e34dfaf33aa5988ef1dc8ecc4d3356b3e7b845b5afa54348e40e1e2c30d28d219431b8faf8133d00c868f13e7c7d465aaf3155ead482557510c606662ec826720642271ed4efd0a7fe0c257dc13f0accbc5224a1d9015f4391a7000000b00318659a0573453a083b2a2845123900f7bc8454cb63792438f4e2a11439801c6c1bc432909789212410d5d44d45f93193b28bf7fbc6aa8e1a9268fe1c93bcf63fc5f64603cbb7955eb77ce99d31208ba624775cd64b9853414ec95e764176bb219b9aeef74685bf2594ae9bfbf7660f0eb5a1bb11ec4a60e38c0bd52426ecdb3058c00f35d08a43f8ef19a68c58da0a2223e984f661613b2064d2741693290290e52cc71bad840884c0bab1cfce0a52000000b00ff2c077e06b3fac309ad0df3fae04b6899da0c2e043e99014661995c34552f83c9d20b274bac94336446fc3a63128f174891456eb6b4bb053f32b66a736d66ca18cb1dc3695b451c07031b0e9a09482400f6691109a41666e4024f1b3d5f99e11bf51dfc94e7a19802d73eff6d2f86d15840b1a0238fdb01febe6e89a7cef8d1f54e6ce24d64c471d0b166555d58be6244464a816a380382f67269d26a0f70b0a50c157a3d023580620a156a020a87f0000021c000000b003c33d4fdff90f92b4f450012410cb1fa23c82cf72f4fcf1dc574bebedde6272df862c312cd18ea78ddd5d1446e46beeb93a9123176ed56456523edd813cb6ae96d7aa33d1dea51f19107c120d9edc98da74175f444b47532b45fb084bbde002d93b5b7c36391c948f43c59869ecc48024880a809f6137e609dcbb1de15f05a22aa43528016823ff3b6f5921afc7ff301f086609a1c1a7704b7b1c80ef0074d6eed2a8075e0f72652bbd16b8f50a4862000000b0242984b0585a5096a968fa461f07592ade773e3c0071ba6bd143fdbce81a8a7b17d8e5161e2bc1d2bc806de06d226d8650e19fc4279217c3f96b8fadaf841748c966ae395e4c0cda32a6b008b11a80aafdb088e1d62f13e7270595e7200ed98f21ae7ed0060a32ff3521d98772ad0bc024af543dc6a2b5267727de64242273e4a2cb09f2c109a4a258f8cd74ee38abda15073c7a51cc5ae3512548438681a4aede6c7016b2cfcc03d8a35c20f529acb2000000b0006652e8552e21b361b4160b36e7ac116778a553a0927e7fc55b283461bd93346ca3efa5bf58ad80fb16555c83c2694631c66878c8a3528f01fd1f746e0d90b407874e8f7a487617347ee8d730ce1687c28dffffda2519b61b9a169dd4dd627f7e785c2a4ee3d199c04a1b164a618b6d04ea0f7bcc62131af5419f3df44166e4adcac0b4e5217199228817dee2d4f28d1236f0c8a83b6c8d8d735cdd9c6f7cf492ce5cf433b388daa3e26ca2405d9c010000021c000000b0052d908ec0b2e9cd6e5628cc8e243ca5530a17f0aa18db85148408c172e33a92ec4138ec6aa2ea646030d71709c5f1b1190cf9b003eb13b580c23d8bda08838b4eb76dc00a4f6b63f39a0c60029cd02ca17bb0d63fb5da3d4bab157620855863fcfc22270e4f45cd1e2ba8e301e6d5fa0801a8b87145d47f31d504fa83ffefc1f07f6c0a75b76c55a47d50b9b2673d962524bd859638116314320ad833903e5b30173ce12bffbd1ff446914d8404200f000000b0299c4fd95291aca6e748e82827210766579fb0ffde0197fccae53515ae463719244bffee25fe480a8be6c6d3e2c31fa702a7f3c647ee94727af63109b529fa138b34b2d5addeb3ea9934edb4589743885601b8a9be5c4f4ab5422637355898acd8adc7a2b88c5c73bc5807384593834114c87e48a29986223c5b368376e74b5d1242c655f852d9d7bfdef3ab428225252518bd83500fb934f106a22d485d86cb9f6418abc3ecd48b9f0819c4c0060010000000b01c6845e9d28419318fd5e797c1f8d88ecf30097b811a99f423eb41fb6995f8712dff65dcabac4bbcd0be157fcb4b081922c27d4d2d300d525d06bb30672a36c379106ef440f9e525c12f359d9f0b096c45a21609630fd717bbf13b23796d2b9ec83c0271e1eba2026bf1565dacef55ab26c18cce82323b5bbd3cd5cc4367804cbe55308b13e5774c5a07f520315bb8080da0f0582e10fd05f50fbcca6cb0c11df1fa8c727d2dd157f90bd451fe965c800000021c000000b0031f6b8e470850aa720fc25fa5f306b6e08b47dd5b8e14aca4589c54261105fe7d6cc9de0b279259489cc824b796f59d1dc1bcaf45b947c3a1c3a48e0fda61479a394faed65c2920c95205293a5d09a08013781e4d5252826982c93bd5851b51dea2d6638145a86dd4dd5766e5e1c38d0879e36a685203a58cf1cffcc59c45aca7240484e4bda347b3a6626c76afedee211cbebe42d72693319db999a827d635f81c29872e92f2d97195f2a107dcec1a000000b00248161253bb0b33afc7c842ffcde325c99f22956ccf70ab1099249251a8a1c029b8613953dc14d5cff2a8aa62a9a2994ba4b9e0a3402ca35f0bc9d83bcd8da9b3d02051f596c601e73a6e1a26935284a4a017408cd7079a80e6bda684163a2fa3b0486c9048a4de95442eb90535dfca146a6bb89f6904179472b1ecafa518c5a3407a6e4e7c83e7262f18a8f0bd7588239020a8381abb877817935e185b8185f2835c49c89274ca7c2de8ccdbee6fc1000000b023be9f5b3e9360a9b1c581ea18005151eefaa0719e8ec3f0b515e1eab2ee81ee9f915c0088e833b98507bb1671be2ef312b26b155ca9094088270ee1be17f961de1183a8c5d0cb5eabe98bd986110a6b90e26b6db7d6767c64011c842591f13820f2188c63bdd2edbc91c5d9c6a29bae240c3fbc165b03c27574c8784209b9ba94741ddd483207c9eeb3eb5a1ad448f20febae533801e0c96f8cd92724dd8649fa62fb1bea3104b5dc99330ae23f45830000021c000000b01bf9a2c02ffe30760952f802c32979c0daaed35fa4260f810c203f0abca95a277ca6fb6b1b882e977add7b3a333e3d5d95edcafa5d9771c51ceb6a226af31b836737e8f98f3dfc5388f7ed15c58dc6d11f56173d177332f33901fdd03f0b8157921f530bdfac446a306178ec146797bd27b9da853b34ddee295b5c8047104604373ae066458303dc4c91e3eac4286c241c99a421bf7f23b7ccb1713e4446e8fe67a4ac22aa31bfcb023732cfb6bc4453000000b0018792b500e03b5c6bb98d6d86be7a9a3b9f7a4ea4318def4dfef60a93d8d6ab8a8f1dd680b93693c8e94804a3430a30401f7af77787cee1abf78bdc996488bbfc31f5295d2c0beab5b91f5fccafbdbe93c94da31f5842a1283b09a816de65307cfae755042cacfeb9e6f9aeb67e40910d72d0aa34555a205f4302bb9916e6dfdbfd7be5f49068e03f5f80c78bbd5de90dcbad85f1cb4ad472ed8cdb47048bb7a0bd7484011169bc7956344547e8c103000000b02bc9148b852422f4871f768344e0fd3609be9d568574bbff431fd273786d81187f2dbc7827c9b93805ee2b94c035a8ae37af5f1163e93a6b9a15b6cc39f55ece9f0f680f5981b603526c511264cc1db27104330fbb427c84264c72700c3cc4a21325b71f07762b6891a9b323e26b798d12a823137549a0f6024be9989b2823556ad277090f81c80bacc977108fd9641e3003eecde2afae9a0f9fa9ff0ccff022251116c1dd193b64749e74fe9a42fe260000021c000000b02580633868ce13e1655567dc358400c3f99e4147e58559ef132f3a72e8e9ac6c8d91dfc3ef61b2616e1ef389a768f33199527adbfe5a06b18fb1dd1f62e8e964539c5c264a7b3d290b4e13d33a9d24e401e17564cc3c1951dfb3e0122ececc2972adf20b0ed3d4db6ee1a23473d0c64710fd83f9bec67f9cf884606a05d811e62fb4850e7ced3ab0e9375b6588500f422f81806e5e2e6e7c5021782acfc667aafb1841afe433f8ecd91836c90800ed30000000b0107b6e87ad40e85b3f5ba72bae59666b665ee468ab8e71982b31c2acb61abf1cfeaff5bed71428ab3ece6553b6143c2d9b2cca7ff6dc465c87ad77885d82da1886225f68612f91479512326053cde3f97349f01b38b0fcc9d4bb4a95c0e9a4db1aa5f44d9f9b2007fd65a22bca383e8b28648b5e1f8240c7c5932e2d8e074d49a9d8049bc3ae47bd424f75fcff2123c61ea170c3853af3d3b9fd3f43891c9ad27458cf173af644bb4dc295a0dac5b443000000b0254f07678ef9f49650c2f8d0bfd424b5786169fcf7fa29d3521b5efe6c50b21603ac7c1cb2a2a28e4a7e03021be330f69bd6848e1ed60279bd6c5600a189411aa6270a27c0e5ea618cfda0692a30fe7777fabef5297b7455a29e1d30bdf3429deedd7b1e000810ae87cfe53db454556c079033549d009304fdbb5e284379ee92e783460722aec1583e0662fd3836746c01c89a966397ab7312e1f634a8ae30c5888553092031d0e5cb2010147678ed0b0000021c000000b00c0b165f1fbf39d9aa5e6e548c0f578423049ab1f2634122730061ce256f9df914fff081e93aa4ce2ba047111b3f74208657ffcc96f360639fa071ceb8db88f59d06cd57d23ff2a272b9c52711cf80a181f0d3be2a66487414d4e6a58f106c3efbccab1d69befa7ea0af8a177ede1f7e16ae171e0e0e5b29d39832d5bac3d3a87bdcf77128226a03dff68668f19e31a1148eb2f219a7d7628e92b1e8a9c99b70b577dbfe8f4b2e339dbe379ea778fa50000000b02891f68d0b2d696b9a18b42af098be0d4ae8356372866177a6ad3745bd36fd9b0437d47adc6d91b1baa9975e9c797ce5f65cc8bf08d70eba1074f2a81d078493ca8d15a6cb77dd3931de19b8f32206e5a006a51a2e9890051d1e71eebce96f30f4dd2176c9b3d5d02dd9f6af12c514042b85d4a05d7793feb4d115712c14669a9759cfba28232fa354e6cdc25886f179243c6331efa97c33e03fbb418ccb1c1b20ae117530e4fc7e899c2ea8503ef3bc000000b013618eab09b8b2c8cc4d3a00404d34b1ba3d23060b667ceca197ff0908ff5df5037a78e17199e8742ab759a08acfffb3fb1ab564a5f7e932a30bccb36ce67b8c0ec53e76ab1c9f90cc82870fad281e2343a24c9bcff8ad4559d884e1bd64c4ce2d5320375e5ac096c0ac042d620664901d0e8211d7aff0e85972071091d17f71d874de464a290cdbb304d466efdaeea5123efc8178fef3ab873fba8c9f83f9e287bc1ca15409cd4f33172c0176e2399900000fa400000168000000b012a5537385fada7cb844d388e08d82ad69692a507f910bf48101120f36da01613a91c0af94cb3292707d1acb3504efc034ee838db52e1de62aff10273e66827c49b0357ccbd236d816620389733be5693755909628c4f6b0d9e0c28582c167dd04705755fb112a88b778ab6e051e13491ff60dcd01ea47508dd4fc804530c41b0b82459420451dac741225fe708b768d1ae51aecea986276d20ec31465965ad0061477d010137a15dd0e7dbd47383e33000000b029717760b130fe9ff79703c516a795971982bb796d7591a8f46fe8e4388e6edc523d333f86a56e3581a6ddb99baedf19a9c1da1c3258c4b9705d25bc4f768f3565f398643c63bb0ca4343c4801d535b9d0544e6445a334c7f63d2bffca4ee7b77bba031f605bc358dc17cbe9ea2576191178fa03bd2beb541b73b525c557cbcfb215e1f50dd4406458d3172ab6c953ff2606dea2714bccb19bcccbbbcbc386b3e4f4485ff3988ccaf791fd29b95bfa2800000168000000b0266c325ddba9954385fc0ac227e99a98ba966e2aa7868c3090da7434fd6ff2c33040bc2619aea948bc4bbb0ed95d31849588d0a6d32947259e18aed3ae07cabca452d1ba2a75727ac25c9fbebc1eb3c0eab9edae44cf69478a39e2626cda834d70c28284bcf1ab1d5c276768e950dd861bb96d91e305a802fb6f93256dfe14957c6278d454b5a9bfb784c96175e549ad0f4689193a9e0848af83029995a21434e01c0fc80ab40e55c45de06b562cf036000000b01db4a023205330d7ee7f3e7ace12e88821f87412e70a97dbba4cd9817664a0091cb8f8cbd13c9bc4ddbbff41aef5d5e92a4cb219f303d191ed652082b4fa23d6229b814b2451a7cb74a66b69d10f80169335fd29fc85d6c42d61839905075b4ab77613c5332e45bb856d71d8553e39f61fe603a7cbdebe6d4ceee14867016280ea8481283e69af36b4bf5ac203f9b08b18c4d5abb83b651e72ce322d0bcbe8a9031eae5c5b0868719f28d377cbf7033900000168000000b004435576a04b9a84f039427b21d05f34547b52699a4951a5a57d9ac8579cfc1b6c71c2d62f9af572e093844fcf470596e366e322148f17493d4ed4c79964730cd06d095e9930e16bfef0c928e302e2f93a69d3cff0503e77608e59aad20a6e4b0a392f7ab43bf9d08568c96f9f4ec37c01cfea0513983d639a933c7c9cc5802270c4ed861a650d658ac087c20d8b660f1c68e93d244ae3970f4ad31afb579fe46b45cc5e9cb2528d34c0db1feebce553000000b002bd373cd789cab3372f0bf91f98d78b133b125b70926f2019b8382b944ea749144ca64960bdda19888a87393b136f0d45d955f44d916296b1142d3f1724a0ac63d7be882d4e403c1dc792311e06e87b878193627c637816916c331601f03a608f06060dcbce7c0df3aa380e63b0ff05250d5b5402a3d051c70803e5735e1f166057a974308eb6b1149ca6ebdcb9f789134260a55c006aa6b6af4edf576fcb34d45eb463359cb2986b29cec9f083c8eb00000168000000b02870cb8e5f7bcdf27293a5b7f53f709d33af95baef20ae5d614d2d91a2fb15fc7a78eacdc2e434af5a60cf3bbe7c6480e40aacf8d29efba3853f5f2b2895cdacc73e91518b3e632c8313c91d18b614bd401daafbf587fef0d7fef4b01fef55e546996e2df28249ae79953c1fb439e5f30de5af0497ef73b5e63e2ac190ba41d47f13d05a9398f15498abb6dadf78e133190b6549a93ccde391d5f6afde3fb1122838fa1bb8df3b3caea05761f6144359000000b019e03c1f18b70c910020e39bcfdc9107506cb7b5f8d9aea17931afa715acdabb1cf9f97198a01e2a647a732223519c983085c761b6e131b5571eedb3874a954375a390dde79bc268a1619be76ae581aae0e5e2a953818c5dedfe8f17787c4c4a29cfab1765e311b75850473bea1fdf30152b6f4a8c189ef271bd0df141443c17cfc5bd199afe7c3df62fabd5c505667116780efd46226c38e11debe5bf41c6d82f7e9da1ce22f8cf5d3c8c635dfdb5e200000168000000b01741bf2e9b0ae57ee596ea73535d8258deda9c12d865f0972bc8412b084e1b1f7e2e1da1314d77aca987008306a2137863f27a3751de383413acc35f0aa5231afce8c0b0dcc3e822a3b164eabd42781623ae022a7a4b913db3c772dafef11df31a2a9311fe87cfa57e28645492970a3a0202aa2f00ada033b28f572191b78039eaa14f5c829159a807044181686a3ae10d9db5fe2ef81b100f85c1d1d87656600fbca19cc17dae490f1213d8ea2d095c000000b01b56c14ca3e4ec13086b51522cee66d91b965c33223dbb76106259443f6bcff5d90a4060e9e99914cb891c1b32142432bd14f8cec73e98e95b18c169238a6666cc76e9ad03e735d92ced8690ada973296cf01f877962c2e309a935f84380bbd9cdf63071d59789134e1a8b20997dfcf7006cfb283489708a946c4bb2da6311b094746762c42cd4109b0f48ed22e806550578d2774381abf17a316bf13a820e01cbf9e34a6e7aa20e9ed201bca638177300000168000000b008cb4179a3a2b5f3bfde879b4f9e02dc9530106c85c3b8770470874542663b73be2da45b34e4db090f26ec53e130bbb12d534b79bbf8694c4e0f6c826cc967580ff90207ee5af29a28250f0cb0d239aca3dd0a70a95a329f318fec630bc9e493d63c429f651cb1463244a3c11e45907a09d05f8de44a0139a4122adbcf98ccdb7d2dd4d84e9f20e2897285c3abcd86ac1413cc9f8e86491bf1d65b0a90da818860fdc615e6e2a09c264d5bc51c4f755e000000b01e3619aaf4f7e80a503e2ad15c2dbcd20b461d0d8645f64f5a1a7b6ac2de4db7f8384631087e5484e8721b2f782bb45d880c9d461f6d13cfc59826c93e64af19a58a40d891c3d06099ade57f2c18d7ecd6ab0ebab35447d3dff46f6481f319be27b7205ea4ddb0c55c98da8676004a570b9dcb0eddcbf87a0174a8afc8d3c4288887cdeb176768300e708c1fcdff233e17cff21bc2cf4d95b233ee9f53d8f5873b34608a07ac2df11daf77c1215dfe9e00000168000000b01ad758e49bfac25abff7a78e866f995167c4f18002f32bfa41cbb6f907bedd70c8913756670298b74dae4f18a062bf112fdeeddbe3ea74f787ab6745b8744ca9ed869c7ca37d1953ccd3ab2f9965480803819782857e0e94c0b6c6198ee14a16de035158882adfa36648f5832eb01229255d3562cd46b700fa14c0c30acb853c101cacbda258fa6d7e319e168763cb1513abe30f28faae397752ff5c41c65a5d7769edcfb7fd9840497bf5f4cf4aff77000000b025650276ebacee2a86bee0d4eaaf6c0991b4b9a00bb090ad21c8efbfb7abec111876d25cff91ca22587f89467dbc911599e0a27a35b9d8256ec4553a186bba3dcbbbf89af249bcc549163188abdba5395f2f1806b4fceb126f36ca92a555d8cbc4cbc462f2d51affd06cd1d756f0cb8c2308150bcadbabbfe2a5bab2ae6b0deebcae541dd6eb27f92a8503692d6e47d623784d8629cc2e09c2f52c15a34f7c3f09e0cfe18d8ee54072ea2c5b758ccf0300000168000000b00cb0bf437b59aa5f55a5c8a4e63e0ab0843160799f77eb97b9d8c321a6f6281730c7050dbe371ea55396bcebe87e0f338ac0d4418f4fbd685e2441b019e8886792b1507703867c4aec351d4da2db48de8fd3945971ddd7f1740fba0e2903de9fb484c45beaf10fba057c192dd15dfd6c2b68486101df8c79297782d477334b38865cfe05cd581d309128c6b72942a52e03d78eff9c56512be67681d896e64c701eff666d1fe8912827d7e570825a3965000000b01240e8c047edb175bc00837fe1a1bef2dd6c5388785c5bc64c0c618071929adfaa68d0da9b816ccaeb475d77a27fcbb96c380851c7b06afc1a3d997902ea725a6a735d5f083104b90baa4a160486cdd64267c41555244b3b825a7e679e896a0984476257a22f6de695c3bf8caa308afb10248aedd6521789c8eb967044d83d3e83846a2cc26d4780577e258868e2663e03cecf0f17f8d17127fbb74477c964aca5e3aee8a28d77c93b78ef85be6428d600000168000000b01cf6f40fba149a9d4f467489528c5d54e9de2f73f0b6698428463e018002757ce5026d700d2155766c2f3e383f15a2f939dd28b12593bf37d6f9c6d4fd2aa51e543b7c2547f51bdabf0586c918618fc1c063070e810162bff0e35d46ae890a506d149e05ad242b02fe0e8f56ce84716511378b10ba1ba8fd554a3b5f11f57fa10503cf68bf25753bb92abca625ba70a6303b5db78cd98c2e88e330de0e30dc9ce7361881cd99058e721809457a62a921000000b0062f2beb69d36a3f6ced2d3963cd93d152d8efc7bd058e73509ee16a620b58402bc1dd535a003fba61990f7f30402979828cd4e2294993c21da6dfb5d5e80209a24bc8f46e7f06fa0b5f9b446398b0a6d1bd76e37c3835cd4b935a6c526839f21850e9976552a2ed519ec21441a6f4832e4cbf0391bab306612c8a942360a562f48318e72dfb29525b22e8315fe4267202ba7354197ba3229064d001b029acacf62500abbf646a60cae73a10f1b77b9900000168000000b020a0bcd52c770bf43a022bf1d9f07c783cbceef93097077a73b840cede8caf6f8c60926a154914fec7458bb90ada66bf31400ad5494d317053b1481b6e79d4a820eba4bf384a9e8f6ef8986074b9e67ba5806e3f41da11bdb1dd52cf7b63cddfd8116d148ab5868fe3ccb8efda7e0b2626786b7438fdbaa33c07324a9c8ec0408972b860290b5b711fabb2a2fc140749206863858865c307161f22d1832b11b4e9e6351ea0262a0a6928225978d4ff64000000b006d17c7ebda60b3907e6f27c8fc30d57f21adf9fab41657458830d20033637eb3bfcceb8ad113587909fc5acc556b25ee90340efd300beb2a8122799cc550d61a05ffdf49c07558cc3c1f5cc163d475439fdaf8293f977155b369366ba1565d3da0e304f89f58986c68807d32621d4cc0e14a064d04fcf2a2e863163b4099051c87d628c11905a6ce144fdd5f0e1d1080bfb03498aae6b62dc762fa72b7984aaf3600567506aaa82cb93b41aad8275df00000168000000b00da6c2799ef24c52d2487f780d9367c4fdb2accf944dd5d2b8e376e8b4eb8f35d9a9158fc2a9c81a6810a47e7a890c6144bf4e335614a9cd5bd01298f62a963e86a20c819801ba53290420fdc99f831c5704d7fdde289bc3313e20e97082777f5ff3aa73aa5cc24f2fea02bd5ae78b330bec91ad4714c59f733c4afb567e748edcc0b57a9ddd636e35718eab36fbfb590538e13162a0051f5df443ca014e5ce6b1b846b481aeb295739d11a0fbe9001b000000b0300ce48175064486cc3f08fadcf972544b0c3d56c7b2bf57d5bc0144020704b16453609972a396e9981b2dbb159150a16d10274ec07cc3592c95553472f4edd57f0f48a4a7f1f34ac3d07fc95d577333dca85fa44eed03cf89c182cc772cea94cf3a63a176a84a48f4eceeacb316301a17761bcbca000dfddbc37e7769a78ee7f864beebbe8c8baf043f5756a4d498a214b0b483c05a144db5b668d03b037e4c79fa449b99521f247d81063da1b0390300380000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b7370000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b60200000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000381100000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f0000000000000000000000000000000000000000000000000000000000000599000011000000021c000000b01aa06ab1254f91ee8471b5c561ec170999c4f08e981521b8dd911925694230e63d8bb9afe7632c3ed7947ef1e7e2ef0bfd6d64ca276bb5eb7e6c0421364f56ae44bcce2fa13e5de32ce1186bd0d8dfb304b5c4b2b28e36eecef99164eb615b9ea8895f86e838a9b0c05b8f001738c9bc2d7189ff50cce889543257cf1f4bd1c91746097c5ba281c731a44d02dd364fea209f85f5c02f1f0eb334b5bee90ecdd6aeb9789070966ace1262941f558d00fa000000b01fdb30f6189b90fe3979e40a22480b8f660ca485e590ac0698602b05c578400fb97fa29331b09f83491297aa57804dd774eac55ee03af2c9b9e298bd554b7ff87931a64d873eb77d3677778eaa1eb67cb57779b8ef3a950c513a82e4cd665cbc699537600b3c0dd224579cd9c5dd55590249c2d29305663e2772f8670d02de1002d1b8f0ef50bf27c4fc1cbced018ca31daa8235de4ee5d98f126cd6d039d33bbf15df20c2654baa3ce92547102b61da000000b012ecf3464f57de70240405289fd0e47ab8d5154d792f933416c4f9e04dd955c4bc3947c517ab9f29dc3821759b4e74ac0e3fde5db38f518bf6f0d545f16bf3552ee7f09ae666d3695d016243b950809d0e3aeac5c6ded23e1603eb8c984a29ab8a8b2744bce9bef2117a8d7b373610bf032f77782c26a693f42087d453e638d48dfd635a677efc95f5e6be287b3c220b0f3a1581075a59d3423a31d0489b3f88c8947f1f9bf00837b49234478f6cebba0000021c000000b00f882650ce9c1ecce58a9e2af823c250c2f69ef1e65447fde38dd188d370fc3bfa7c831ec754ac3c8cb02d5eeca6ca2a62ccbbe28cdfdbdd5d48f35f79f200713c170c9f6fe79af5e18d266196ab0b97265f12fd3e6fe92d0535315b62260ee6215470b8168258dd3220910aa00e81450d3426a6df5f0b656a20b8700ff841aa801f37539f75759599fe22ddf643c0f2021c3d43f655259e5e1a69754a86732219e9dc32d43d7b8e1184989d9655a40d000000b00f49243cf87ff11ed1a566ae71a1f837c94e42f9a14a175832b2f41c74184135108ced4d0db7b9e859dcaded446f5e0ecad710ec4a8d09f73d5d6b6d02de89e7bdd48005775a90a1cac3f55320b567e9c45ebfc31d57e9eae396af839979a27e43e07493b7723d8340c55b1d8dc5ad79098c35acc261345122cff5947e8eeca53741e98463449d67f4e8d3c49b4aece123294efd8f9adde89b5560a5a34ddf107a18b6b060df30d8a2ea19c2a8780d4d000000b00935044164d90a38b58c4578a5e4bc6d069f106f5a7516aa76ef6bc2f1574849121b4378d511f03a17a7d36d301463095ff57da3e04cb6125c4bb3925ae49607c431a4265656fd6e88fd6a36c846952a05e3737945603b02851943fe489bf28886d87d8ad883c49a969c42c49390687f2313f28a80807860da7ffd4eb65bf30190805f1b1a8bf9bb3c8c0e91375138ed2653b588d17b1fea281a1db8bdf897bab2cbc5da3745d5cbdf29a18d67cbd63c0000021c000000b00d9ce5ab737b6ea927aa6e69dc138f392940bd7409773343f249eda6382cc6cbc3a4a3a711d59e430d161591473b95ec92e6154acd686e66aae53e229d7908d67bef2cbffa29248786b72041ba33f0cc0426038b1ed0f18d60c3c0c27db5dfe3712b60eb18c93bb8dbd148daa2e8a01713b11b3ee79231260789765087f734a0e7de3083a7f617ce8b72abcaf1225ff91bd260b15f53962f3ee7cc5ee8b85f484ff6c759edafaa87e9de9a5463622b90000000b013727b9b40af20d07bc23155587ebe8e9a548bff8130232ee316a22b5537ae392287cc2422853a85facbe013a798264493c75d555336598e049d0e6afb783f08ff0d51d2eb2eb87f35b9ca44c5eb0de045e1c64a95cce0c06197fd7d6a2f3b65ddc64b22f7864d1b4e5d00cf6692edd511fce1585a7c86960a38d0fb0ed8cce1e9b48ebd99af0f41101762b262faa916189c18f4946d744ce9f1e3316ec27e590bf5099aa5cb1197b0bcd2d527ea5daf000000b006ee70703c756f68d9d7da4d18c60387037ca4812f9def0ceed5f9660957b70c166c32b9124104ed6bd5ffc1c7b6071a5da2e5bde41a05990a843275ab94b4a36371ea18158938729766f20efe1380f82c620177f4cac5dda257cea80d04a4231f5089645dc9232ce2a3c5d08ec1047715442ac2389d286536f2b84046f72f1b89c466c38fcf1ee80d77ea9ca44e4d5d2ca17d698a253495de636978244a9b11916a4a31bd4c5efcb78f45abaf372db70000021c000000b021773ddd2fdba67a95d795bed5b2f8632757e39f2df31c7b598d71722f62a28ce7998b844b055308864283ecc7e96a03226a1ce3693098f110cc969a500ac5f3e370149f74d86d3b649681b7728e5788b994c8909df98ec864ca3fa21038c5a69c6adc774db98d04db1d872bcac6dc2e210fde63f49e1a456f91a26b490ebeed0f82568ff2a91dd45010738235c747690b0718530422db090b1afb3a230985aa60906f52444ec961af558b6f636e326a000000b02bdf64b547e00bebece8e68d54c2f43b7984a0312e61652a67eccd638cf354897a8b84fb720a5c9ecff4ba74fd007dd5296e0a25bdcef46b1f6c0b32329e1532a346ca289f5dac3de0d8de24fbc6e7a3667fe8fdf964587683929cbfe08998882f772ffd0ab44a896b302274d579af3c145be963712f5878bb199289a427f9431e09590189bc7f166fb81e3e81099a250769cf6854c1718d012eba0fd7d3b95c7d9ffd177b279573a3300133eba49010000000b01ef772f69664607b67bc35e774523c3a51cc3b74e8faad3ef6948851907b03e86697ee1bef9bd66338f6827fcaa2c49464bbe65370faccd4d15ae9e558e1be8a8778c4e8bdf334e3025faa6e2e9a8be10b42e3619ba68de7e5dd221bfab15aa373fa2c374d63f9821fe0fd4a9adab78c16ad40f8b8a85e7890d651a158b382568d165cc6f016fc92614ed78e08e0807f28b4aa818eee9dcd3b24c073c5ed23d6fd36ebffe92b7a3e235562771265ddb00000021c000000b02bf6837c87e41c2773e6566264ed9792e4e5c8a55700fee81b60546af75bebbd819bc0aad1e269b84839bd240f18567187e5b775fb85ae0f50024994b6a920e52864bd3c7ccbb5dded0999f7d9538b5b49bb430d0d5ea2ba2bb03ee889cc8999f1863f04e707b0d26afbef5348e50844167f7ef611d6057ccb4399a419d11dc7321e03951e10ae764c54f86eb17408db2a3d4b93a55ddb1e91f6d57820ba5964c32c4db132e6183f71279257499288c2000000b029e553045134f4617eb4db95ed0d70b06e1cb30367c5bad207c62bfe50f4c101c8cf7f38d7f01a4aa88a64090d3aaf22d15f3a1c271ad506654b19c6e02951de7da486d36e69ce71de09e63dbe14b3ec0d6eb2fbf1276e06ddd1d18c29480990ae920db200d1b51cdf552ecd1564b286187f6e4727e87f7a24db6a1993edbbab26bf010fdb5e89cbf6c2ca5cb92f25c327cf59791df0fe93e9eac29b50da51dc60943b55a3f187498e86ee502aa697fc000000b02fdd80a505729817f194a87ac71b9093d5d09a912d96637d66646682d889b32e21f5e463203741a88d6cec0baa5fff0e0356f9ece1701e121c3d7c921da35fdb98ee6e6a4d1389b0767d4206f3aa4f0dbd7b8a36a02fcd075c458b99d165eeddeb2ca60885efd08c3e853b02ffc7e7c20d04d0dbdc127b19c867a29390b205fb0d425e345be693b057caa5ba59e468280fb3ba825192640f361a00279a3b7d8f60fa0f3009c5d63f11e79a84b296827d0000021c000000b01fcf3dc75df0cb8c99068e2e136f0854def01f8d975edcd7f3e8283a857cd6093a229da3b4909dcd41b43652323185007450efc5e35e08fd960c7745315dddf992435eb5c6aefcb9f163495d156b07f45f88702c7eed5a3403b735d600d8346f9acb3e9458669375cab4e3a58d281ca417a5e25e3d76574e000cc351c51d6d014a27f62bf857da694c43eb9313d4a3031918a02866245987c7b2b491a355dce00bd155b25b3c2993ebaaaebe42b2e7be000000b00db5fd906333a067b4635d96d34e1e4cf38a1537754c1a297034b3a29b304288b9d96217a19226c4a4bcc3f4921106d26c6bc388cb6998298bc50c06739417a6b9d8a60cd03b3ae2323a8aee8ee84411a86c34a0888db257ae9fa526badd5c1310d36e77600c341a0245881d7f3c860d3049a233fea282bd4ad76ca51dd9b6645dc2f455c889f2e190b896fbc012bb5023df873af129c26655c4fb59112b1ab9d5b61b143400800cf7301a7f460b852e000000b023d59f676d089630a0e4a2f3aa805bfc62bcc088df5e074c0caf440241d5d4bbcf494db02414f237e4d76832f6e531673bfe18321147f10b136c4c13fb5a4a3f1511f0562d733a8180892da69f7f8aab96585eec29d533b5e6c45372ef6fb89fa8f8709c28a75f85761c4451725d2f3b1fad864a0e6ae76680e6f5bf99d1d5c5ceb26c93e1c8c97ca2921a959fd3d9d717ad9da330bc18b3bc01f528a96c889b8d9508509448d91db9a934b0fd3222e20000021c000000b00d61ed602d24f4624429ad57f097409f7b8c306f925811c44e46c638453768bbf4164911174640fd489b284d8a23692923a5bf43e3c6b89f9fcf3a809d8bdd0a1b1fd4695cbbce950857e9afc0e83bb30611f39c6a9be5384f9cc1038a83a29408dfb0983250f4ebd81037648f41551a243dfe3a30291527f4bf10246d8697bb22aab4be83b0e6a2bdac43273e95c44017ce5e0f84c3eaa8bacce0170c4dd96274a5f861634578f8543be54e264d8527000000b0096c98fdee1b420d689fdcfcfaecfcce8dffb1a5f3ef6a37c5d77a8ced40e57fb4de70d931635bd49d561655945ed0524aad2f0522b5f7e3f0bf2cf1c23b6cf19cef8478cb1ae52a1fea161f4b11e6325a741c7bf3c5ac78010977b4e16fce5be0553fddba810917009616e797abd7e8248f6badbad7c7b4979f15466c993b849cd267be8c0ce8cd2972478f6b2246102f2e7b3947aed584bcdba18138e51f3aad8e5e5bf290365799d9890a948c2970000000b00c056280f4ca392e9389a28cde902b155356d4966aebb4cb340bfeb1e76249179fe4f54fff6282d1ed01d929baec734eb2d4f81cf2424fff149e3ac877fc5e1efa87e206654ebba38d2bd036afa4b60d68a4e7261d4bea83ba938f3f22053df17a4855876856cf44cb49091401ab27ed12d4c5cdae7dccb33e5b824bcaa0bc50ff2f0b3b09949e6890ad52f8f5617ebc1146edff5e0e2243cac348b7383e6dc2b5da6b948d77e1574bed396ce64fd7170000021c000000b008d7078b7b7af8b1865cfac9c784d9d2e24ccd141a7d96c90079a90d97aca8cb133f956f33c7c629104f6d9141f32bb1481e37dbfcb409c255038f164ab19a42173fe6fcc69505274c83e5e8cf26b85520e51fd0a99ed37af826066cbc4a810ce081b7c9242bfa5b80f3d7976d32e5740e00e64556c424e839818af5afce0801315e3360da2439a59001b246a5dc40b524dbe3238028f7d3d15428b63a646e5bc1e6e33e4dbccb792cc9619b1eb145db000000b0036f2174a17aecf9ff7dd601397ed3e07e78940417a64ef8605a48f44e80caafe85964f032b791e9d0d8c67a262f692a59e6158ab0e94eb627474a90199a6ea75c8394301d53c17f014f67c5967a50dfcbf2f499b100865e0d896d1b56e435e8f1203bf42e3598c83e8b6398c7199fd116d00f909c3ad0cf7ddc635ee9bd1d394ec005cbd44dd163d6c1180b7bfe70612d9ca62c02ac26744862e5829fc21c60218345e7dc92e2191759b304bc02b2e5000000b0279dfc0cb90755619bd91f0c8812deba8fe6896442175e80503fa3d340c39a25bc5479bec7ccbbc5d3a95826e56283a434b3c206a79b18a7a5dd2e474a25e1f3cd1668e8bf2813fbe02dbbade79d7ecc52de9554dbf8353166aa6667fdebf3f7059831602908594af1c25ba0841a45641e3c6036770d63262491421f43521a514a74641aeb708d27b44c42fa401c2cff0a9d0c8a4ad8942e5627affbb0b7595bf5a187225c441671c4db250ad9269cd500000fa400000168000000b0292520bf4781d53f2c448f7eb6dd4b1b5bf5016eb8fe1b026e31c82c5b1a30e26c0c25a528d6adbb8631fcce7ec7332af174cb0c2f4c523baf8f3dff6e13a19c9058dfb65e5bdd5e4546b6c4d71d82e31c0db99535dd3121f0a484c7d162ee63e1e2c001e68f6e6914d94c050c1cd8ec1d69b1dd8b5014940b173a3656dc005455f15d226d433887f22460e70accd29c2af8014e08f2a1cf38fb31122f85aaaf72fb4fe93d61d7c7e1fac0132f952766000000b0172b9ed3286a8b21a8d08c348c94cff03c975a65e25a771531ebc5743204db7e549e81c55dff16ed3e9bba9f102a61b69b3bcb992d3ce89e25e53d3527458644d886cf857ad4e746a5e677ecdbf94b54f72e74200095cd907f37647ceb1fac1c3af50d34b5be1db60130c5888e58129c108b1c84fb08ccb89f01d8d137d70887cfbce862bc196ba79e4c6b09b455f7e20db609438818e0438f9b48d23cfc55eeeff691b4d79bef01ac550a8dabc8690700000168000000b00d9452ddba1268a4412d573eb3a0e4d68eb2f8a46518d7113968f00eacdc9d90714c0a454486bc5ba166d478e68cf4d487a625628acc822f5b3c2a5b32975bd41faa31c909d4aecf2e13ad09321cfa3cb999b0e15b5bf31c7867e5cf95b94e332dea2c617e534745fbab0d2baa43cdaf1cbd68d166b31f0c7c0b45f8542e2e06ca0b859446285c43661c2d3b661a443b09f62e3d055f0b4183035db1f2da5a094336b8657c21d219651fe25bad9fb811000000b00862fecb3f80edcbc5fe5824dd02987fd44cda5332022c27807fa257b5798adabff31812ef178822fe503fa2456b687881b5ac5455785d7d7b2b3c64cfb380b45dda803d980abf643097cd0b7400bc2a56c646383d2bd7b0c0b6ccd8aa99ffb7084b14f35572fae28394e2dd09b385050fd3522d1e0e3606dc2a1d69852c162d7c7ac6410be6b8f73ccd726a783e1b9801f4b1bef06dfee19e1b40f496f730e41c92b6e881acd14ac5ecc2175dfa85a500000168000000b022e1876563766e62225a97c4ea1b0d933befa948e9bff40a36e8b1b77e654f5cdae6d6f55c3d27adcf7186c4d5fb0dae7a2ee58da5ce6792827944f8a8d728cd198bcfa1257f7d1ad87d7d26a7833df36426df746fe4866fb3dd95f8611b1f8cfa7dc3db23893982bcfd131492308e550c45b0856e04a4a9f77f9d0d940b1f7c03b1d1ac95edf0be8fbadbf69402faa90090c400293b0dc0af9fffa60ea96db3c4fcb7d9a1e8741020b20d7d4687c184000000b02af01fc529d148de4607a78730919ff88d63d8c900dbd4ece11195afe187a4671b27eeb63b75b252ec709b56da7ce018a0c2ebea65bc2d48644a08be4bd01bd456ea35cae30936874361fac1b578503afa63ac2468781bcc043d619f3fdab86027c709db92ac836906d9ab06f58cb07b13ef67dad12eb0c6436bfda295ac87542b9ba813943706101a9c501c853ae56404bab6c2a88a08055f1c376ca38174ff94e6919b4d69e7adbb61a65bc4f8d34500000168000000b008f0e07c2734cfe7b42b56247e89f2ad44272e214e2d7d6cd933363559094dfcc4ce14a43e0e4436d56b36b378d21a00994e0e79f12f896d68cac6a2ea50a8308c2cf0bf1b9ca56bae5db8fd28c81e128bab92c1cba56e3161e9774626189f878516d86c07cfc26d3a17d7d05d40933903f99b0bff3a43fa7bdc0e0bf85bc86032679649e6475ab2dfd43f1d8db95e25298a923e34e15833b7e245d93be31c9c748833499f61971cd256da2c2cbcb15e000000b021f15458b5d0a3bb2126fac1387ef85a0b2dd8abf8cfe2a0971ac942f9c81782fc6b6a083dbe6ab751e760c4ff3b1c1794156eafed4d0d00f7098f9dd77b70f68ad90bc02fd3f34085d323467a5dac7c9a524809d7546072b365de9aa1f2f1b95cd7b872c95528759571c9c6a06299801f79054eff3871ac425b847485c2ff9d460f8e1cf4bac0172dc715610eba486f23994f89428566994602bdadd8d9fc947eef88998609e5529b649ed286e4db3600000168000000b01e8d9a1d8d538f09ba7a3973a1e3bd4a5529c6f5c3fc04302967249c0bd9127ac04acd76f1f48bbae88f10355d7cbd0d7bb8d6d0a9c768af10b36a735f8eba09f25457aa57d986fdbe7eac57281f387006d46cc3c407560036a7bad875b03705dac9dbfdabd92896547f8b42d8423e0520cf7b35cd78bdb7d644dac8159ae55de90016fabf242aa0bf7dc557e1df73641fb3f38429ac58f56c85e46d30c1b03930d1c1400994b3d3eaf6b7bb857579c5000000b002e2b2f34811be3c502b5918b93d1477fe8e4082d8d0fb969117b2f643f222fa86b4bf0d8e739a1e8bde614f1c7692e808703dfc7f10a0f2a0d303d4bfdebf6073f8c98187ac687e5025ca032a023c7edc49bdc77b298bb3026d26aefbe6fcb91f0c8fdcc71418d60be7333758c0a37713e4b2b85ff371208d40f38cfa3d7fd958123b219b71e94ad907c0f0fcab0b52278968de7ace2f37560b3a87dd9aeaa30550f147fdbe781dc3395298291c1e2300000168000000b0194b256f950dea5f893ea6616cf93aa78405deb5cb90bd82548a36dd439c72310496ccbb01cd42bdf6c582f242243315023c02d3ef70d6317b7c59176367d975b94718485d1508e751b9acb3ba995db8ee6ec0d957020b3c067b9635d3112650761bc1fc0eab24df6b7c7f6b510a176b2b0f84805f26e77422b0f0f1c3e3053cd8f1e72692a2273ee7a4773ebd79ade4192e9fd636b01729f4980e1ace62e68fa8037d3d29682715440a38152b120151000000b01e1a40e7795a4aff01ae42bd90f3ba6f3b79b5dc6710330d6ad495861bc649ec38554bf282b9533ec5d55fd1549c5e1d06dc98559a8535dbe8852310369780cb86fe504552ee40abb92dff1ffd796ec752de29bcea4133386f94162395d839208b1da16821ae7221e148ff407f0af0320e173a6b9dd018825379e592582f684d65eef7ba7246f63fa113e7618eb0e47427544d6fe4aecf52a23e583db9e5c84dc3fe64080216049b8681154f0cf0da0f00000168000000b01997931193ab71769124a130edd32a0ff5181055dc47c92b6116c3bc28d0c3b5f9c591431c2ebed4b9ec76d2b130612d7cfd5c457b10a028ef217c374c409d9a98d19879f20b1787c01869d3c10e9dd0c7332d96514d21ef9b439acc0aaf3fcf523f8b44a1477257f6839a27a07c20db25b0eb6066f565cff5c342f22f8ac0d8fafccdad811679abff740dd7958f5f0707b1c25eeb285618b9ec3f3f075229e62fdee70b6aab8c7a6bec350501c4cd27000000b02df0ceea8fd8882e51e9e8d6cd25d4bd8408589b2171e7f3a1707b79482a17b9715e0aa693b7bf73ef078ad21533459bd829868c7b49793218a4bd60a7be6eebb82a7e296ac60e294f846b4004ce968eae446f0eb4c935e284f0dc2e9734b8d91d088cb4b83a1fe79fe319a63653523715f78e916e2f9b1d6027a1b9861af1f374ccc956fd1379298ea5d5cf268c21980e17f251ba18723fd8a52df978f6b6a59ecdf332e658698cb974a71b8f5136d800000168000000b011e85cdda28a6889dca63319aa3b5ef5053a5925a53e763452bc4e5146c134be37ec443f9c8de8252a28577797bbe7e5890addeb6cbffde416c608e5a5cc6b8562ce654ea4d99ba028ff4e9c0833928eccff5e45ec2007e333266d8a49decb34e03efa8d6668d26ade25050791ea5ab11619e0f644863256f8c0199d8dcde76686ca3eb756a2d2eddbde6688efc257690d3d6d3a8ce70e56a4a6a69861181ab710141a6189176c65cbd42da56de04073000000b02e83766229803608d8ed0d22827e5a975259d9616b8daa3cd5eb33ec3dd82ff4465e78cb0e68efbe9d87becc54d3c6b08610e3b583875e2fb9acaf99ed37f664194a161d5efbb0ff48f6d27157323c2f744215eff1f96299c60a2c0ff533b39ca4a26ad6d673bf3a6a4fd06f54cc1a9928d19bf768ccfd02bc0617a4187f8fe23f5d01403378dd0240a8239288d132df2f0699e7361745ba3f1bde6419c87937f63d1ec7c0a20ad46dc5c27ef165093a00000168000000b0047b3d0a755fc36dee8980c418179d44b55cacd034673f580d6cd2d20e8e040de4d989f654ee48a171a2a09d7f8f29877c6cc0bde075672f7d3e2674b7dcd755a90b6cea3fc64d25aa221c905818ea797805f3cdd01c4118ecb5bc1434d59a53452d065752dc1feda781664911f37a8220c5b550379c7a399847e16f4e7b1c297e82928750e082342e42bbb32ab173ad2637bd661ce99362ac3862501928dc346fb3bf96497a4039286aee19fa4898e9000000b0126b97f8e34f885bea83db59c78b9698bcdaa406f20fceca80509f301b05a26bc6b00d4035b4db0dc38d54b9e94c79482b8cefd85baa50fe21e7f45a56ec487a986d19b1bc6796bddfd99af6d6be9fb60d1b3a642e650eaa66b27e0893a42341e0ddcdc296cfcb0230da18090263a0941319831680c06d6a02d786e1bf025a9bbd1208881022c324c8dc3d6854e0ed48104e7e94e90e72c75f5fba98496090b4275632a00832c62fe8b2fedb7be4f78b00000168000000b003c8da2537577d7b1244d7191b74afdb8bcbb49d09a67298527b7273da1d2bc273c2a6183906fb8cc522c8278d4370d3b9a22d03eca49a40bf9f3845e5f93bb73065c73b9b82621e2f5a7546bc10c35d6a68ac4dcff07889ca21357313f2884de4dfdb5d35c5b4fb9f401f33fb11e68d298f6f284bdfe17aa1ad7aff3420a0671073b9803c8c4a48c1c95b74060390eb2f3b7b26d90b0546168f57a10065b596c93ff4ac4571623712509ef84643d5e7000000b02f10cd1f3968676f5977440828421de349a47f9de357d6ff312feab6a2aeba14513f92d80d430baf88565a860eb5c8d441e7a45f8271aac574b68bab994db9585478c8dd06a8ea0b0d17cdb028dd816f4eaeadd07bccab3140e31e1e749dbeb290cc10adc1a5d45b5da954139344ac97084b4f87afb3a5687612d5b79a76560f8a7b6cad29915a166da264b2b7aa310d1de7b0d4f592a1eb4c97e86a98824b31313d7c12ca61153786fd4728e660ddc500000168000000b02c27679c4e9ef6b17595d9d19a9b980a39f7543ae1d7b7dfe7f25e751ddb670b878bfa691482917d1dd6822859e162bb42d652bb9a7a0ecec91f8fb3a6010b794e3f4c5d1c95d5797ab415969fc7fb7a0b0535195ea01ae7dcbed01fdfd11b4099fdac3aa819fdfb3dd6f76c29b859980a3059a299540a94eda85b46ab5958e76e6db7f77ec33b9ccb253738bb64262e07163b400834a0ca0ecfd2e7e1d3394041c6fa270e1dccc2378e920bf756c0d9000000b0001e55cdeceb86ce6fc811892a6d6892bfb0ba49a120725b5c32936517641586347a94f9aef1de6c1ae604627b8d8135bee22868b7ae1a41f8a0709184aa11ba0093ba204ad266b2ff563ec5a55367266cbfe029fc2a47fe064ba58d1c3311bf50fe04939d3962b75fd83ac3cf9826ab1b1dcb1bfd6444eb4172455fa6770593cd21860bede8cc920066cf48fcda1e7d075820dda613e744a88d043d2ee74efd767621c780781d89df1696f1deb24125003800000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f73700000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f60200000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c11000000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d9000011000000021c000000b00c89407a778b90b87e5648889fa571d1051f5040a5aafbb4f306707424be6b20e51cd246cfbdd1d1b03c039236b50d74e55df7447497faaa38f7fca4b8f0daea9f91f99b48c5f4b7d89a3af0d04c22e6d72b0dcf6039d63735b8fa17fbf2c361c90651b5f09f521c9a56217970576ad112681ad0a92291e32b3a3c0687344b9b90265888f73399763303f6a616f74a75010c7cfd3b202dfd0f55ef707961c777efe70ef61eabe6459307c13e204e8d92000000b01defcce7a31cc3040d44467269f0550a30ef9fedb918fcf91d2894ca0f876fcc1c83f99890790ffdf6d733deb59870313f12565219560a75caad16e001f9efff60f27507961ed56bd05184a0a672913b41303f6107853b33b33440d3ede83e7bf96944fe6f39f7e93d8d84773294c6a81825e68f0fd5b95a1dac01d094f86bc3ad403b256c8ef94a08bfb1f59535b4270ccf8469d08b17ef3ef917ef79a8ac5f799b646a1788e81e865e890bd5b0d7ce000000b01649c0fb542e3137a8c5ea4a408298a450f6ec4c1445f64179d6bfb3f4bb7ee37b6cd71ffca7370ec11c8ed9a84694277735ce1d3a89fed494bded44d2040fd6374352dfed3aa07e797accdd603370791e78323f660d6eedea8c4d1bb650c850d6f3502172f494a364e0b2e7972412f603169c8975b18cec76b68680bab2594328c6c03e6263ef39de07090b58b6fc8e2899c4181e973b87a142af3d3ae11997fb679ce415f222ae5855772c855b03b10000021c000000b030192e5b75bc105d11e5f4b818336686fe2b8ccad6b1f1bc39d2f49cef7f7070072240b6b82a8e91085bc94c207318210ae4ea1f673d31e5b8053f8b56660a9c752389251518ed62a9db2a8fba0aa0ccc2a08b85311f815a9c400c1ef3ba9a933e0d3296d99de0fd1617efec959d46f30000a7204c50a1b1b0635ce15c7e5b00d8e1cc8546e9d5400957eb4ca7f20a762696d80fc51eb4d73b3f4735b20d87aeaea81cb4f9ebc5079b7048b3f9aaaa2d000000b0242c5e3ff44a56a352941c284e1ed7c0ad991fe91b9f84e25f3e2137b19e28460fea7e907063766e829f0d36186830b7cb4ca0cf82e401859d83ee91b61211239552bfc74cb5da7a43e43b0335469104feabb178f5d19b48f8c560c87b0810919222e5da071e5ca9776352ee036b42cf26a9a7fcb5405cddedbafbbbb282a738faa4b6fb0117dca17e4c7d40add0c4ea27a4bb803d7b7e273345165eebd9c2ea5539e03b37c03573e26b8ee6290fa490000000b0116e41c079a55d8d3a9b451ad4d0bd108a4236339837e7501da0780aefec6c942e9410eb9f0a915417f7053d27fec963fea30b09a88064b3e36b13c7e8ea9ef1286ebb3586a05e61fe5ab60c5d517a74d2c559d80a050f204a54cadd2c7a9d02aa2c42473c26c9c5dc5a2b852111c9630087a01148b559d0524dd4030de70b1d2aa73f09594eb7d60e2b487dac1720f72aaf4f96c8a3e7d0a68ce0011601854eb3bbee8802b36e88cf1827e3bd99ed160000021c000000b01ea79d537f687013150cfbae0d71f08bb725269fb2b5c8132afbe2aa775696b3fa90cb402c1975962f409b0c67007fbd173f0ff140ebe2889eee84edcc6a518124dbbd5a40fcb49e10327039c20a1e9a903e5cbce16af3f4d130ce326df8be55013bd4e7a889fa83421b6ac9ecba5b492fe26ef41bd61023417bcebc269e2d563ea87224d0e4b04cf6a55f8714e5f9e7062123510bfe773bb17e69e47531201b2e0ee3f18052ee9081d9ce170f7c2cfe000000b015870ab35631211fb0f4b2d3c96c341b3fabf594dc7c4ab4171ec52e07fe1d98a8af9f54d8f50d9cd921806a0f96d04d7c972100ae97c351872fda75d436d35bac84dc3a76d32ddc9d37b176547f080528673fa04e74b56076e8e45fbb5b548aa05fe4635d03433b92023bd38744e62d2e0135476878559ac73a0f62652418749538d6d60ef952ad527ccc6e497e0d7d2083113fad979f8311bf5a98f80a55d64f16282d2376eb546b77e0a215bb623e000000b001a408ab0b8dadaa40d9c094e8109002ea04fd9d13499141baa53c38f7930ede74d972b4290410e6779e6444f18dfb6e107bd7db812c40acd22892c6690395a4050b933aa73bf5dac4f9eeaed69d82472c8ce6349e2f36c2699874c6efdedfefb6a484f3e846d60d01b2a6da41a788e61cd2cb5b7ed72fc362234fc3a81f2fb586fb38578aac583546746e063af13be621982766fc6748dde89bdd53c28cf646ca0c47b4363ecbf6c94c1dbb0b318afc0000021c000000b00f1c4d691f4c42f2192d0a38895bc49e2e78c63c4d00c5de34c2c1c21bfe90f766ef92b4ca2a149b6cf408daec2a5795d10f34280530c33dad774d2b7cec16e520694f09acf9264a44ccc78d1f8bca0f1580bf0c11e415ca9380377982d07182f0aebf5487d093df0fa49eafc923d1ad2270fb59e55eb312aca42a9fb9314e160b27e571e413726904ada346f01a4c702b6ce48c77117cd0a409c0d4e2e4ce87d83ba936548bf02ac6c60df8e64fb10d000000b0262e283709c3045c9f97e42b262f346a613de326b97ed7ac4243c1db66c3b3308dca164cd92ed5be73b615864755a3df1e645967ed438ef86099b972ae83727d03b68b3663564c38da6f6cc11ee3810b4df67d16491668ed90d875cb465d66e4b18b900750bff3f56a02646d8730d1882ea423faa71146270c348b6345cc96b05d2c825543a647995edf7d7651c1252918bc195a5fcd0cc33751963a98eea5f52c87fcecc1e51b29328eead44ed04efc000000b013189dcca944e8e1948cf08e707bcabf92eb5a9763f240c3b92f6ca6a095a5c845b795c2b6ee06b90fd20002f92f8631fc98c42439f35c27c64510a5e7e66a35b4ed57d68d33a9aca56fa4be0764b726e3b4a3f411b348a28250f2aac0e1bfc772bc80f2b94a4bcc578f1bd81ac3f2eb0ecb04fd2e52c77426815edcb6e8878d76ac0b6c97bd59d5d516859327ca9280029008f24202a2e2598877bea482b627a2488ba0a4320a08274a7610e82d179f0000021c000000b01da9dc0728baf4492c12be23409f5a195d041a3f3aa735649b7522a3afacb7d84aae422d0ed482a81216097778cb0d31a171020d309ac53b2dc1a339b309a57a80687cf06817c447cbc641b07cb315a792754439b6d5d66b777a745a7d2b75a6cfd9fb3e8f386c56b1c4f979f69227b617ea038c369510bb3d4015ae7d4cf5cb2b55e6c75784333da9e1bfb338dbf6d60fee3fb2d4b9bba6002a31ada490589b698d6e56e44ecdc6ff6913957b8512d6000000b0293958e03bda0dd9a05ad012aeffc3efb7520c8ee7ffe6737e6ed313015f4f84209c9f3ded38b88fc7a30f0cb732ef0656af6b305733fd305604eec6aa37ac257958592d6a8182677dc20d97db0fcbe03edb6947684fdbc7274f397f612fdfa86e3bdb7a380cc8ba4fe720461684a248009ee11343782a953054773a9fec263b84453231ae0ac30e7049045845f59fb5221b99dc8f42a8d1fb0c2393b97ab3d86896afdd22da2c3b46007254b0f21867000000b02a98af33bb9e3c6c8a62d9ec544685ac08a7268eec47f11cccf64dbda2f9652a5c7753dd3e8dc1ffde8903e95edf69b969adcbbd1a87876bc6a8988c173cb6f332af2b05d60a1a65526973df6b60258a2477cc73cd3b30481922a8166fb2d39e284a3529cbc607aa384d90395ad8d43f1b2dbff9bd6a1308770d26644eebfc8d895e309d4360ab63d8452d4459608872075851f715518e21c0593f4294d9eb5ad5f2761a9951e620d3d3f565e80e000e0000021c000000b011e175da6293aa9bb297d435c794ac4c1815bd83f6e61c6bb0856c162f5f28bbc3274cb745967bb3cc3ddaec596955445009e403fb28c372b108da9d855238f147e41d8990dab40dfea595c95cc84c84ac598a8bc3608bf246aff5968f1219e384bed767fce07272817ce91257d2f3f20da780cf6b5f2a7c5a629f920543a996c7e493498ff561def2091631b0c4225802dfd96709a51c36759f7df7834462e4de8bb58558982ad8f88e1641c7ec0b19000000b00c1c740987397ae3b58699ddc77c6dfafc1dcf72564320cc23f58f9881d85f6b874a9519cbe52f2aedaed07f7b6d55b2f69c18f8de93c05d764417d672887d0ad215c937a4dfce1da027d8d3c61708caed8188bad2ce692a6c753cc4b0f36fb63722f9f6e336fe799d9526ab858951cd0cdd5ce4218fae86ffd5f4078ebd1b0e967769a37849d38feeec8e849a56968f22a3e1ce09476d39149a1a8deada21d46fbd056c010c2b3a26624c276246f1ee000000b00588329b044897117fc0067144253b2736b7a0da6fab20b6d603d01f9b8a3dfadfe66def044ef94dcb2b6efc0008a6b1f452f40544d9373ca445dc6b662547c5e9cf0edd4923474f8bfcd7126c0f36a1ae547e337afc0b2695496b3233e41afce3652a7410f1d06f695790fab0a28f592f422fb5766197fb4c2c50a585f19e30cc2c8b7482b15e47196f3593a34ec3bb0eab70f03135f5fb5550d7ed6cc07185a3371b90eca916217a87c3df6a16b0e80000021c000000b012fd87c3af79c69aee6c984a3c7581897e409d0d5191afeb25a06dbc95ed3857c0d69fc48146df26978817b974c9ff4592876b5732b75484b616b659326b10a30684b51176f3569e307be9e9b3a8778a0854b567919d40483a210c8117d7d90113b70ff40cf6828c7630d9081c93224a17d62c62755000687339a0021ad795224ddd97e07632ab09be6d1eec88d5a9211ff2f9f2737019a3f29e2c7d63707d70394d508ae146441596e2a9789d363652000000b008e0090031f731c347a570f5a0821134b821a108141ad7465781788f16c92bb5776c2b36011a6ec32b2585d9f50a3787c12485bc34ef090b07f0fc3a5144fb3ab0a19636847a9b80866d8b251bb1b6ed4a6d66498c2f43a87e6a5915c4338bc537d5e6b3007acf5924aa0745a4ae61ef1e6aca7cda03b9c14b82d0e8129563b78522bce26f2e2a1d57ae42ca5a6c77c0060fd26586b65a246d8259eb743cb940f8ae6a0d03f70d2652bdfa9ab27151ea000000b016db4a9f6f4ee45fe424897029ae5a7084edfc3db3a03868cb7cf4dab9e4b80688127e9d7976d100648d596fd3e507d428fc1d458e8a4bec83a6b31e113ddbac145e352f13b9f87d3f2ad32fb690b8455e5a26d54526872ef4fee7d11a6e21b16d0314e1fff60d0364a51d04038b0e251f9a1ea8daf5224cea723fd426d945034cdeb4acee33c72ccadd4a58c4ea8087075b2c22daca54d20c2817c9b07721de733c26671da0ed0edfbe91f35f9186390000021c000000b024530d4ae23aee8f13a622629e72e9607258909c2e69d7e76a7aec04ec5ef6f49da1cbb3bda63ed7b343309be55a1152c48078b90d50a728e15ee35a690765b79d17d15c7a74599f5126eb213195787500f480abcceafbd89960b797a6793d1ae07fc2dacce2925f915af309171f6bb52144a90571bbc7089ab8cf44ed2f7f8a6639cd4f5d9f5f005bbfcab704100cc1142530130b6e736f1a8e79c32e66d40875563e2f04a5d9b12dafe052b6b9d7ca000000b01ff647ab5b3553128251df693d05c6fcd94dfc1e91951232e768e8e00b41496761710b635e9e5a8d4a252a79da52b3ffc8cdfddb1e348482e7300da8a78d8493f7475dc552962340e1a14b418cb17c8d09e242fcbf136796ee63740a43ba83e291757da7f2df381f01217a8f04bbe507135415f931017bf980b718b9f8a1f60a75e6343f0e72e4e868a2c50ffda1d7d22d02ab41933aca301cc84cca8778a6c42ee859b63ff5b6132910362b97a5c802000000b01e66163a2755e66f81bb8704bc5c0a8fabb69cb51bbfd37917a51b0d84fc9f7c8a4365cdaa13f59767d3288c2fdd1d0d91d8551c79e985ffdbf4086e2e0c58aab6cbd5202d38da073d9545b3b15ec474a38eaf0545dc76a899857c3d531cd621336889abc51e8acf7db5039f84ba060911052e50aa8046c281ac26e9f15cc73f773dce0b965b5547fc182cd8cadec5fd0d2b79bc1b197497f6ce33809077c2e1341dbd99f8375ae17ffe13ef5fdbcf9600000fa400000168000000b01b9df8582a022288f5f5612576d049c0b1f6ae21b0b971029f2da85b9f82b73f3e7ed4a6fc2f13a7ed05cdc72e000cc28cb2986eeb7a6cf3cfbb221a1f337da7f6c672d58d7d8450861577bc993d96318c968d4a86b5e31eab13734790586e1b310627a33e2eb31a12b3bb192483c2951cbb9bce4f32b25b6cc3f10f6cab29dfe30ce1b50e6d77a02df200a63a0c5220024a7423683f9cbc9b3bb6cb8c8c3fdaccac7f6e7cb9fd371a2c1b9f9587b0f3000000b00cf85538d742b983a6205663e75d9c6572c0e533d6b4f855c24a8b1911e06614fb96ce0bffdb124b20231f450a3fc31f33c74645be402ad925e78942147498ab85fe5387d95390ab74325cecd76d50c65234325f5e377c277bdad3a02f39d92ed504e7c41992cf0f44e756e8a526f40a303d29a4b6113cd1b1bcb69541101ab9ef943e6935e0cfc5d60b31c4a34580592eeab3935b70bdb78179b78d4661429e201e9185f92052799472467213f4477100000168000000b00362f8be4348da15557ff22698c9ae1dfbbaa933d8f0118201912d5bef08b2467d5f60cfee5ac67d26ce39b4a919d959f9c9fd468048b4dc02178c223ce40f2bb9f7620d1ab613bd82e263f3324c7a43578faf16cfd04c6c25949db1f07cdc146a588ff69ef175f64fda88efe30ba52815d3eb3cb8ceff54d6780160e7ea54efc75b726d798f2c6a626c14354f6af97e1e045435f7915db1df9d4c395ebc43fa045e1d4b0534d6b10c0e96278eaac19b000000b00594fa962448a3bc7dceea43e6fecb8c87a8fdf91d4f83aac2cc2ef2104addef45c1bf192ae9529ccc04d08221aa31332cd8087fc802f628349ab8061c5abec65301345ab18ce7b1799dde9732adfc0945fef5abecb8b0e8ce15998455eb94ee04c5f0a04bc4bf73f7b3689b29745b7a0c8f33a0d0b3ecfceb53b5ea9719608b4f9fe73e22d4836f198c86a8740cf82e117bfd326b1ede0cf26e2bfa36fc2df55fdac8040b736789df72eb54221186dd00000168000000b01d0996ae53cdbc021043f5332bbf80331f8053cdf0244ae3d6dd4bc4f6de2c78055a68cd6d4ac5986b1bb60a59ac6f7c1db8bc73c556ac68dec286c8a35ec73821dfc7702b339db66fc1391a9e9f675503f630d6bd668f4b853621a816829176a5f00aef79d2d3b5b07b45daf1d9a86324243d505371d5b814e7aed23f68555986fdf0e8bb6ce9e79a43eb1e1647f3e413d67e1c2274dca01d0b0a4c7cddf09d75ab0d47d0a3325681d1f03df424ba1e000000b02935d908f567b7759359f66409dbadbed0d1089effe3d95a56ab63b1c22b4e672e94a10910417db927bae9bdcad3470b8a8b6e32ac24c110adba8cce9a3f4277426d2f816cdcf81e120b3d56d29597450c10054e3f2af395587a250cf00f7f9f46c82302cd628b4ce7bfc7b8232452091fd2d0be2dc0facd6ab34c57f8af729e79603f16003fb155cea9cc1ac9425d6e2dc9363f9d6e15321e29d76881d7640f17772c1ce1e8f152480ce6629b89badc00000168000000b01bbf946c7690763bf67ab8dabb68db6e7488fa4f53908350157feca354336ff9c7fc30c85e5203353c1eaecf104dc42cd01f7b321dada955ec13bcaccceae6cc97d886919ee1f44b6ad1fb5ce50023e0cacf253e868dce7b47326d7556ce99f453e9d249a08d115bf52b73b273115b572b67fb5b03d5f05337b87356000c69498a9aaef1551fae6e3f3a77e55d547c581dd599bad68dde61f7f5b2f9fb9bbb9791f48ac7d18d0d5f8cd7f67f9a0c607c000000b02a756690a7e6660712a100fae90f32e28b645f70f1b8c439e76837a73b07767ff000a1711532cdcdd12851eb4a66db81c93ddef60b717a148c176d040a7ca8d9c5c0fe3a435144e883016d58165497a2c523616b47d77909efbed55765190628be51fbb7808147a408f78bf69bf5446c2edc29e8a09c9c534cc621fe5ad93ea7954eab8a93e5bddda7c9e328137eb89d2800c078f7a719296fdb5042f641adeaeea0050525bf31376207f04dff69c20600000168000000b01753ee7a5cd7894f76cc4ccd81fa81946fa03d60b832b9ae5928409bcf1be2f2bfe8784bb7e72c7ce59a4fae24c1ac1172f6854e83dcd37077590f76dff208e21253c79ec94de4b139f8f25b231f3734b06d698d8853a2b5aff264185e9063e65dca515aec08ab170ace55dd165cdd7f07d874dbfdc2f7bd11ace2892dceb7ccffb284d752006ba05c6df57b157e82eb0c92956e82a956c26901efe3bc750727f24f167f584eb2feddb3ac785f0855c6000000b003103239b2f52287a1bc26457e0f304469beb7b328b62f6c09048b80d8139f43634b59e50924881c4f38aef3082c520505a2355483ac256b6f47f62dae3c044e40a0fd7914b27754219164104a4a431f2d689ba47657d8489d2d534f4afcd27cf9a7b1cc5b0cf4ed17eb0a5d9c2334a60522a1aa57d074ad133ef3b3bb5d6fd7fac831577edfe9bed2bb17a0590bc2d925724f46f8a73ca47ac3183725d297bf167a4590a402d853265f47caff62c02000000168000000b000dd75b6491051f8935bfcd680513cd6ca18d95dc6c30f0d45dbea8ec91d5b0a719816b8dded157c39bdad95fa032f0a2fea74258c60198bf3343c17976c6e94186bc12e29851c4ffeadb1fad6695390d271b1bf33e414974edc25115aaef98b3c933f3d0506adb72ffd4b2b853aeec8123719b96aa103abb947130b19ad4edab2857fead220eabdbf2a0bfd0d9edde0095733d00de26130b8807f29c49e406c5ca9184a48c29f0d3e231bdfe52b1095000000b006695840420eb5ddf2629ba523721467facef0e6f381d4f614442b2545f7bad2c075532d87bcf9c9916d82b395198d7851771a82571cf877f89a1c68620dfef720531f456303b8761567f0dbc59f0e1d92fced163fb459a742551c6cbd255af8c82a35415818f87ca8e9cb0d52b181ff0db732ce4a8bf7eb1364c2da8bb2c6a4ad22d8a939559e21e4dfb8f6294f58081b21393a87bfb0f080cbf81656cce77db7292249d80fb58838318e5587cb041300000168000000b0148de884263e33bde74d5404cc8475b2f035968ef21c72b4a01b8a543b0993a3eed18a0ff80c9d9be15c898932efe6af2161dd1a1d4a43d316925eb89dc4fbcac4071d81a455ab7358555e88a1f559853e4e4973e221ba36c9a09f9a47c4ccad55011f26d02128c5c6782a2201e5f7831bf219a1bcf7b1bbef1225e3888b23d7cd93cee4d69d3ad600a2c03129fe4d1207795b2498b5a2598864b573c52bc4d3ef9e5e1b1184b6a7838f35be61308d3b000000b00853bd6771dd1579d499a595be86a447bd9a76581dc7261a19b9c2fbf5341578be1428be3c45a211221dadb1c3882e2adf133e9cd6c319dc3d948affcaea75f6ba9af80a1c127f1c8fe3d68f697f1999b28e7d164e39a358ed6baaee067dff1c7c2ca6fc608655c9fc73ef56278d8efc25e7e9993a246395dd2de5cb458d0ccdd47f54025c4e29ee521aa8ab0cc7e60628329e1038c8b52d3c49a99148bf9a9db8ceddb7c2899834ad1aa5630b66027100000168000000b00f646cc5971c8f246cb4d5b9fb3156dd8d6261aef6860eb87240a7264d7c9e0aea30b543dab272c1bba8bb3e777ba26fadf584ac8a4630fe74693c15be2550185b54227892607d82553bc204fb44efe2850761b3ef80eb52bd08d62493a060432579c282ca285db329f8e748a77f56b90953b22f77cca03e9cbc6cc74b4c4bf99b19871bd188689fdd91b4d66d2bb9ff1131d15acc0c19e3be21aadce7e9016cf98811e18676d28d3cc5f924fddd383a000000b009092ece082b69133ba214df83655988c33be9f21d3c73d63e67c2cfaa34a871feaf3c93de30d360c6f1832437a3634dd9097ee3e1ea4200d39f5507e7bf37cdb979fcf0b86bc87ec73d34f9b3199ab1630aedbbcf806119953bc0e255757c2361be4c82806f2a1fcafdc093779e023a22849cd331c9ab9d7eff5bceaa17318dbababb01b8c52d783b99e4955a5d175a1f1c5bf9f2848499567950b2943c4e2a50c70ce6cebe04f2c3f679eed2af93d500000168000000b013386424c42b06faccedb1f985f1d18e0b063b397baa031221778ec55fea5d2842e84ee2e94cfa286773e10c9864327fb406f5237f9dd890e8ec6f46766bc312f64ebc29a6d70fa105dacc9575ae3e1ffb440b5e0b776b0ab000dd4e85efc7032e753806d65e74a5a267b14194f922f91e17798a352fbb5dbdf42a38f94f1a2aa6fafe33a56c573a55f3ab112523c8200a8c4425adf11b20ada5fc6e6c298a29703a81f69c836c2b86bcbe455fb3c567000000b01e6e0d2cf8d238b4013918d283e17257826b46a17df141e24f4b2b78a1b08d23dc785242a0074d5f4d317106e4a98a3524e0e48d7febae1f147409b1177e82cfc37dccdcc434512d3c4b6cf6be3a1a54b67587d0478ef6cf4423878464d4a0e33c85e1098588b24d645a0eb19dec8e49208ef4a81af41618ba319d7538fef2d8e5030ab012020beb2db1d6e8af60520409c87425ae226705f606c17dc36b8f455eeb3aa55d83376a177c2fefe7a691e100000168000000b02d33b0a574089ba846ef9b29652fbd89572b401286e47a196f42f2c59a72af345f820525a0f390959b894b7902ec9b3307391ecebc8f44c2ea95b564071ca9b2168964e235968e88c0fab913205d3eb0e99df4d6ad07d57374dcd759cffba08f0f9e80a544dd90ef3f78e90a4ec2db822af75219c5c77d9abfa1f4cd4ba1d539644036f0c0ce0b3e222e5bcbbbdd57f42b011ab0b05e070f65d8462226aceee775418e8a43706d65f6e2546cbb799817000000b0104c05c488b901e9e516db7628e6d255a41d021c33713eabf78dc207b004cfd4f4dc9cca5239608cfa6204d14664631ec4a03a4f56504fe3905275a99c8169a8152931ea6c0f17f4597e128efaacecebc156d6939edc07359811366863a0d2e348cd1ff96908d54f7c00dadfef30f2ba13679a3d2820117b827ad36c4aa5166739664d0c882bc4f754634109a50ccbe01f6cd7825b29697e2b8df7738a163c3ef9c91bf1b63c4cfb8b562892fbe5bcc700000168000000b02982c72e441c4042fa61d0133f192a52c0533a1838c4d1b8112b9161e6c78c46f8bdc3a89707b1d1ea733a8fd98443610648f63aa90bf8f3b9e2f7b486b479609e37972d0980641ff0fd998bb893204fd8cd6c0331cdb425c0f39cc7db8af23ac058e7f5b6994407237592be10702d20202204d083144509d03ad822d0456863beb964cf0ef4aa9e035887e73912334f0d33bee8566c3e42b5fa0eeb4a415a3ce7ec91ff68c2798d179b23999e3949eb000000b01e7aeea8d98f40f8287135344071c9cf65f26d7d5a4b166f8d0376c67a03bae535f5006ae64575ca1f3d648b3899b47390449e55c465d9c8f295d377725c727cce10ff1feba4682eaacada187883051719a185565c8bbbb8ba4a5f3fb166d467d98ac14bbe4ef27149fc5c762e77d3ca1cbbd5824f8c64602b4b61df5658f8aa5e636b2963ba142392977939dbf8c0de01d6d0511cd1d3c1d92827fc645178588d3288bb2894a09285d70212eb35705100380000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f00000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000000000231000000000000000000000000000000000000000000000000000000000000023200000000000000000000000000000000000000000000000000000000000002330000000000000000000000000000000000000000000000000000000000000234000000000000000000000000000000000000000000000000000000000000023500000000000000000000000000000000000000000000000000000000000002360000000000000000000000000000000000000000000000000000000000000237370000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f00000000000000000000000000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000331000000000000000000000000000000000000000000000000000000000000033200000000000000000000000000000000000000000000000000000000000003330000000000000000000000000000000000000000000000000000000000000334000000000000000000000000000000000000000000000000000000000000033500000000000000000000000000000000000000000000000000000000000003360200000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f0000000000000000000000000000000000000000000000000000000000000619000011000000021c000000b01d5d78bc81fa611001cb6b8fdae34e643f2c0aeb3dc903824c650b7d30c5f30ee29ac7152718a92d630f59f9f1bc535170acfc8a0f4e8458c9606eba1df158d8aeecdf01d3b276ade863d279867c21c7ca1107eaed8ad9fd205c75e0ae8e227cb8cd6c2109df073479c9625af63eb1922ff9f469eac7dfe00c2b6453138b86cc8d610f29098cdae6d3d9cf02264d9aaa0f68c5222e40323d2f14ccf3a239dfaf5de240812b33cb80bde5e10c27fc3b57000000b00eb52dd8e10bb0e741613fa7ef4f6b70db1801a40e81f7cb6d32cf18c48e911d0c52c0fcefc23525f1ae04aeab5a08f68012a3e994f042a2a627bbe7b73d4ef3163c3b29b603f2e01d12b41abb1236f884495dada201f178a56ba1ecc80e68f6bf369f9fbff5fd8b984af328023ce4002e403403c9e4424441716bf5f80cf200fea87cdd551244d01599084a2c91e10810c7ba68523a9e67d9fb2409bf03e63b71a5f0ddea9f553ce997e679e10d2210000000b02560f23011da264d2204f45315574b9daf7d4f11c07845ebbf569fa93dc164d68bd293015f8fc7552dc158d319bdaaff32b391fea9ebc8deba4acc84ed87b7f4beb13fb878edda83d34575691c0d5ac88d30457026545fbc15b98de826751e6794c8d39d90a0d04761eb8938b20d75ad0e7fcbeea0eb8e96c8f746e6d0bac0d2cce7a3ea8903850abe81574219e6e19315dd9cd5780d5701f3917dd5e3989bc193c7909c3c3ad97382f42e6af9dadfae0000021c000000b017048eeecca50ffb16d8e3f8285d338ac89e17063109cb38f57000809684d3021d356f222f0764fb714acf38a3deb2142c6cf9f9de7476afc1d8e4e956ecca54b3ebeb7c33bf55c9408100bbd0ba4004459c4f3e3998eef6d2b0b826312409bdffda8e8fc5122e928ce578be2197fcf804208306181426768ebbd637edfae4704efbe485443fca4b6c14922c5d9e9c0b2f77d353b76e46ee53f416bf7e3a682999ed01ffabf7753dfe7283e71fb7e85e000000b02e0657974a680547dfd3c10f1265454910d4ed175aee39a308a40051f3d988a607b8a8dc21a8bfd34036bbb06f8324c3e938a5f0649654749d0c61ddf30a4fb8708a10bae59d60828efa75e424219b5394940f6afcb6b916861e7c27dcbdc5281f172027ddf69775329a5a95cd46d48a00223292cadab63ffff320e0d0ce82aefb31f062892d15fdf0953546d364639b12fa458f9b60ed0a0d39a4fdbe6e2860b7f62925637bef497f141602c9d270d7000000b00c95567e2e6094fc3037ccc632eb4e0f69b0ec9add86535b8975cb4592babb2524ee598e5b4565e01970a95c927671bb09fa7a6c8dc5fba18bf9391c3b14e76adc17bf6c57c18dd8f42c5a5c6b894b222bc4e273e359029763b42aad8cdf5162f5614478ececf308adda3e27912edcba1521a52b1b61d042edd44b7708865870c151fd2e98ba40768875bb261b06f9aa0289e61634d7c2591188d43c834026f3eea9f591515c40fdb85e22c54ffb31f00000021c000000b02b32adae3f90e17a53312e259b5debec02bf85d710a415fabca8fa12a1043be8799835971c32aaba44a20964709b4a2c95f73ed24032992899c2b85a61d16aab542ad3a5198178205b6569ba4fd147a898b9049c1b211c9d6ef20ae300354b18b909395562a8d0f16b81e278d9b020181700d26c70f9d082713bc36024dbc3cc50a77070df6d70a7430981e90c6c872f04917fab37a1eddf4ccd75b775d96e673f1ed6b2ea1e28d783925d4824eb6598000000b02e2df3d39950c87b85ae8e8cd2bf4823cfdbf852220ef78741497859e0ec18567944671984f448a83a7cc93eb14e59daf5baa359889699c2597e8b15b1042860ea5c1012d8dbf27dd26e0e7bf7071c69949fffde11e2662bb0cf0932bd353768750dfc6b958858850af46778d6a03cb901b5e19cf809c63fe434bf5bdcd6a9008cafb74d9b6187030c456bac2adbb9a2235b108d24b25bf193061cbd833af49adef5cf5c3cb08954366d0e072e796484000000b02065a49180d6081e487dfcf907be0623d141a5282c794e099a5d9600347984f28861ba0df14fef522376d2567ed7db008a9e5acc4155faa1c2b31387c5536d13bf7914e50925e6f2af59bebed6c924e44df66424b81d5a3168360c6aa9593ce4e5627c1af04e059181a0c27a1cbb02b20deb2dbc1e99e193074c83a905c0e903182273ff4977e203cd83ecaa703016e3089de6bf71fe0021ac3309e1c1acfe6726d954b37e135c2e101a1ce617383bfd0000021c000000b017011d0c2744ea6af214591d9fdc347af720aceeda73ed8897c959fd9deb830e910537df01bd987f76f0526c7d45d957e88e1a57814509b25716796cd0bc6f412f82d649918d8f7968c7cbdd70c6f3d17df3fb92053e11499dd54c7327dfcb66be361e99b7d839f56d80162037264aa80de5f6ad2622f225a2dd1791ec92cdfbe457628568fcb1b268d52ae4b4f19ffa2d371eeb88db0e8799d3f4443a1ca82f373eca17c232c288b1363eed59d952eb000000b010502b80d750da505bd79ec279c4eb11d2891cc905b9996d9c4b0f0a359edfc51bab8138e6d7de86c1f7e337d605e000fb005d95d643e44f4588905b58f6aadd6a780ca323492999240e4057166b816ad0f51a25497fb6e27ac083abdb734ac1c78f94892da418343a24456a09aafbc227463955145858de7a2f4fecc7bbcb2e22b1bc11560b7fed1d328a7e1d5e390b2b2ad74dec66249628277c8f9d12f07a02f8ae872628c2145ee1385c5497e9f3000000b015b65698fdca8ae228e489b4b929a1ee3b963aedf3017dbd88fde0a3d805ee9fab109c0a8f8bd1206ed2ddbe436d8783f1edcd9abc543a4bb020b3a0ccba5a899afb702d4b3951f377b93d9f6469186cfd68e32a291153bf3422e3d4e37266726e6a683419efad3bd9cad30307ac2fe8211c4d0dc4a2ab91050344a0542696caad994403bd01ae0d13a9565abbd53f0821124009132de1ebaa4df545b36676a076435775d29a2235d84fc0b825637e030000021c000000b00b6ad3057200b4e404890d29e8245c9bd17f34e90f2a7b8fd3ac0ba9de5d446620761ea4bdd3814ccf831220f6a8dcca11b7d125fac4de4e78d90c429eff8c3afc2f465046afc77aaf49128dc446b1758240bbfdae8df5bb7836ca67a94446c2bdc7dbbf3cc6e8f9a6d4e63d4b3a830e2d2f00e5b59aab3bce6b89c80a3a7c474cb3db989750938d6551c4b4e994d20629b7359e1ccbc1653393793ecd73d77ed07ff479f92e53a792b09430e5ab6b9e000000b02fb340deb014481eb696b268035047d0372997fae78b350d8f18c124f52edc8c2a9e5f20cb1b4d8ef7a9a603882634ba96cbf1525561a269ee61fb72a5e19632d3f7d4db01a4cc1d46f77868a4d6d67d2e89f84ff715b000f7107f7808938fd76001a8b939b72bf74a0cf0e5559db64317a16f0c9c8b30b188ea441d2040b1d80da3227d844f460628653a7d2c46a08d1e3fa9bd137c1be0fe20ecdb426656150012adba2c38a6f6ec2bc26d65aece57000000b01cfa2baa186401d2397f8c793cf51c4cb0c712881ffc5aa577ab92a7ccf097de4ce47b7b6f3e469658bd2ccc0ea316da37daf850fcfb6857aecdd29bf157fcc5695b2a49570b57eb709e9c6bad68a2b45be3ca05078720784e6943a67aa6b66272204a27995934292f72f6b31fc9ba3f0359142115148b976ac6b4aadac6b630606493c552734c994f8c97494d1dc8f713410858895b326d2b121eb7fe4d945f8053151d91b64e90197b1c8f4198e4e10000021c000000b02ff761f6595fa886e09cf424619abae559979c4e8010732c48307171260d5dd20193a8e799ce49e262a6f40e89802b7fed056207408b639ea41637ae8c946097a5d491e82b7f330ce9980d49fc775408ca5cd241ebba6da7447259336deb8f3a2fe4180273d88d638c25fc0f1e78c3291ddc95b0bc47139c9b0252ba62812ba2679ca7d020b07b13c09a1ecf37e9def4298af73a41669cee01dd0485ac91b042447fee19ab55d70960acfb6af8c410b8000000b003bb160e7cb6180bfbffe000cae25a3f6ecb3abb7c3b50f9c891ce9ea20908d9089d6271b41fb1a8741033fd836f3ead284a9ca1cecbe9aaec451653df92ecf8d91fe22bddd602ed7ecdecc004078a9d4c4a02f58255a74d92b41c527d299378c28d191f27f15cc594f3eac7b5f114c32d1c1a990d916f7d2587b52dc3455657f8aee2ab0a4b34e8e97f1c39e2a5d28e108b8a929f70ab28104c8b1e485511c34a9632ea78c96ed0b44cdc6204e38928000000b007437dcc18d8abb45ebac4b3155beef0ef31b6da00df7f0391202d65b569aceb398291fa73226b3f783039213ee06a5cfc51ee49a2bc9de45508d9b7102e5e6a33583c96ad0d9843b9a7b9692aabd29aed6086ef150be502d32fb502bd078f15db194d4ba7ede6fb734f1e2ed3b4a38c1e513b9bc1ddff6885cbb42311566174f1587117429b43e234120c8a44f1d2591b017fd51b1b6a6b828dda14dc7fd48c92f8a475823aab9a749ad929c76f14090000021c000000b01fff6471261f214a56abc56d36c3954c0797e0259a781358e1d7d21f612a0330fecac455da0d380fcab3f80c30964f59b5abd157e70f2a06b716ed3aca0f952773204b240ed5c723af529d943366f4fece10bd5c7dffe86b62f7c086a6b03d96abc70f16e442dfd37a9d8958b61db16b2c16f75d5664c9a161029ccafa730fdfd2213b1453bc7956d028a445e3ed7bb20cb69ddac980160806b5454501b2933198816cb9cb727eab724405a507a63f4b000000b0223be0f4882b58f9555deb567509caf52d557f7b2f6e3fd0b2a9bf2f7f1f2b192d9f2532c3c6a47876c9d676773d3ece33e93a70064bccab377ed327fe320c7250edd93cefe9af646577e188e5d1b31b9690ad8e6e31ac164ecef92ca20645893f5606275fd553929a2fc38f289fc9ae21c180cd69244ef85cf5da8c597840790ea9194c50dde875c01c506067a9c3e513de740d6304dba81fbb1ecee1290c564239096682d049a82d62577ba9dd0db2000000b01b2652bfa98103d0d6f788c514f03b03c14c48ead330e04a96c237b6e94b86f53eb902765865bcbc79e0f077f24a2a952bbbbd490d1d9767ca09fc8c56f10517e217e5ba5cd702f71b866d040d4b3e5feb3d937e5b9048badd3123c8528c08d9140df178657ad779acf64977a35bdbcb0e4672f93a17f5f91027ad163f623ab619cb1943efd7311bf437e669b4ed719d1aee62405603709fcf117258b136dd58ae612c2a326e7c52b2ddcdefaa82976e0000021c000000b02d5b753a8d04975f26c05803c8c2d910ec016f525ffde074b1cc1d8b2ef241a81d58bffa52f2255e614f8dcca690979c12b80c26f1b3eef8bcab65720323fcf2c8dca02c7560bd564289c28111f679b8cd71aa1d7c27bcbe86d4cbf397376a075d495a0ddc41752ae41beacc8ad4afef066bce5d0199a91ceecf7ba5ea8cebc9375cbbbde5e394395f0d2ea3a7fb295a188643ca8ed1a80539429ee11fe02cf1678aeebbf477593a4df8618cacdf831b000000b017c8c4ce474e91560848b41662c29ddfdbbae1b53e535a6036c785374f7b0ee103594625f1ac250c0a3ab476bdab0aa0d9cbcdf79ed1d69dc968da8853c56d3d41f13a404d65d870b3370d54fc44d6136494aa6650418c215fd790c1b956c3528790294367d2387499f46ede3fe7513d1e014f345880fbcc708dcbaac6ac50d7c7ffeeb59d070ee43feb94f7229e18812aa86f7735716c43f97466291a70762aaf26547f3445bc5a7aea9aaff389fb21000000b00e661a74c75f1167a93477bd56a23e49e475dafeaddd5360d7cd4f2cc59202dd9464d8191d73a9a464c829ad430156137f77ddf5956cd0245a8c056a58465fb25e22905b58c9941eac48bb336d0e6c5b8778fe684301025d30cf98730796081494f1e5a65dea1e72777b09462b71b69700f8fd322b262a54c8bf673a23477cf66ecac0ebd8c173af8007c98fcd965a5f2ad3639804d82b6296221fa928583aa08c53fd404ace064d3559684f35639fb300000fa400000168000000b00ead6f026e928ac8a0795ab8ba70dd4d6a64265d6f0ff5aa99a13f573eb4b58f460b05e1f43c97dc1a5c8b081e92431f72fcffb85f065ced0e341fa63085b790f230c93c1694fe079cae7b9c336adfbc3e2f796cfbf37cd8bd73cf6336a4154094dfcb0b56d7af13aa9cfe2ab5a044e32a2aeb5b31b53d3e1ab665c48db90dc578e455d28081c1c00dc6356c46e8233706bd95ec4255176ee4497e06c2cd2ad44ee820a4c63dfbbf9e73ca12e70d5653000000b00b2fd7c3123627072e1868c126a231dbace4ec63b09a35812e11541ad1f27b6c9d22edaebbab313c2ec3a06029b585ca3b5f5b2645058c53edbda6fa6a037728ace7ed5bc484a8600f1779d9a9e52b6f0afb13b5278c4b2cff0d5a2fa30ad7f54aa06c7a07dab691f1955355c39f4a7b0f736fd9e82a3177365440d351de3d6cea622e3d60d93c1a03f5a494c4c83c262881e84eeffeb6dc610182686cbfa67767cc93a4dd2447edac207c777934d86a00000168000000b010585b454da2703b4c94fbe624494f03d4b3cdb892e3b2b37f2ba2ec915f41412263499188c1248797cb5953b909079cb6191f672905bb980b90b6bbb8078bdc0e5fd5a5d08b4d2645511e0e4daa58bfc4c47ee88b24fc4722fb2a9d1939641c9f9ef66ff57fb1057aa8c69382c899bc13a2149c82abc286525376ee7e1673864249635178bb523bcf6df89f142132d418c71174b1e71c5542e3b50d593c5e786ece68f2373a6bd627ce0f6610f212ac000000b01676745d8548f8ac38840fb4b66190835f02bc9f920834068cc0db19365fb2a238fed65d0c90399f06eab34f1650b2f659c701117333265c3cecceba04c1e9e02230e5211b879ca60ae5fb0352ef5b3449556c931fcfe9fc9937e8d1d2bb5df87be086ff54c42fd13a248ab2dce8cbe010daaef37d0a054b4a8e657e10b0360c5d3b2337c01930bcdddfd5234c50d298053184bda7f3d523ff7c0ebbd0cab64b56ca7e5f093744e71290a32604136fb500000168000000b0287e158dd4a3e203df2e26175c33d34c5e6668d64ed9cb672fcc591ab18d0d3eeb2337de1bf1c7f8c95baf5f91fee9e03eed0fefe6c371042d26b2e035133954224c5a8cb9ade7375a748093214fb16ea951ff27d68e293256522c4833264b62b43e870bf80543fc049662bbfad54b650701bd302c0dff752e98b9206ee82cdf78e51fe9b858258cfed7c8d1b57052122c83b0ead5ecdfaf8ae6dfc5aee288b45a8bd05553e6ea6a19f62c40de7ec3e1000000b01566c8c0a9ed2a3f1334c63984568f3aedc883740269434fe81ea82a5238b1b91f542e2c33359b98325f24e2b1c982f905f909ad6b120c00ac4d33280ef0aedc5a01e8b19aeaafe11059abe726896fa722cbb1aa39f70a6f871c7c9dc547c499d5e244e0697bb1d0700e93710fdd9ee3286755e586db0ead3c65cd9863e360756396d14ca321342605b3c23081f0377f16303c0ea6da57d1d1175e6b849632586f81dfcce23c4eccc06eb527c2a6056d00000168000000b0012c5c658d79f510480a67eef3b213505899e5f15d41407cb13ca717b3ff830dc26e37049c474085cc5fc631475eecf4e45e299c0beb4ae7d1a7fe9e58b3afe3e281e48625cd9f2910f14faa5228579edd8f34fe94b561e1d04e7212edb7e80709d3cf12d0c533ae4e128aac67995fe82439fcaeb84ddc6fdfb18c6e4f95548699c727e7eea5cc91ec967dc2bea6a71c181e2b7ce58a1ccf59a210087e701b27bf39a12d4f0f07a3e50c1b12089d31c5000000b005f9f9d7569a1767e4816818401a78bdce0cdcb9d8b1ead1e69e917de53d0f8c40722e862602044b326ab661a2fba40c5f4bbf95fd4d41b81a7a5ce08cd200a8bfa7358aa144dc522750f972160f2065dd557256803698d0a189fdac6efb47c24c7e6b86a490e43d04586180e6f29af416973e174e5b19d0c500b80f0d8f38133ed9cd18c3247da0ac7d91ffc86373141b500e43a187766974e1031939893c607f1fee1ab0b0771d09d0fa13195fcb6c00000168000000b001657bed277f927bc82c8c47a7ede9a6aecdc0ed156b200750ceec3dd1f30881ec8e00f47737369279f35763d534ad13e838c9b7c3a722889de57899a67ad47bee6be1588e6ffc4cc15792e14ca75772906b655b7d151889fc7410bc560d348ec2a140ea96d16615b0a7b0edf8fe9af21bc7b7c2abb65dfe2dbc57889f0b0676d51dac92635040769ef5f66d5628045c2cc2289b0b6e9a155e8d5d65ce7e44bcf867117604c194edba0c25482a6891cb000000b0128e7e4f84f256e7c7150bf0efbdb087548442b83040746755281ba7e40cd57c6dfe2b95b707a2a5176a225e3fd22a3331fa5fa56d6408ad9904730faae6aed6992de2568869df81cdf725f6684b995b79a47acdf81c1d86925be3501e0cd971b13cfe80536b3d8cd7d0182aa825122a0663138da5bf0dc9ef7cdb6ac102701f051ccaca9b649c1bc1e5f2d201364b4e04ce71f329ca1041a9346b1fec964d3d93d4f5a948393e5c43b4f858f0a82f9700000168000000b0109d0ae88c48e69b1a27837f76e8f69e9b2056027c665165ec60616b71063d3397f0758e18732a258b4e368cecd1b8402d8393abb41ebde25e46a21e17ccfc44f727398fa0bdc017c52eecb4b2ad7c190a014c0991f338f58487f02547d8787b3c6986293370a9a1612fa665848e9f0927697b9e469f4ecfbca42d9b5483178cc9808490b8be4563efe40f8ecfa7b8c91076b6ae5be2e5c1ce93d5c2d44073c44030b3f293e667bbdc7a3569d17af669000000b008d92c9c52f2640a911de46a5b93970513438f39c118e4570b8b1ed28220b148b30a18c59cb7532a9fef2e031d54f621d637ef8ecf3687a2df0228fbfacea2d6014faffccad628fda5228d08376599fdcecaba8c4ae16c0260370bf9ad7c1f38f2bd4499e7be5ad84884968d886a06b82c8ca191aa13ba167436f0349b046521748423559105e4e4d45a73a2d9d2c36f177a85d9cb5389b958950498b9aaf34291042741e71d3943e5e032d7503542d100000168000000b011b69be3d3ac007239976a276f066e1a85c6dd5a9259bbbdf37422124bd80284b90d2340b2161c2ac33e055e1efc0428339aaa14ff06562a1fac87a4629e2b03ff48fbdcff25e53579312d9ec883a235013531bac808be9bd2afa3f3b2d1bc2d02a4a5c8a9ff0a1f24ac10cb5e987e6912f52cd692bbba05f7b56d7abfd91ef3558a82633755768f8d89f76e7ef1806915c81f3982a45295f8a3206e4fdeb07d6248119a2ad44aba387895f7f72ce170000000b022c08480fd3b7372aaf10b90eafd7e51e586153eb3b978b4d12353fbf94067d0f88e30de469700dad2272ab223d9f37307f0bb29f5258d68dd437b8bf1861a5b66a3ea70af713a4523d99bc62ee5bdc2be1020ba3a9c87f768029b27bd8de6a08f240f21d97e8e346c6bee8443ae61fa10f65ac42259a8425e3baa102ce6ccc8970620375a1c870b0b158c2b403bdbd20b8cac1cd408b9dfbc0d605656299a3ea94a645169f2312ee6a7a221513b99ab00000168000000b02a33a1552316b3a361db417ea6b7ec8894b574f88b9d997c62af1b7cd3e4cfb7aa0702d3b4cdbd7b590f0a7957e7853bfd1702d4de758bc456b4eac59e4ad897ff328404758f961595858c6d0aad077c896dd2dfb4f11539ea3c1f6e05a2f467f40e6c47ef7c04e5e50ca282957fab1b032f51fdb416c4648e41974b4240f75c7fd5d0c90c58efdb90058b3d8091dba917eb391393030a590a26339fd846f336db1ea686e51905b51bf14646cee0e1b2000000b001f1bdcbf81655c2d15afa7c6c2d5920ae331b5a695494df52eb97110bb983926daad43709a467b79558be826a3aa1c3283cbeca84a7afc08ecea2999ba37f4bace5348315a2d889a92c3cf98f9627f60661f8289720d7d11dbeb1ee8ab0cb47247c33084a182b9d98c2417d48a6cad11ca3532f891e8d36d50bc956e5d5bb9e886d100d98900c31cc5630201d002f740cf6d9bf067e54c866e4f9f047ba1ad403fec6c0eb5407fa5f6acdb7177a462f00000168000000b02fa0ef8782e13d0f97b830382661e6e1364362fd22b7246b707939ed53eb59e5bdfc76224ee0aba2150a2dac6b57f0cb08f6af0add9be83e4b59a1d833f51aa36e975bc2ddc135b9ebca78161fc0b4e2ad6efcf2e3b3dcad42be72868368659933aa7139daeb68342d35fa389687aff3162a408b08e27363cb6eecb3b78ce1e4f14448c04d2dc426b3e03b1603f27a951cae35f37d423df829370ea5914de588186f0bccc3615731d0907e20b4fb8815000000b0082608ee27cad407c4c981b85e8e48e5f16979b404e0b1d103e583a3efdabbcfc83f41d287ce3d2d289bd487311c444de901ed841f739a1b2fba5c7ca7dc924479f3cdfccd796841b33b2e7866c06959023cb3a648b1466dde40a8db1c5a6e114f299e68d75cdccd17abaf0f471e678217a1ebe7c5e27aa118b065b2b06ab8b14c2ec2fd35eacf41695dba5511cad6b628fc03ccbf84ebaa531297d71b5996a63ddb06ce45f649423b88301e50778cea00000168000000b0070132147a771d9c009258d0babdcb0df251f4a801b3bb149bd50be96be212c79f326e13a72c8410fbf06dab6db66c3f961a9e1fe3c9b413ceeeabd91e3ed8b2b77227ab9df51b04bb367c792dc93de2b5000377f6aa4ba761afd242964d3e6eaad6c478697dd1e4217adb18d09293490a4cc265f939ffb89596b0b4f82eb1963cb5f22840bf3b41e4d4435ddbe2125e052e834d2dd41183c8ff5b18c2dae958a689e3b0e162993f05e13db13f479909000000b02f0f6ddfde294266d182921536b3214f77f7a8b13526bba68c578edd9e2e8bc816a3e59064ada280f94cfdd7f51382b4b89606a6e8c443af85ad5cf2a7a3a608282c5d62603b0e6bf98c193859f15fd5268ae5f7ca56122f3ed04032892922958ce7555be6917433b365d23ff420ce151208f216bac3d8fd85078011c2bf87e7c3ebbf5a70ab8f819d3887fd6048a7d519a8dafe508124b1a2352a304d1c4b78845abf92b774dd8776859c7ebddb870f00000168000000b006b6aaa1844e8005704b1496693b6777c4afb0d63565fe55dedee467070336b3c7e05724bc8c1b5daccbc314bac11ebb47ea8948087019b458c4a000aef28747c02632c76d482f953c6220bce25ad9c62be681b4423b50bd54fe11a04dc2672eb8b493f4d6b64486c3ed35a55843149d054f7d1dc5758a961aae6d81f152ccf6bf573a8f26b0f5986cdc5eef771a17c42207445af59e2b05631d72c8c89b42166a23cb09e7d09c4368ea0bc28da133b8000000b004cf95c8b3f9cf667214a5107c4aae240121dc412da5040db710a70cf45c81d33dd39f67b23b52444e040cd1064c1a526efe463a163adae7238365c3358147d26aa6b9fddd422655f7e62731b7fb0c6e209c146080a95d29a4f949a6e196f8200762212a288eba2e286b7abbb95933500c63b6e6f0b699fb4f95e481e42bda165c38730836f56110859416b8da8c88972cf1a79f33f261a7d7b8e2866d59cf4420e87951ec51007e8ab4829496b5048d", - "txsEffectsHash": "0x001e043fb2c5de8d7a5caa2aa833e839b166cb0b2a03b1bcfa96dd224823c8b6", + "archive": "0x0727971373f9bfb1fa99e58976394be2f7f18ad7a8f70d6731081a35cee038c6", + "body": "0x000000040000000000032dd000380000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f00000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000171000000000000000000000000000000000000000000000000000000000000017200000000000000000000000000000000000000000000000000000000000001730000000000000000000000000000000000000000000000000000000000000174000000000000000000000000000000000000000000000000000000000000017500000000000000000000000000000000000000000000000000000000000001760000000000000000000000000000000000000000000000000000000000000177370000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f00000000000000000000000000000000000000000000000000000000000002700000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000027200000000000000000000000000000000000000000000000000000000000002730000000000000000000000000000000000000000000000000000000000000274000000000000000000000000000000000000000000000000000000000000027500000000000000000000000000000000000000000000000000000000000002760200000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000341100000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f0000000000000000000000000000000000000000000000000000000000000559000011000000021c000000b03060777467aede49a52d6897dd946d227c875a6ee0301aaf6f8541f71bd351be6b484b51294d2cb4c37215cb7ccf9e49d2afc52f19b96d73b56bf67a53fc95fc72a08b7cf1f5c1f32e4b85afc898ddd5bd7cfbee5f774b303a908cdd49782c59dd37af9b436d1319d25f1ade50a1c7060ef819b6929afd7cc31ddaca6098e2c0ad6134aea516c216248220eecac330561f4dd16cfe13dc5ab4cbb8e390337504ab9fed232451a1cb1ad27bbf5a5c3fa9000000b00aa404cf913b04845781b5ef92e819cd5e23ed6b9ebaeced91217f6325e6374da4461bad3da220c527dc6392040492af676b018522a6c1365171cdbdb236fe9e266e313b873f81a3ea3fc13514d093263f422b5be9a1a012d7adef967b56c8c73347bb1006c651006ab6e7d77b638e3e1c02722628b5cc20b3602b2f457b42165f17f243ecf5ac08b2f9edfeea58cbbd22a3ab2f8b06d2f2ac7e51b1fdebca51d34f12b2ecd00312f199d4ed92970b44000000b01b74cc131d07a792fb5b40cc1be928568c0458be2c5951cdaad60e6648433f2fe76f9729483412f1c4dcb1e73ae128cb95f17393633f29a6962889e7d6ca0138ee801d1161421dfe4562616a2394bd6bb90e8a7e248c6fb2b5b3dd5ba2c4264dcd8ea94c0215aa544c2140d63a5941140b0a26ca928aa0bad258e32c441e0a17402dc09e3a06d3eb6ee0626ac6c577b001fdff825733f7ccbca36507afcea177ce98c88b7267670e97b58d6ba50f6d2c0000021c000000b01337a420e809b15ed506e26bfc18023341b903ea2cd3375b8ae5bb5d611c6df1d528dc77d2a4db5e316a200ad92738c24e35f9df485e6e56c3d3b95e6c4542e68969ce28e1e060b52c8517570b10721494e997ee3aa76d88ad7b979aebea3e09e3a325f536dc241ac5be36251afc086a18ebd8db1bbb916d40099504a5682651837f9bbb1a107e3bb5d7b3e615673cac1a82cb29a69412aa7dbe5e17c245ede505ad6f4fb178e17ae37206831e2518db000000b007005807268641db31c7a483ca3767508827187f0605615f842c8f53940fa188aebc05fc9b41f33c4ef9e3d8fdd99a3dcebeb14185a26c392650e614926996b6a56515b7d7081e1dca6cb90cf21bfc1e80c2897f53d714dd3e9fa94e10fe333fa64995ae42b3bd3a52df39c30442bb1302f2b14a28849b4beebb211bf05b43cef4b56bc34e15b181a4c7e11a5ebaf11d0603aa7743d1895d190683f0019d3bee7b8638576652856032fea92d4a52b0f0000000b02bb1fccd7e5211fdd4ce5b5d46e9a8a8e76bd0b8bd2e17a681283b98adf695afd00a69a1ed7656a3d2b8a2e2f99d011cb7a9c0b256e2444f8561d405571c6578e83d0c4b5eae6ad7c0350226219c6b882e382c25861c99de872f9cf266ba95ec7680c8c1e301ceb73373668e5bef35cd15ee3e52eb81dc0df9abebd6d4da77666dd5600d4480cf65c73013d3c161f6d92674b8d3893a7bb58b30f1a1f0db35a312e5edcb4062f086b1fb8ada6dd4e7120000021c000000b00b501ed094b079df5b307aeb6be5bfaf644de64946274d7a4656653c1f1f7f6942e1394852156536c88ed03b0869d8e33a4d6203e64e62a7eea9c43a4e877c26a5757c471e91ff2e407bcffc5f076388458237d2b8754135105589f89caf51279c1aeeb2c4068134f54f4e180156c11d0f3b71100afb7a7365c8e82faf99c28330cf06f17b60ad3ca16e5a4bf65cc78f245341f58cc6b8e1e95de0c24b7d528925c9bd6dc2ff7ad758fb4ac0f2975834000000b02b74d299cb815ae90c0d98ce3638dc4d83aef7bd9729493c7df151e6102d6c5354b05ae34f7441b97edd47adf6009c7c3726c23f5fffde5fdfe9509bb4056c44189c4c5d1a9bee5bbfff67377ae32a52f2f4b2d2796e5906eb452785f350ea5638693d0fbe58e672a138c5e5de55b0e32c996f17cde84d0744e5dde1ca2372ba3bcd613f8030c0e59371df1c777d1eab13b9abd15ffa88fa19991fb330e932702d131f29d4c57caffbe77e5158d9fb46000000b01e5f97947c948e667ed46686ec2fb0d690a6be2bfd3f813069bb95ceabb660ebb9804802fa81fc3e714e0d6b089119ca17f3577c8822b08318d5302eeea423d392d2967c9aa028e7464a326e93eb06a7feb5e203b0ce3e8302accfeb91dd55370bf4b360a9f3ccb8b69dc497dd74c98a2245493f9fd2928b4c6ed0b871e165f3c6a495ddf5afc7a5632a1d64770af1ee14b9771ca546e01cb31cc121b8d457c225bd2e258d5866b098b24958cf692cf80000021c000000b013eabe5751e0df3b0a8464d0e58563760660d5b1ea3d4656d47a58d7408a50f96de90f8e1520f1a8e7357e68da1aa04374eee4bcdd581ac5f8b0c34e771b361716e1c53f8761e3a765fdea4a99709e83ba1603e9eea7c122758c9241235c9ed2c9e49417333419803199cc2223fd68b8030f3806e086c89ff8784387b779dd6b2c176e9c8e0d81d69f3d862000f9380223078819185a10183783d2c2fb3c354da1d6fa7c040c8f852d4729a636c26381000000b005a98e2b9fa3808c6cf4f122c9ecc0abcb806914971e838c64729219e3d124c3935287efa8355588c5a99240dcda37a8c3dd68f6852be1dd112f738165d8a51fa2f8d36d34145698e1f6cbe531cb6972571f2cd57caa401ad24002b0ed1b6852d22b1857ebf6a1487efaf783d0d9576b0167a9da85d37e449ea040ffb5bce21b04142904a1670a59e5dcea32e6107c910c6b345dcfb0e64ad2c7af1b22bccc051dfa8056c8443b3c937220b60d941767000000b0291edf83703ef06f8e980276aa8a7ad8850e033cf8a3a9aecb1013d7fe2180043889399a8b2ba4a31f0375194d2e9d13ef77af1ec813fff534ad84ca84e2d9dcc1e6c765234db857a5025cb896cd6a7cf91d31c667b6a48ca5d6515282b65bb925e6ec10e51b9f7b4eafe25b3e89df56060921d786269beb4a63f60c7a8389337daa7ea4ed5d1f4c3187f65b90a219a0021ba31ed420db1c3026adae6edd2a74eb91fc560c0c83f795d93d8948dfb9780000021c000000b0206f7b4483208919222ec31e738bad896f82a60bc56c10439fb693a9f732edb1671a9063ef7fa6385d7997a61369cf3d1e2e5e943b4df40912d69d9530884dafca8508ebe16f4debbf846851db0740a77992a099f8ece3d6799045334b0a54928fa1dda8a709d25bd6b2ff584c82e9fa06e6dd9a029e20ff18a2aaa5b6e4c72b34e47d1cd1c0f84157f1830707c7a9e505f74ca64669acdc0927d2fabfa81c46f3a54f61680d91148ae088a6bb93344d000000b003a745f4054b238fadfd560586f89c61fad68e0b6b998dc20269e59c2cd68ac75d34bff01d2b1e2d3618cce02da5d9323d14bae848c0eb5319ff22e7c116663ff9695f5660e4a4677cd6beef8a363abd12082738fc3f6efda4004850582a675319d6c3d2f43c0ad7aea58e08eaeb578425772bcc21be505afd47c07f1a10f2bea2db8cdfcfb7a710a4df807a300d0e8417198ce99287973458785cf0aa11ee999a968378cefe8e992af4346117d5ec54000000b02c0804e7bf23e6c556ecf0e16780fd483e55645fcdd64a4043b1822e860a70f5ab51092eff9daaa3b4bb00929a3b38592cc7dbc02cbd648a22ca50584c49e1b0f7191db56b2776420c62301525173447728cecd495914f3cf2221fe171e2e0d611aa91f974f7a76d5568b507cf2ef92315686e44edbb5af981f01b34147acccf0221c393700a7ff19455cf16bc25e8f401d600db0a3d77b5cc05ba94449a723947740b88d7615e8444f9fc9a0e8137600000021c000000b01c98a9bc8d04074980a962dc50cb0724b48df7bd97d0caa7f1613d7026f0e34036cd9bbfb7613c2659a43b0d8ccade26e722ecca794e6718c42adcde3ec6437caa8fbfc6a93ab76e8e2d504bf25b2f2cc7eb434887b57cf75eb33fa74139cd3b754a4adfea5cc646ca7f32214ba0a6e8116e54d9030eb5a35b0b336b4ff8d827dbafbd241472c49e6c23e84e47ae51c31b508bc75743f0447a9b198689b7a9ae601315f36c91be34811add0fcceaa8c0000000b020ba8e27018f62663fe593526842146a3f544b9e83a8a36470f8cd9c47b501d462e70a9597f58ab3e16c2c241a3109f1955757fa06012d47090c63a10f11b5ecda3dceda55d698f9e185c57dd5fe302f43567d167a1f8fd794ade064b080a0c169fadaba5f839a1522a6a6799f89446b10c26ff209fcbbd25225e46622b52e1d57f227cc11ff3bd617405d8001c7ab941423f0b7b88e7b201b3c0a403e23eab704a4ff52eca76814eeba13aa9bac1b98000000b00b3313dd293d97d52f328d798fcf65a188a62e40f8632df2aae7bd26d2947b12b7d3e9e4eab21e08dcf0ce19e0d288da9fab5c2a75fa7c359b5db199ad4f2720e615f2d7d69c7907bf79b10ad6471e61611c2cdd7b1add5d4c765aae3c62aaf3f9f87c3a731e17dd7cf9fe4ba398a4b721fca56413605c3c8516b451a153d824abab5e990241ecf5ee70df1cded7db700326ae14325ece050333b96ca0031a7d0ee6b8a5c1dd62764df3f2d5833513710000021c000000b0053f2c4a4628e3849cdb9f534fba7f3ea90b3c7b59ff0eaeb4dbae9d7e9fc557464d40b06918205b2e61f26f032e2a63d0229cce2cf907251da24457e8b97edeb5625aac093779b3cfa911d007e2a4e7339b0e85b7e08c4af0104e92db84e49e77e7e1122b13e48c71b21f51cde9ea1e1c5e10ae84a71b30113bcb15e509852e5e9566d88038d598abc8f990a6b24cbb000c97c2652ade89d239f004260e96195fe6d7862ef2421ce3b1b22c034abe92000000b00985a70ecaeecedbcc9cc8f7ec40302c288fe3442b090cf1fa9974e500f00d6c716dc758d72d9fd01fe2f67f442ce3a847dca064e03d4623a5db4549985d14600d4416f99d3277b3406437dba2482141616783a08b728a77329cf3f68f38333a3f7e485e63956dcf6750d325bb88103e2e971c5da82b97ae7bd5516ac3882d8bfb36747b20e3032b7442721f89618fc82124ac8fdfcdaa52a3846cd398ade67316862ed2b695ddc80df7c1af7c939edf000000b00eb47992dacfc0163654b63ec13114155737969053f37da767d28be8fe6167b85f4b4d3eb6a612e254020e976c04c0eb83843078cd17cf395d1a59a5989c2d34db7a0e7b614b2091a07bfee26d6533a3540bf21f3a60484094778a110ac447616b24a9a65722dad2183b6617c5858aa312d91e92ae001ef2f57183db2984f5459b1f4f73938b0360efd496ba4b0e9f02097f92c21bda8fa8b47ae0b4775af07f67b4a3c5f3f1f7147bdd6fd6124924ba0000021c000000b00b8fbdf77dbe65e0c8e8cb213081acec69514df0c6ee8a214ae2fc9186584813a9e003553f0e209b702dc9964481a0e1ea2809d714a38ebbfb9cf15971e94d74b1da0d584cbf78d8d47cbe1775211afe1913da37a12bcc173d754df5c5c9b6198e1a7081096d28a54cb8820ab02a2f7c0237be7a3e50a3c12a3f01b8c09743020de151efb3c1536ade2b93e8d2916d1c1bcbf0e08b751e20c234804d5c038fafbb521ca1b8f952b786949132413f873b000000b00da738fa8b579e16151dd63bfd5072146406ace90324252cb4e1421128d46d80901ea94af6687e7e7e201231785f679418b558008b6e05aa0d77e8283621fd90846dd6d7a7e4d919f49cc3beea3e381706a0c5222c0f4e1748e0e5c0ca7aa8e256d64cc260030bc4e0d762ffd7e7931603733d5077b90cc9bd1960b2101cc6c02ad5129be0e8a767d56b19ed640604a20ffec34166be1994e00b917ba8d238e651a9d8da5aa6a20bf3ea668c6e6c5e3e000000b01437bf56c6789673492ffc9759644e4138e110cd781fbc993e503e0d8f935b71ba8a92f512a273a784e10a8900ab2c7229bd0e0f2677b375eac4fefd48918fd69c419f40c7f8d558e99902e2475ff2d7961b571df6b8a7f2c48facbbeba8a72b9dda6779c8dfbb8026a0b5cde15d09c01886cfdeadb3c1b81b0f6767a07db19c85d91b8b0ba67c2c7ab1be7216fa7682276d5ac8cd6ce99ee5916125814033557fc13f708ae2730cb2ba22bfd7ba998600000fa400000168000000b019feb0ea202d28ea8430611e088ff5d28b108c803e227dd77d47eb1cc365d2ff143c71d190ec9967583b4bfe9195fd9e25e8ce892bb46475c2dacc68332171c9b24a0d3ec99dcd4b7541a31572ed167e8b567b9c2b182754322e50ff2288c7c3517c53604bedae2e5cbf73a727ebcee008e6afdce9496619ec654c6f89895b25c5aef929f2768814b6589a6514d0f4ff0b898c0678d45015583e18411d49af9e75050bd365cc51da505221f471ba108e000000b025f82e473ae43336b676aa8860083ceedb2c648b0d391c3b04ac2cff9f675a48f0d7572ce60c60209bdbf31247074aa72abfbe079832bfb2dbbd7c5bde004a97f3687d08a234fbe3e8109a842bc0463b13287f0ed14d8bb1f2fb6056eeb5a7d11e2e0e80c8e1418b140e1a8b0cc46b1808b3ca27e298e92705d7494d029d6eafff91ed3e9013d28baf3a2bac12ae73a01c580bfa613a133ba6d2dc9d8a46dce4e2dde0a43996ffbee38a241fc12f329d00000168000000b006bbe00e1632a7c9f7ddb55806dc8126072bcecfbb97fc39741e94ad09a0a4ba29341e100e7e01578ef75330d34c4088ed505940c63d251822e3fccf3fde975b6b8951089e67cb8471f155b421e88810f13a9f2ba695772f0541d1e73592d0596baaeb51dc77857efda7f600e2f23c1f231ceeaf8e27dde9c53c3f37c0ac8b1ea191a926a4675a2f107ef071791cb8b01aae86da7026626feec9b2811d56d05842397f86e926d0480f665cf59d71f409000000b00e8a5439193a24367dc15408e78f81a8fe5cc519eccb93015eb9b873c925cd7a2348a8c021d2e52573de0ba5b416666c965fa901347258525b33197786beb74dddd7d98dcc1ed28687bb787c3458e53933e86213c319b5b81e7308c7f289a4b8583227431154253b7bab9c6f318452871739eecc09bac9d17a48df24fcf8dce7896194dbf417189d5ba6fd107867abda129dde661a32d63150c02677d828f6fbd76006094d80948445fe5e310ac3a16900000168000000b028b9e663b19e1f7367dff8de06878aa16ad86e9e59b8f2cd74a28d6e1b0bc309773dc919c145205e4111fc867c9fa486786047a9f6dc58db2040a57abdc2bf6246db2c16fd0e0ff161767da591f15006058381d852c3e5d99d5c04a30bd6a61e6743b9604699c4b3be42b5ed797c6ef71e6542e55e83bc5cefb485508525d65b1540ae61b1e9943abc4dea412bcfed0814d6cec91ef675b43dd041245b21685243ab44ff64dfe796cf17566328917ba5000000b00ebc55c70664b15443ba447d7922a650ee352410de9999ddf2774f65d682ed359ca0bfc3b76dba698c9c86e727318ab30c74daf33a763d034d21baad866520954a01a930f897f40fbecc2a928ad6011faeadf436136d5685f7126ace9c74a00d721e2ce3c170365dbd1f7a77b51fe4f9206ffb15120f87796aa326916f9815463ebe389e8dc4209ca22f0f548f4e745924a5a7e395cd18749bc6d628622b46cc98546292c99f4abd3822bf210f34cd6f00000168000000b00429f6b053f40088c9026abfcff4b970ad27d6ff6730aeeebbe512edfee0ceb874530845bb7c3548666b392b92306c7aee3802f1b84e81af3c88e7cb8ae2cd5a31425c01bb025ea673e7ac1988d018e822a4202ff0e6f99e64c34d77b0e695e04a6901ba024a334343660996b9af8a622b19651bfd945e45c3517d5b1e86c252b88c294dae0e44b4ad9dbf25d42cf6cf0d16d5af9140af039392f940aa354a23e83a81aa63135825a249d4db0be5a629000000b01e71d4c96b33f5173e1c7f519117d02f94330734686bbe8130e8c2117c69e409f1f9a972c7cff9136466f607802919a5dfce2720108145443e07859b93819ebc866815ee52ad41ea23f5ae582df3a90ab2d5afea1dd258c28dddbf168d98093a9b9ca049d563ee8c42e63faf7d2f8afd13e8677f2b3e138f01498a006e5da7fee95a915ab71ae9a0879006986038069b03eb1e21a73111198804c3667770fb28b0306c232fd12498076317ca2544ce9f00000168000000b01c91af55fda4a614ef71687cf2a129eedcede0042df69929e86f74e960bc1492b24a134c08cee7dbbcaf3740d53e08b3e58865ad5d497335db7ad4d7cb051db1333000a84caf5636d2734e7507aa786be15dad9e6964cf1f971f03ca739f40a347cd6171243c87cc6c1a2a457e6b69d429a0bd01b43fd0a9e4f9b8f7b1d3098c15c998dea3339e47e9c42238bc4da79b128ee803e82c3e46b556aab34c0924066e2bdecb492eabce7c682058f4fb0947000000b025d0034f56ad679fda040b8c6fcd6b7f69732d56eb08a9e67b639d018fc3e3bbcea03d6727b086787710424b7650797f8301bd3f476f286ce326b04da42ad17ffc3e75c27556610fd247b700ab6c7a6aa5fbdc849bf687dab99c20e94519721a927d5dfb9d572e7556e03290e1b9cece2048118fb8caa5825c0e3d7e4149ccdd6bc6889699fa29f6d50cbcd80eca8a65119ecf646cb750bda42000e876e598393e7e5fbfb3ee6baf897035a59010db1a00000168000000b0227e48f67d401cabaa35bedaf046608896a1effda56a40d1591b0114abf21118f568ebde8da978a499228085a0d438784348146ad2dba853d8089618d2ba36cae796fc9e2e5d7e44cf472be84d708567c042f460707f580433e5340a62ef58de32ea4a2169e0faadff4ff617b29430f227bc45f782242818ebe7b2dd3e79556b03eff3b6710ceb6cc8597e4a6c19c7c21d9c39c865634940b43b1d016f96b32575bc9d2c935977fe72b334704564683a000000b01d8f627982c77e7a510c6fffb49d121a08ad09ba1ba20dbc7d2186322b684dcfc5cbdda1974cf1fac5487e6aa52025c0cb6501b519ae6e02fdeaa4f45377299492de515204e172ad46b06b94da2a73eb8ec3ec4a43fbf7bd8a8304d6feb5ca4b9d519dc59cdf2cfa74711f0f7f7ebad00dfa528152564837de32d7614c5920fa0db915efa69bf7f890ff978f9e89f7b301d875de88ef958f366dcb7b03a0e9ee4bdaed35ffd1d68159022e08fc291e4200000168000000b02d821b1f4d31472905cf5815cab3219ff6783f5ba566f05cb6a8d0caa9ad2f06cb72ebba2bcfaa7804c7b6bb92d5fe915b0781d90dba8053d4173bece14f28e43ddd854511c549cb918dfc8f2fe4e5dc21c80e877e8b2eee91a01fd67333bafe67d3fa314f4d2d2310bd5ccad86f585512d128cc1331c997792e28b8f2df7836f23a915afd682d9268287cfcf953121328eed7a7f8043437d1bbaf63e18db47f4311be917cf7c38951e73359c86aff18000000b00826dcb6e5d2d1d98dfc46d3d8623da70936d596e6d25d38efbd9d6a8077417321736f42119bf7f09845bf084d19dc61ac57e3c8e5c09b1a5c86d44870d0ed109a601ed56e4c66ab5b096d2c4b140b56577fe4f738715a4c96cff8803e18a7512b2ef8462908e27d45a78a445f5135ca281b909d894f9abbcbb66287c75ed53aba7d11be5c806bb853d241098be567731d6b7a4575b39940e7ef718522927a3242aab8000c74a173aa1743308273b75300000168000000b02758e92e08ac5befb39614ec31ac798d9326f6cdfa49e9af7b6e0a7a2e285d8d4ab22c7805d2d1593b14c5e6ceb34909637be7dcd79606124d8cf3c1499baaae8bffca85e098a1d9b9f30bd70d32b50a131599d825032c73611a5b70cc60eac666f6abe64386cebc3201df44fa57b2fe223b412068727959453eee7f325fe69072c9ffc04945408b29c1cf228457d3940d6f10a78469fb666dfa06eccbfcd206d02a1a67687e8c45ca425dc03c1709a3000000b00de19cbffed83f463f620e3f7de72d306648e76d6bf1fe5319d40aa317c5d492a12fdf61929963da21533fca2e0ecdb5a14f4e6da85d98709f36e356e6fd502acf90de44cea512c3d189d76565a0d7fd4d20fbcf66e777aba228f0f2219d5f9fa1f71a44338894d59b468332a967451d1a533f77396d4519535e78057d1e221ccc8d2ecd00b3ce4b81547f17ba8ec1e81c3420e3e640d5324e937b9822c193cd3db7bfeb3ad50e8009df604e23c84eaf00000168000000b02ccd609e71b8eb48d8c52ffbbe6d5514a4dfb77eb8e3f294d0c559d5f0992c1cde43478e4ffa99c0e18a0fc124c78caa3f473d42b315ffbfe942263245819f73097cdca653b103af4e512f10884792251a96ac9f1500c9a954350cd730b15dbed099e8ca620b47300c4b59dbcf90f31612e5b0ab94298f41ae15e6e6db2b81ac12be025ced29feb379f1bb1d5de04c332c67c765412c1b31add48517e3e9ccb78228eaae38a5b2db20bf83c719231db2000000b01b8d0ccd57ca1ed915928cbb2d1941eb940de7f6f2f58a782f0e0634a51e91700f09b5561456d7406fbd7af49d2abd3aa811d7d07b4360810033dc3ce13f5271a5d89f957a48bc2b1cfe13f476dcbb2e04ed1fdc4d88bfc40df550f376c580f189b15fdfad738c77d2baf765317a7dc90874285a69f17f007e88451ed012325ab1f6af84e98442d6c2a4a318d2ccc39c073f7408b157c1bde522d0847da6ec5eeb784e499bde6ec7b9980912a7ab678d00000168000000b02964464fdaf5806e7fe76e33c690ab3083a3c23a463262213188c3d12be7b46ad32fdc530e37fb1270b04f92cdb4dcbbec8d12eb8c50a6662b4255dbfe4869f609656c84d6c48afaea684ef39ee76d39f5256fba01154473e241ae3beb114fa657462ad0cb3e096f15faec8bbf432fa0033c869bfcf4956054af4e451a924b531be8449a2aecd76e684e3a91d28098ba1a27caf4267012b6fd9f5cd99a1216fc468cf6fe7b7b18e66921cd70808f524a000000b0085c5192ecb51e2e8f386c23cda3194313f1ef958f27cc652f9b6b27ff27077329a3bc8d33fee9811cb70845071b5803e52922931cb0ffbcbcc3427978617322a1e78e832c2a0e5c47c8445436447f7fe48a4ed5e19dfd78e8f9671d58f773e543ebffcd926ca4ad8966809f15c4b98b189cd7708ef18357813a51e8b1c8e1d2d0e10e336cfa7c318dc67d77552a1dcc01ac5de681d386a184ee055152a18e1cf9000792aca591c713cada8f7b3ec96500000168000000b0283aa1a5c4505b9b0af4bf6d58b07fc2128ed9c1b6ece33a3a2b7e70ab2fbd8785d49e4b778367c93218b349a2442cdd16ce2d6473c257122e60319a9a8374bdeade805a7de811f5a54c5d1912e72a2647acf024be59e12e414494000edc67be7b1e9452a2f4e33a92fb513ab2eb5bb029e6b0ab64d0801a896e8d38d8fd7ea453e253774154e6d15852811c7f5953d6230b47731846267494c89b9e1be47da9b578b3950e694eaa9a5e71b40f2d979f000000b01ab728031c30e9252255bc415d27c7e42838da071afa2aada0562ad79bb817b5e060b07c3c23e835a657699f8200bdfe1c1d8cc86121f83369f4d18b299d46027472fd1d4f0d615c34c7c732fda4714e5dc8574e2f17fa50fcdbf2893837cdf8047c86a61db2f42521f61f5f5ea91339077f8d4d574457ef0e661b9c5831abdae0882eebe5e501ba3552d2a58cba7323227664dd437573a9d8fa076f3a2fd80fc77eb5880c5249d359b7dd4b0ac41d4f0000000000032dd000380000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b7370000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b60200000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000381100000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f0000000000000000000000000000000000000000000000000000000000000599000011000000021c000000b019469d46e7f1963cd4e9b1fb4852f5e74ae42dd2ab29fb167b75fa857744919516f1ec163d11674ee7ad8ab094cca0651426bac3a0d8cddc57fb01f4287a851908e380af370620a0452a1ade4f5b5a63b32d20b180121f030a351595592391db41199668cc75eef4f78ba0e399fe41862dc01a665e33790b94855271d5865fcb10f19ffdca085d80a23b5be5032938b80a001f76827907e53d7215a190b46245cc7aa873f566751a7f2f547e87a21c98000000b00b2a41156da3828d6554ea0d832707893b811b115f8ea953c5d87db7ff9792fc597bbf277b06a2349068c8f9560ed155f8b6464d3968b9b6eed215adfe71bb4e774e04a21aa4bc1aa123b5d99b1cddcd58b9293cb46a777b85ae1ed0de9cda106c248c4294b04ae3143a47480db2b1ff27fbcd6072d6be6ae222be82f44b8efc122bcf4bf8a17f9f24d2d98b3cb7ed060798587083deb22d3885dde98a0527e15d663041a10b01ca6485ec613c922321000000b02dc97aefe30bbf873316c9daf2dacdcd9c9badc0d341f9ef2c47db61f891a2d5e76d77f7008f80c747f9a78501ff3691d967fd5f4f9cc01863d7355b479171835e4f25799dd5de30848096097c4d575af45201dddc0c54dde49511d0c2fc75b75205bb083f4d19c690f7118acd0a6db1005d5dac201991c88f52b56c509229e62538c7ffacce99b830f59e904cb2341e0247375188a4cc2489760b94c83dcc17b4af4e58694ece875414dd6ba10763410000021c000000b00373e269a8d1af67a2d2a107188d0592846e276d7a887499defa81022d6225ff3bf077800c658b0cb9dc3f3cb6a1c41348633e3b03f2e90300d84064263dd0c2fd37cc98df335c7781372ef4542208eb0d958aa5a145c16c991a23b2987cc1a24526880b8f696102692fc73e1bf370d10ccc93fff29ea901e578bef0bc551b051ab6a0d04314716c725004b9ffad67010e8a99943cee053c5546b9946564753d45edd22bbbcfe056c9180471df2ca94b000000b01f132df5e0dee2e97e3d321478813a1884e23afadde2f5bba6bf0e56b01381b597e12153ad0355a517bbefba70daf6d268646ddf164dfa43878832cdc29f6f348c4a5681c38dd43e91ebf26dcff26b6d38145205ccc34f804b0cae6896cd57b6a0cf2fa66db8bfcf6e8e0e83ace8bd75001e42b98273e2d6b07a6706ecd68952c754eb4ffb06225eb1711243805eb1ff0ea0026b964a1ce42a8a8c8c7d6475f87002a6a39acd7ec02a7b5999f54124b5000000b00b50892a78861f8ba0a462ce9876a4d01ddb141997f10b748a8fbe300bca761f90f699552d2dd83932c1d93f8215eaf9ea387e0c63593e0a6044f5a2abd9bc2e7598d8b57c9a95b3adcd5b8739446c0d7bfd21f0973708f225b47ebec0b17975f5c10a8956653e8f7a55cab5b29b5ce41dfc739d4c5bd741304d31acfa431cc4b485d94b066e10a16f30cf1eda3af9a518e503593cccd5f7a6b4af9b88ef0c3609cdc509d35b61f29657c816527c7a4b0000021c000000b01d60eda16b4ff3b48524de5f9a7a6f00473bd6213173ce70a45b5fbd41f90a9c77aa5f0f247bd69905a9dadb8bf1734c742fec924f0ca6f4f807a1e785da9e1aa9c631d1b93de1e169cf0d2f1fa7cf333f6eefb486afc981731042b0b9ab13ab6ec7d3ceda4620bac85471f3a2de4a11202c18b97b412e3a58cc0b442494270b8f6d7dfed2b426f64aa9baacc58c5a48133b5154fb38bb792f6f13965d26418299278315db4f98fbd074490ff14d6677000000b01deb735c3234a571011a26625e5205caafa81d3af4e2d8616d8c0da78225adfc160821e9226f507b2d457f9a3e436f9fc31911ad72c35ea85679cdecfc3cc065631f8276153c54330f42c76ed93ddfda39e193f59a8fca9b9101ecebefa851629c6f45c6c86b5e9b09dda65c749a0a9b0d6ecf1427cf3cdcdf01fa8718eec5456235aa75b033eb3b1c2f37e0716caa2219e209e785c5cb105abc63a036696bad86ce797aa7e552e1d725cac8ed176717000000b020ba3e6545385c86e2822172890d27f91da66e62143d964c9b893e63bc9441efb04a5bb81d88f4b69f571c70a10a763298220149a8ec656951138d9b64075c1b5b81c75fa6c5e962d2efdfab4412c2c7e52ae16ffefecabee456db7a87e41116591a1e5092425f5da6214e6246dec7e80435a232ae8d4db74becc4dab9df4e15a41ac7d1e4bcd4c3c67bb258ba0610a127886c23d26b6a0dd85747d8ab021966dd1489f0cd9d83adba97e308b09576c30000021c000000b00906ec850ebdab38e0fa2cc8e4c47a29e54b3228defc113c51307b99244697d08843641433c5f2b17ef60e55ad69985ca07d6f97cdde8decd37303f56b5455e033b7c5fa2d17a1d3fcbbeb051c34e30b84ce38f48db5ec939c12fa87ed684552b783b340f9a73489db021c4c292f45cc06803b4ba95ed4b1fb7f3c91f8f621a87cedd2530d589741a3036572dcd8f46718c63bf8c29ac28bf298c96951155ed0a817935776fa3080cc46fddd0dcc9a54000000b011a22c26d0728a513722c01a039b901aee79f718a47bd3a57d6d049b100b49d151eb49e94d81e16a0323c9097f65c4593676c558be49c0f95f57c9d6c3024808400b33b8f52a1293ffdbabab683c9f8424e6ac6da532f2010ba8442d5a4ba9116304fe9c4317d845a761db736fb1b36e1177c3da84c0ba9c613d5b69e6ded88e980d1da344204c3c398ffb4aba264bcc2fcfa98d37760592e7bcfb539fea65e53173b06bec63bd15a276c0466f0f0e96000000b00389d817415abd46c0781f3d37e29fb0843d2fbca756df4442d9c6eca7b80aa3e3b310ec628dc16f787ba483fc1b4655947c75c79ea1c12f514629322e526d409e74d80780854bdb3044844c022d1068c535e2e86a73f65c905ae415a04b1bf4df3eb92734a7813b2427532cb6fefdfe2a864a91e36b35bf5acae9d85d4f626865a6a06ae4f81f77507cdf8610a6da0b039086da7747c151411cffd9ff8e1f28201cd8a99321163beee809788e794f2a0000021c000000b0055e57594f0d047023ab83f29fec007651cbe24fd55932a8c8724b15848f277d920c839d5e41d5b51e1eadc106fb3ec591d8434e63c8b75245692726a6e6945eb802991cbcc7ce4d7e0a3ecbb5f1dd4a556d830e23b64b73e5217d19a911573196f1c0b93da64de6191c3e7c78a492132d69ec8801440e4a2574a3fcf76e940f8fee3cf68352cacebbd7e96094e9a7d315c0240239f7f1c755f9b6e3a6325b0eb7915c0cbefcf0a16995120edeb8bb3f000000b00a69cdfa8d4840481454956805729b38940eaaeedfaae744eefbd00129a676d4c8aa15e64f1deea57d54bed8da7df4ac17c142dd5317f9e20aa9dfb92a2d3fb170409c8c22420cbc3c306306b3293ce2a8922c356640fb239c24d7dd8f7b2783f22739f711de26397944433ef0bbd9c20bea225c49a31057ad0b6508b31dd78b4d199261c3d66f88fb2ce60cb1670b3203c48f6795fb399a7591942c8adf28190b80988dbc815033be2df2747c3eb5f1000000b009ee6f23e02a9b1e0629fb0d6432758e2dc6bb3c447377cee603335649770b275d3979a8dd9115e5ea689386d9c34443a5d5d85d00d80eed08e364c1aa79d87adb0926797f06af0fcc215b0bab35cde0c4e7c92b7b873b8387daeddce6b65cf1fca891469bfcb55fd528e401e6def08a1adace392c1a16aad54358c6e2278bb687430110033cf72ea7aafadf66e4525e17fee06f5ad0ed813c66c8465e67798e7347414e61ae2ecd2543a3601b7e2ab10000021c000000b0147393de1ff0005fc7e87c13559760eea5134e8bf7f4a819d16c1353d96219b43a1fa3a5a29fa7175d11238758a92b60363c7bc9ca5e35c04bab0ab4eb826b0b4ae64b0968c2c708a49efa6157ead43687359f6b82d42bb383beba16c774f0e628428d9a9de1d70cd41d9ddd9b3ef77a1ea6a11396f634b3f5f4b84865321ab260abade96e149bb03157c685beb7fb0521de2ce6a8027a9ec42913123f3b60f32d9cf349737f211fc754b1bee6836fa3000000b029bf8cff3565fa6905a50ea431945bb6c54b8de4a0c863953a352c0c6feb5fd06f20242c334c608e9a6caee90167363455cef540b967512cb224eb7e5f84ed2d46f6ff29fb1186423747fe4ba6ac827f6009c892b6d180a6fa984318a991ac82955a9b06a0ec6f070426a514843c6e1107759d0768f2957d03ee0cda8622cf6683052370827bd480b3b87eb28398a3e5204b9e5d9ef8d5cb0988a63650919c42a94b334f16916bf594e255aa09daad70000000b014b861cb6d50b2f83c505f5e1dc32c629389eab131dc05dc6f975168ad37d88d334930037e5a10a083476ebb5dd5051b7bee0b30e73c53fcec57066ce271af4447dd33af3b400a36aa1ea8172d9a99f7936c73a0b675c55f32081b83827ce67d7f8784b8a39340b18533898308164bd82c1150e665917761f6db14108c96c0280b668f77e7848572ef53b22fb6f0cc490dc1d5f19b026fd2ffbd1f7c3aa5fe3cafc856c73402555b84047a18c978085a0000021c000000b000f19f41012d96c0d493ae0cedf9276360dff5ef6af52f7223f8466c48f11ec677b6c5b0ad29f32b4877c9b0d8aea52ae50cc703890d983ab385ac92b0162d1aec6798d8d4399c377556d30fe6515d7ad082c62a772d2e3c2df12d564d01de5c393f923e0a4eea983869983ef79d69110287a2c3d4c4ee7bb097a32b32b1adb0705ea0f3f85b94dfd30e7394dff7877f07c4261f0b97268754c5930f63572b81711aad88de6776da3b9765ba1ee2e425000000b00801d8bc349ecbc4c8a2afcfd1dbe82c146d10bd85cce9d356fd759a00b9eb5a9b3981aa53ba2711ec867d94fe3f06b4ac5ba1e4269442cdff4c12a871f5c2b3c50102330e35f4c7bfbf523252a99f8e1033fa9d897a5fdc8b285a40d7796e0671323cdb794fe52463e104fc147197700a3579fab8d87fc447a855e2c7e709674247790c12d445882c0eccbe6225f21d172ee16bf60e93cbc8ddc02569de52496ce06b4f803ba8c249c9928aafe8258d000000b02711434fdc562f326505f397e88d3746d127925ec60c7c19ac265fb204664807d9279d29424dac6b2ff5650ef2d6e5f358e40f38417e119ada10e337b04a57690b26d693781e610188a2b626f0c31b8afb6ff16f2db9c6349de07144921f3645ac7f40f6e746566dda151a7e7ef4e25b23584244696f5e502b37149c2376407762caa523d3820801531a0e78f1114b2625ee68b261a59bac43b19701fcc62c587eb9642cafe072023cf37c76184c965d0000021c000000b0029df24b18f52f1e11f51d61b8fd78d35f4de4ce63fe6172208fea9c8b36109c28dffc50b586a3c9307609ee0ff40bfb01e51f627271f483b0ae4cf86c5f3e2b44c764a9c1871ce7362f4f45c93cb060821923be5f1a5d821925da819f59783d42bf4cde5e313aee7de3bae571041ca7275c32aeae36155d020a3a0796baf70b09ac972575942bad65bc02273810d4441ce4045e7895484038b21b050c7045530e138b8bbf8faffd87766be194d56de2000000b0153c546071c8bcf40cf685bd2c1f658f1ce96dc5f8551629d5841cd50e52785a068c803681c2be8a99e078032b03b33d72963c33db0da08f6dc174886edfdb060ec5eaf12ef5ad56371bbb165c7a44d18b6a54ee099ca8b4044f3ad8934e63715dea1a083315b50cd1f795085ae3123b0b4424d2def03ca3ddb3337403a8a6f595a42af2be8e5c4a1ed58643b799afc01fa7bab3670a57d28556603935888395e6d781bb34aa334ef5bba60f03f36bcb000000b02d0f2224217d7a2c2f2b8e91201539bf8220a660ee1cd7f35f5b9db997b1072611693b639d2b4d25b54489cfdff6205a3c31da3c7e44fcf8086901d4556f4eec26e150369cee5114bb27739c1d3eec28307324a8fc55d83bfe0fa9719efc5fda688a74179c4c6d9a85437c158d3c4fa32ac75d9af765bd644e7910b87800ce8b4e370a62b2707c9c7028b2f368a548e21ed8602962e841e811bcade4f9203cb8c80e13bd0276ca08a0e5c0143107d68700000fa400000168000000b003b5b6e95be4f0b8ca7438f447f9781296159102445988c95d4a730084d676f7c32909c610dc879569c8346fcc145f81a3f429dac60c46251ec3feab808d698d05aff0fe47d248d882c64aa565f18471867da5ca38f2666d42af96b3360de052884ae140fb405cee6eeef19d6ee8ea0510c8d8ecd4993ac145f12622e098144a9f67826210aa1667656eba933a69d32a0b5d5596c82636c7955bb5fd6692091b09b6fd0b8bb376bc1c42fcadaf1eae70000000b005a87ab6f5d23d7cc2bd7527b61af756f4befdf7c9c27deb355e4b78786ee040f757c53fc7ce45e4d0332480753d1a2f5115c34bef677ea480eb942278285c65f40a5eadc03136846d133ff3a61bd0271ef9c849edec5de20ddfa9f78b54ce0b7fbccae37bf8718c92a68eb61d5d564f1d290d13d63380de293378ebf73d3be249f99059fa0c88c07d8b24732fbd17c100afb0822a29db9971dd50734396239b64c0b8db9a4955740ef01e6afc2a7c4000000168000000b00b386512f30de488f36bc3f81cad7212c0fd1c6f66771587247b0d8ac5c816cd31ba75613272b7b499093d169c106e63a7749dabe30ac59f96fd526c2e672d5b3878dddf73219f3c61f8142cf3e07876c16d8d1047452cf62bf413782f862f354a4aa303568de8695688fc78b0adac7e26bb65679cda91dbc9131d1807b5f3f4a468d62ae96cba4fe63067d77ef2df201a1526cd36da33f93cb4db20e28399431579b4c8cf78b770fc82000205112b7d000000b00383e97aea78a55da248120b1f14d8d85c122383c9981e7e9f2615b237cd8de2c98037fbbc4109714b369ffcd9f4e22eab9d92b7cce83c6c473fce0d002dbce3252cebf688194be6f9529496997d693396757870273386401444732eb278fb52150a59286e3102bae6ee3c5b2ea8129d11b81a7eb404051af0d7c721eac814c278eec45b7f30ab49adbc21ef9d1339452a72f08685c16feb77e73cffd35c0b52b42db37a56be48e05009ed3c50dae41800000168000000b02a43d89c743cae040b1ffa378b956661dc96d8ff9338595c177b175273ef9facf02f859a8152d09150a887513d4e6ae6b52340c8c8fe76a4295f195a132cca980589a7468db0d3fc50d57a834409a49b3e94888f08ef3bee3f8963a6b509e51db3dd0e0c797db808060cd3c232dc053401d70c3fe0f0c77b94ffdff1fe30b82baf6f0af610918c19df5250882881b66f0c6173f2cac810fcc7264b33f44362029fe0339e9fdce5ec2be32179130df725000000b029b4e7f80e3c494f224ea3990e368bcfcb581de78b26416493679de2f4c9d4cf5e298057d9c10070388f18a14f701da420a1cbbaaef689f78fefe4c9ad7c00606cad388971946dd7adfd7ab69b02b59a707f49d6d98092cce1003c1afdba4b78380fc670c3a5a4a9999f20101a30ff3608faa9c813f040020c20ec25e7a337bd60d76456997069f15b54c7272a8d6f551fb5efcd2589afa2b5231625dd95fd263629e3469e16366eab053ce5aa76a7ce00000168000000b01f2e3f45637f1db5ad011a90e81025c36529c6256e6d60f2454a581736477e268941f905185e89113bbe5a4e81580982cf203a720897367180b1405c35332a84905c8a308644971883b26c067cab1c6ad6ff0ed3df2d34dc397e2e7b6ce47ecf414389f8dcfb68acb3d75ba008b6c1521ccd5202a6d698f8cb529df481be4fae922182825f022a56fea979e28afe2bf60d60029ae343a9069c28bc675933f81853a4970f11c92ac09e4cb67769e0bb51000000b01293b05b44221154ad90f21db2040a45418e1588af7dbf30bdd7b5e0db4241457e256e2c06113a222de1f9c3a61a0046bbe0f3e80bdd342d86c2c4f715313ca492bf635cb6f3e905bb17178d2e11aee936b59e20b4cc263ffb3b42ab5180f766f2b1bf7f47341a3fa281fda655d15177117c0f5fe6e3c2a0077a964e106d544fea3d7d4c38f86a24fa4c73aea792b8fd2d8aa5b748e5f418ec2e8bfaec56e1de4ff4531fdef0611b5b7784b7b3661bdb00000168000000b01bf607e112b89c71ceac4f8d1d13e7b2f70d1e9a6c33ae632090cf12e9bed7553a827f5533790a897d5bc620b2639eca5c11488ab8b421c5f0c6a12925de44ec5c4b9a610228d13d8ec1f75d1c4660d4982a8579c504920d2e1dd528331cfe57d6f6044a633aa2ede218d108f97ad7d0080356e36e87a947b728a0d1f8251adcdc6586e536e56c1185451ccaa9c7d4e70e0711cd004f945ee04ffe4fd14e24eceb254c1a3f9b35cfcc7d20220100b8c1000000b01dae2cf7d7f2d9b96e421cb44156b45dd157d9c25768ed2f26cf238b172a2eb0cdd7ffaa55ecb48160d2cef89786f93e3b37047c15c038ba660f5232e15056ee9a9affe707012a68166fd6a8012f1a5b8dded439a8093e7d5fc1ef151035c998976f27a07c43dfb4af6208212cda9dbe019f615c286b8c7b3ecf4ef3a401844f6a7bfabb92491ac17a9f66c29a4fba9a2251c0b3e310dbf478af02daf0624af884c21e5a2d7889babca9e61c5c8084f900000168000000b002d601856a21f08b2bd0fbd581e64672d24911ecc5ce467a4a872eb3473864cff93d18cf02cfd37e31433538955f17f12081f601c12d612f8c6617bed987f6df6773f0bdcd93b9754b9f0b9b309d963ddcdbdcc105b8c9ab47f6447d09f4e05921d4117b2b53735143152b3c3c78638521ee57c2e746d4677b63f44a9a9fd8bc69b5b0b39ad672a8cd6d973e63fdb0bf170bd38ede24da4342a1964d09bdfc02c2361e73c0b98b34edacf34720fc2fb5000000b02142c81270d9dfeecc8fcdf04e2230283c03fbbd394af5687f885fef7725dc82a0454db3e3db870c31ffa04818ff60260b5518026db48613e7e2632edbf6f0766250622437124bbf7924ab03b8c41907a56c9c7c4bf4f49ded79cf4b5d14d740a5488c73c54f6aeb74d2fc09568a5e802fdd8164aa2a1f436186c25494ed853dd477b8843111c66cb1228ea344105f1f0a5849018adcd470e391a3dcfd641ff284e072432ce4985bb9ef5bb99da43a8000000168000000b01f76c0965d3667351f12769a4dac55d9d0f01995ad181af40ad4d04bc69835968cae054630c9fbf6ca0dd8fcd311c3c8a679d0d58602746dfdd8d6f29c94ca5f164a9a3ca239dcf7689c15e55a087aa57da58ed60fd1992ccbe9fd69acd103218f9e7b74607b63480c2250c6bf3d401f2618489a30f1d6e4cb9329a02188818c51a1a3820ef5a67c511dcfa6b3cfa52a1268ea3684c8410904d77bc83179876c8b995c85bb7b8f6ae90d19a1c7f883a4000000b00d5bb0d095aa85f277738586cc46b03ddfc373722af0ea31f63dfde161bb685d8b51e786cc17ed131dc390634c1c7ba537b7b34018a82b993cb6af5c707a4655ace3750b6796364608ef63a4a1ed9286542df119b2141f5f51087c5b6932b4ee814dce8df16b5733d2e8a63422b80b400ea5818e5e875c5f9a687a80f425574f369b751614db1ca14260c260b1f9d62f27a6a97977998d883a9c179fba73be771735bcb5364ba5f5066544c82a094e1a00000168000000b02669ffe7d18dbe908763f7e74304143830dce000ddfc0eb03aef4ff481703b47893099dcf9d74a9fa772d1e783c3cb0f7ffe06e1931d4f970ce28aa78be14ea296b695aa13155fa082701cf0583450f70b6493568344f5c225dc0b35b62bb3cd4b9365106a2d6cc226d95e0536e0b916280ac4f5acf3b095c234e1385bd5a48c61a80e98b4e60299184608e270bd2be92532e8bebc80ff069a84e757ad5bbf476f610ea8472f43eeac30a306a43c339c000000b0170cf9344f92f0532dc8981240fba8614cd05db2c9538c0631d2de6ff28c7ae6da19f2d0f1117c6502a5054db78270a106fe42ec49181b13c1841b45f68c0775f39f652707d05c7ae73f80c3f3a763e9fe430e7f0e516ace39d7c96bb0e83b94b8dbb995cab1e2e49eeddc10c5bf2eea0a4b95af8d7341f365ad8099db65df753604b15b2946870e88966cba0ce82e50235908f911cc829aa55e0a9ccd1f22f3576fe7caff864351907eb8fc1092f60300000168000000b012c517d8ceafa0305248376c2bf69418f93f98bd2dbcc0703cc494d2dfba6d2408ec96bc41d890ee1cd1db924f210eafc6198c38d2248a959a333d8682ff5786bc2d5f4f162ff495419146f80c5eb8984cd1632a92e53bb19964da692eae9085388d5604e9ea50081ab1672858497d2300b633d5b4a9d8ac83f1c04fc5abeafd7e099ed8ccd54f3c48674ba418436400073fa2201481f520761474cf868137fc0e98efdf4baec41b5b9a9ca983849f1c000000b00a89d3f58b5bc966629858ecf6f6d1cbf43bac99adb39c73e79a382ecd17083f52528b90e74527bf207a39e8be764645587c1c6971339764ddc66dcd0fb1644791b208c92c35c1d2ff74cba1ac26d1e184a1062a24a70de57a8283a19f592a0736422b44a4e16157a72c4dd691a47a55300df23e23d13403727abf30890ede0ccc20d29dbc5623aa62a6ac9a235b9e7a043a48842019357ab8a6bd99653de20fdf92db41da012bc91429a7f7b2d7950900000168000000b02abb6b8562a2618680a9f90bc4aa920d10d94b6f46e78909bd82aefff659d5cf768b3814733e91ad97644d538a8f14721477e87d6acf8d738f8230b4f2fcf0bc6990cec981bf80e13ada39a930dc66f907432348ffaa766199a231dce328fad953553fa44d799fa99999c355725c3d7d105c05e60b8c509c0be37896532039b02fe86bf25e8ec5e1da55bd7eb43d4fcd0c56d4dfa4cbf747d6280853f0bc64442aa8adc248d2490975ed81df3340ebec000000b021d3f1fa48039890a05c3364c4171e5390f3f27dde675bd1c24dc741942a496c602ee980581a883d6a67a8fd33e83916fc3c709c408bed0141969b6217c5b7ebf05917cad6b69e929e264863a4d0b9ddafedb9581d072977fc50555958dcf8277504c71d2f2b12581b1c4644e590fe9e22551d0d463e1b584e48ea3dd2099196f1aa91c7271e5802cf03718f4aca5df71d09620fbf47a9276eb604f4f3b74cd66c6318e29d5122ff91f7f176133fdfcc00000168000000b00b1eb1f119e25542cb0432c2353b9d114405f283db19683d42e08b2acce4161e47ec8f1bd7a95c9ec10c5f9e80fb62f83bcae554f256b18b66113b5489160f0879b3faa3d4dcaef5e8c079a36f015d077bd5633b7a115477c8dbc780af24d05e67ad780b09a251048eef1102486dcbf0087bebda3a46ae837d3c297ccd28e8c8b5f7db0c74aaa0015a5f37398f5c76cb2ea977f50819de2085094af81d8dc2b19863e45462f811c9918c579d5fa93ebf000000b028842d9d0954501da2c97f4cf4dab43aa6758cea7fe4f3c45571a3e59979d38b8008943a3ec60df55db606049d0bab7229d8f1e7656b75bc5dac54c4c4e70931b76aba89299b63233d3a992b9c6d2cf077c254e8961cd661fafb0f61dd70cb55ecf6bfaf213439c06e5e288a58eb7a6e14bb3f99d6a18c0e2223099f54eaeccb5096934206612d55d9541cec1986429e2a850d6e5b0568f83d35a741a2a5cd664e0f39eaf0e0e3c7126365530ad68fba0000000000032dd0003800000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f73700000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f60200000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c11000000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d9000011000000021c000000b003e95a9cf8ca5fdcab170fe1e0630fc23bd07645aeae33a349df06b79a984f6c95b21b611c60e634815fe727d8a57224f6e2552efec3551a672d594ad8ea809135a19fcce10440e91590a9c9ca64bc928d900e56b6fde5d520acf756e9d958016e6cf91b42a2d92348832b3292d5da02278e72efb96e5ce2440d7bb5b8ad81c4039de06e4a63f6511d5dd62acfe6293428944a0d8a5b16c7c011391fac16cbe91fb153d0fc91b8d6ea2860805739a3be000000b00d2463f4fe0faf4ee9571c0c8deb88e050f7ef70b50656f5c65698532edcd30d85eff6a4154397f0419e3ff4bdd7d480fbb0720028558005d0e73ceaf5fab8b49f0e9270af56d983cfe99b8a3802ac636b05ce955886c45d6827ede4e873a7b21f9e5143e7d2008eecfb7c2d316164a91e924b1509ab606d05c4c4ce4b4b6d1fffbd374b887a3303bea58b603b593a8f1b503fb00f26b2fcfcca8a6d0ef8639dd4dce6011fb37a32e941a016a341ea9b000000b025fe765b9bd9df2bbe9935028ddb4cf66fae3e0879b6414adf03fbb2c17193fe35019fdab4da70378ef57e8ab7dbff11aa8823fc63edbb27b03fc0e9d3fa0e798640e69afc34816d8e69489fa893645ad30b1c6a5118e56a481bde7f55e566439d74a1834fcef8d5cc3b5dddf94a405e10d533f7a59bbc2127eed86639a1f9ae10c8445c89be96f8ae65a17356b69d9b18c81fc95ad422395db2053ad29a7d22de9da47a5a76d2712229f9cd938657f00000021c000000b00ff2eafdf65902b46fe89d74a37adaf5c5a0e967cc191dbb827fd59202e061f05110b8095561d1111315247d3ffbca26fbd9da7ce9e7fd1a6f7e08ccf8b00d838d98b0c214fece8349258215fc0fe204fafe51202ff574c81594c0748f1a7688d96f8306a64cc763c41686012bc35e6e28f39c8a4946a9d9138cecb5b567b6fde779bfab6840edf90102aa4d16e3b18f274ef1ec0e9d1f8516ef7729a890733cc380c6a1c89d66197f78a1d0686a05df000000b01d175b2ec8464d4903fd06dfc3833065a8b3270f2f84718427eb47e7f133ce1e7848bc1c2ad9c1383d572aaff7185030fd1a5316cc13d09a3c071bf08ec2613de409946ec47d180bb17e568193c42f34a57ad72cd53e41cb93572217347a6cb05ccc3995a42fccaca53d5c19600e8e7b07395197df9f9ae0b05468560796938212ceabb7163eb81a26a5be125d871aca222abb1334f1e45028514664c80d5a3340f216c31a1cb8aa3c4294a9fc7409b0000000b00ceb78f15d5f35322d8c9c274d491dcdfbc0d19b06aa0ae38420e8094e2529ff2ee7a23eb8344f35ccfbe6bd1b5a211620fe8305047b6a5d9a993718551a562666857df59c561414f12e4adf7ae27aa361f271d4f3131694c351d77848362e8a38c8da504f32293d4ec47523e457cf7f0a0265d8ef4a16a35b2967835115f2015d2d46b5d9e64bed7c00f8a89cd43f8d25a96427e25e50acca21b31c7e3093b726023ee53eb5378834cfa9d292eb9aa70000021c000000b02c83653f23a17055701e3d12f83473498d8a23a23be83ef35eef5989315954fe53eef6d5a20f725993b363bf8b7537aa19733d463db41e04993fac5e7ccc5410e4c0a95b6fc4ca56add5b83b9bdc52ca2b18c567be34398a5f4499d96c3a7a4e8bdafa2728818bd4fb5752cb3e37f0602c1234b182aafd043c36b1fcd904f45e68d65107dc0433faaef8d98a8bf021690aba0de7049c5dbeb729f0bd73cea18fc134c59a0a98908718fe967d9a0f5c14000000b01e167a97c0912de201cb4ebf83b10a6e7a8575a6ef7324ad66d31dc961e1abe40ac90adcd306bc85802cde56f74d1a8df59ec1b613af9f076a2924bc18948e1dcae49708f62893c7f49770290627b1ce0f66d0b6804e17c7d1d1a3effd9948bf2a23970633f6db2308230c5aef10be20014617b7d2d7bd1a3dd872edeaf96285deb27b8a4023f289388e21dcc7410de426c7b3fecf78f0b1607dcd80f5560b19ba22bf592a1bdd2112406dc28b72219c000000b00f578bae9d3973159dac265b0f2660708cb4eb5475bfc2e05b121fbea2d9be876fd64001f9ba1225bc2e741f99cf32c61810cadc1392be97c6f7394b5135d5d6fa2852014ecf9e02458827317bf03111569253bd5f7c45f4a126bc41923e9dd2c4824a388f9e36b20ab368bad38b67522c0459be0270c1500cdb9b48c2686df145e26bf44f85b2c546d7ed4933711ffa08715872290046ea0e398039f81fc0db36e3f91a8e309b37a1aa3889198cf5ce0000021c000000b016ea08ea25418a350dcd3dd9ed812be617000ba67f4954ad0ce84634921354c534c22f4f22b1a0b88b0cfa2b233336a823c84d2cb7180434254aaf6cd9b0e6b7a50aaa7c0bdd6ad57842bcfae1d66bb6ea082cbeaa075f8025d121e385f573334817737186b656b5ce895864617fdd6c24d4855b80cc99e64885c051022ae17a9a763a43627b2d6964cf5be0296dc3ef222968d6f2d5d0ddc32e7f0e0e093d215e02515a1bd19d194c4ced8a65a35be6000000b01ce9e100da879d70d46d11c1459c37438fdae1e0ebdff9aa451de9b2faf0232682ece50d2d78af75e82c3da37d9093c7ddd8d7b4dc00f094f9fb195417e9b5b6c30121ce968da1a336ad6d4dc3a62102fec4098a4ce38961cbe2ad4dfdd106c0737f185d4e5bfddb2765b43ece806c9807d8bc0345533c953b2852f08bf038043e99fda480864656c4ed02f85d4abb190c39c6d2aae5655b87734a0e954595c97aadb496871a0b5226138fa457659ddf000000b01443f2f88643441222e0d9e86c19cb8ea0bf383dbab5c574cd434d668855992df028e71aae8cc5ba0d8601eb82e66714ab6e0517edf311071c6b53f361990874b1d325a6059ab37041bf157ade36364d824b31d462234317b514c572d4d883beffddce3b1edce736b206477f1542e5c1200a35321431346e27a8af773680a66181fc69538b32bd5c14db241b53c1af092a615efdb343365ff288d8689f4604ae0f767aaf1e7404c694882bff32de7fbe0000021c000000b02304ab67206632b8faa908f0499a7af0254ecbb8125e6c48fa5b529ebf62677eb8b0c4a9466014995c0cf992905e83f68232da0aba995b181e123544a2803cd2690651ba2a40f2df4142fe379b67a678a8993075e5877b403c1fd4f618db1e8b4b9a13f3f250e5e400077d5f0113f9c814ffe625306dc9d55dc4d0dc3024327fcef5b2b2493fec2d716e3dc41005fc350f1b9dcfaf1c809e220326c39dfed4cfc438b40adebac3e7700b224c83f9082b000000b02d4bd1ae390ca098858e2c4c228a1abe3b307f9618717dad4ce9dc3150d1cf5076f6b9626ca2e2666b8b2d5a50f71f8d7ca01e8d91b0720a4e9e04912d5c48a7a286f4492f5e48df749e36355b42110b1a8edea8846d0ea58e59f39d6939c537a0887aa6ebb5bb2377e8b17ea47ca9c21bb9f0215d5d6487dd91ec914be34a2fb2cb98e301f72b6c33455e6a4b9c0c4624c8b2969e61e430b722fc58a41288c47cb66103d8d4e81ee860d42bb971bda0000000b025e938ff7bbec7113c341bbc3c4216c7c5fe4d4dd2ecaae6b5fa7bd7165380a362aff368fa0f3954b3150d6980c0f5df534571e1d656b279e6cf2a2cac2488779f6fc8c1786e26ec1fd11e8df774f879e841ed5e9ea1d8b0a2ad8bf982e13e1d24e52edcd4b4400288f91aa5e151fc1f09ef8da915d5f3c5c605276a9ba35394ee838417c3b28016db42f52a97c0d5151b1e4b3a879d4eb8bf1fb9a470d0e06f4e9b5a8df1ed83bdc7f9bccdc5d36bae0000021c000000b02937af8719705bd20dce4a6182b2cf4139e430d591cd051403127e2576fbd5d943681e5fe288e06b009c8d450b7c34713bb07fa3b83973a310522443440ff8fcd7f98ecc792fa033eb334d7a13b8d2ba95b0e967cc15d12dda7eefbbae141cb0665e289162dfe8f806dd7c5f7a4d38fb11c6d3d5fca0e5552cf6d8cc1dd02f4c308b4e32a34639afd909bfe6cd3227e801e84263c09b4a3c1dbe1026320700895325493dbd0b17b0a46d0006d11c67d2000000b014a45584db6ba03095c1c82c302a71112204d1bb3b9ad6f26f673e974f6ce709a9db393436fd1500d486fc6668475a42160d614fba68720cf9754b49a62cee64acd74bf58998491cbb605b9d56de3e3b1d2d0b3d081825fb6ab0de2c80714af2c099d80f745943c0d226cdf33b16f44a279a9de9bf5551559d54a9c2b44a3ebb8e542e0ae0327ae6a20cec3c56c7f2e529a9850c252508bb51d4510da8773930dfe0e1322f9ed3b8c8fb1bf76a2916ac000000b006240f1340c9f222e96acf82662ba0aeb3f80d4bc388dac9411b7a48c81e8237e7fb919514826c9b16a3409672b94177e4e4d0d507ab933e92d0925e068e25f1abfde0fa5f0be01796c6ec8489b8f1d5487a5ec9c9b1068138ee4e937db9c4a16608669066ac6d01571de4712bcb9e5e1d0a355c2b4df1e44d4007108a814488c6c0d43397779a3725d7a473631be9602a629ca7f8ca6fdf0c81058b5e57ba5ab1ff812faa22bd82ec77e9b623f768070000021c000000b0022d98f131315303701a65f6ce051cf714df603d9cc411892ae24b5ad5a1d46c63ca46683e6365a604eb3b8cdc2804fc3980a843bb820cfe26be8305c8619fd869fc1d7633db8d2ac4796918e49ed6eb61cfee838210b584ff6326c6ba7301148adcaad16432619b39b282a7c172046009dc191320a494e2855b8d6a876d7ba6e0361c6d62740dbc76f7e5b9c66a0eb91e3a267783023f5e67aa3442e98ff8eb30890495e6db2c59e99884ddea998b85000000b003fa3f9cc89caeccdbad0ca77fee8a06aac832b3d0a0a327f3d40319ee583927cd94d8694912a1d39ff552de0a83e9f97d71102617cf1f5c6ae85c38fb35259acd58de6da2c1a7824f7ba70ea3dbed410db1f7755bc203119e78cacf6c38d5406491cdc4f22319202d9df6e97db6475b0da6b05c812d9a3a5231107e0796bec38a6945acceaaadaa952b55de828d281d0d9c48709c9b698236e5ea4d30444a8486bcec26e5b9c0e9eb783f843c3631fa000000b011b507a70c8df440ef793c71d5b5ab2aee0d85c52f62979694f26a692fcd3584f21670a5dc7501d2028294776fa274e1951ccbde59734ed985134dc57c99d8125fe1fe623e2697284ac1e58f4c71b7e6e9e3a857a69d623e1f5c390fb4b467b68fe36ceb5c74d0e595181c5e9a4725a023227af48b08cba005068779da47e0a3b8730a92631427cc687deae82f71c1d9250111cd6e5805b9b3e96be59ff1ec7fadbb9be938d7b15406c3675765bdc7650000021c000000b018df23cab4f84abd833f329c68f264f251c505d171d5a88810ebd46e0324a299f707d518c35dbfa42e1ccbf0b3af3f24d404ed72bbb09ec9bc04066e3c0fa72ee8db8f51812b8a6c668bcaadd322ceec0b95571ed5b824cc7d462632cd12bd717da32766df348cb0aae2e8c6670e6db90350c70d38979e44d3332493986e9ff73f20fd2157bbdea67cd768c3f96413b918fef040b0702e65f31aecfd0aaf076e9fe00cb7ac60a49a89262552fe63f330000000b028da095f31c98b3b46ad8470ee9c045b9b76940fc335f0d7ee7c30fa0eeffff7ecc184fbb0cc77133badd9a7a83aa8674a6b74bf387ae721dd135ea9678920efd2d6591b0e9cd46316b15d2b8bece928906019c4d575e8f024a06db38d86bcb58fbbe580af08785f88094692af2380210bc2dd80893d7b0c898c5834dcc44b91639a806cafa5495814cc4548d294ccd11c244b2310ab614dbc515cee43425db68deba9526439bb6e3eb9793720ae9db4000000b008c535939e473299ac5a380856f2018964cef4822982907f515fe614046a7edc9da038987efb34b5234efa906abe469a5e3cfc0c6ec5721d7526b60ed2a83802f939552b9ac6cfdc744f39d0f42969658b9381c1a91b786b1abb031ebca0498218b53277d48abb814ab62fd668b0407320f21c2672bc14f6b658dcab4ff5c3048020e73cccfe0e8e76c1779366623d0213d74af61cdd3bbaa5596a2ebd930b1cd3f492b60c3d0379060ff26cb471d29a00000fa400000168000000b00b4d2f8ccee8d66c490091d31c0841ffe043ce169d5ffd83a7a301f809b94d812a46c4410fdf3a3ce5344bd8af9b90696615809a2b7f644a9a02237a4040a109c00575677990c10322fa50c4c2db900cec59dc7c59067b5f2aa458236bd7ee4d0cd3f51b0f247ad585f89f071884c6b90ebf9a7235f40f3d691796a413bc3c898015adb1602dd731b5716a3788cd7c1e18919dc6421623b478b937b5609b4c129253f0303d3c753645d8cb4e6e19b736000000b005f8fc54f413efab84f50deffa721e681ce0da83c4dd1f4273aabb1ed8bc36201c61b570c350caa7c2e3c104119aab5ea5fd6fc0dccd8b323d4f6bf29a63ed5f8cc8908c690ac5accdaa1e0636a24d94763e57c99735ce6be036062c67c845c80177b297fc8c40eb98cbc561627d4f8f2e173c638cfe9bb48bf6c9a106d735f135ac8c559de05a85119be5ab9c6040bf0817260baa5f419b67ccdf873427dab4583922924e7e006ca9d1ff4e8e0205bd00000168000000b02c45ab1cc189fc946778522fd6401fc4562e67e47576477bca5c4ec888813590b68a9bad19179dcfdbd8b15e47670599523e214dd87bacdb7a2ee18ba5307f1b7d7e1419e9325e0bb6f604fa18e39085e68be45d805c0b6608b6d12099d987dc3ff9dc6cb57ff0b61a2721900e72e6982eb793e566ff2309d21c5e3df15328079680b50f62b7b76ebffa487f9f75bab50f39af1339a40636324ca8db599464b6a098711b27bd0b1948f2cbcdfdd833c5000000b02c2c24e5409b1f1546518fe876a2a345cc6365fbeb329cd65c2695831cb34eaf24e634a0516927560937477df57161bcb9c30511640d5e1b57810baaf6560c553ae7e846d1ede5d7f42cb77b5e54b4d0b1bb04724a4e773e48609d092311458d4dcff3843449c2ceaabc34fdd86c2dc5304523518bf4a2ffa961b1ae1f68a1291bd967b92e25fc429ede9e948e5390c900f3acb83aea331ed884bea794acc27f1b039e83451da3528e0ae260da684e0500000168000000b017c0128200884dbc8f0b354f67e07825e738e4fa65e49d41d9abf1bb3fb492cbd41645c46505338aa60a2b6fce276aca2846d39f8439f37beba9b33fd2fba6cf85ef833da528066fd00dcdba5b42387cf256747a2dc3338ec5f76050cf5898d861135bfd91b79553831f64e324286c250d1949e39ddce5206aaec843bfd69f19f2b96ec3fa5f3dd795b4628428030952160a68d2211a7dfbbb2d2f97a0750f95e7dbb20e04bb0f6bb7538fa7ba669ea2000000b01816898e3748c02fe16d9b1f579ac8fd5b37e5bfe9246f550616d200da1143592e99784cfb7531819b7a2f402b6e3cc6d32e842abe1d7852d2b5526fb61c9a8a3852cff66b21ba89bb0c23f65e51c090359c8772da094426e8613dd38d38fa2ef8894aafacd5961d21d00039a52068f005b7b40a5ea5e92d2a41b1dfb66eabe905d5ac40875054daa24b70703aadb2420fbf29cd156d67037c7de16109f3b55b711f8e584d0612bf40036122279e9c7c00000168000000b022e7aa222bd39e4f39259c7a212e6a33182db34e592e7706a1603eb285d1a09620a2902cbb4e028787111e4412b71c522d1569980d6c7070ee498390631dc2ed59340400561eb54c3eb1fd8e54be980f9275ccf9e5b24b61e630519789a4c748f64c076718d9a849ffa2db595b35343f2d7cfd19caa23b5a6cf4043fd242ac89b13961e05f9070c60cf6961c8ed053f90195b6adb8b653e709fa698c6ab63d642d77069b21e0b02ed49e207de0a8ea0f000000b00c224866f8e1095ee441a588a3c17a82857b3c1576b13f0fa4a63fe8019c0eba1179a2b38766032bab860e555ac81371ae39905bbf7574cd8dc3617aea4283e668196c13c65b2d03aa21cbb28d24bd10d699ee025e61a4927f6785191a643d075267658d986c57831d360858a721fd3e30476c9351096f52ffd9555db1d7835435b528db22462fe859b76d505fae97d913701876fb57134df46eaa1a0961d74213da42a1a3f20c0528bbc8d6294fe03f00000168000000b0021780f5f93bcc6b06547f0064e3626fef28a98966e246aebe1bd8d5688478a0910403ecf46f211f79dfc429ef75efe09368c50bd32867b18a8b6b85baa48a7d973a579a273d4253e7264c1a32bcf235818ce7802d60ed6c2f47a13b98b72a3de6e56558f2373a6b042dfa981c8d99e52238b521623d585479f7fc1b44fe56d6ae3700fe405f36d0eeaed76ea0f4cf5b19ba1662e74f623f33136a4fad3d23b85da7be3285dec4d07928768868f7c1a1000000b002ab16423d5f1bdafd0245db8f5c9386dbbf15a2b5ac6750b89e0ea25a26452d814fbabbc5aee98f47e924eb4ef7709b4f03970cda45ee0d239795e63a860a8aea3eae4d88204f6f9d2015ab0a74f2ba6c6fb6890aac1bccca10ac3be0db57025321ba12ac931ff808150158a9c93550185b6d02b2b6ee77e04ac68724120a8facf526b023191cad086401ded9c662a60914cf5430bf8d32965ab7bdf0487ccafbe7a66d8e8685ea080951f79142f68e00000168000000b015bdf8b9355450e4ff3111fc4dd8a6ddfa0b7b323288a79083e86cea9827fac18c655632d896e0afee18c91006b84e04a0388615202025b3f3e1bec6252544f036f2a2daaf0fcfc23baa82d9b1583654ddf5cd897ffd3d392bee82993e75d5ee006c4df7376efccd6286e77936d2abfc2bd3354922fd1b1fa23dbe29809cf48efba1e0f179b5ee2b95c6cc5512869fc31f4ae5365c3306615c49c9993b7d1867717273b29c10dc1d447190938e113321000000b00c92c9d6de62297181eb92396d10e0342f2671c2a16a861551abeaffe610fe22efc4835bbee3ba409ce9d8494cc0dd6d9fc7a53e28b543a1eb7b84f30118eaf9e8b8c92b7676f7f1841c9cdb8b370c59b82ab70d49b4340260dbf81103b9f890704723a42ee76c841b3fcc0fe50304ca1c8a1eb93c8c8001ea95c9df498e0ea97bb64a4917d8d794b3ec3a010cd08e5502a8049dd787f4025edfdc249ef987ab543f8780bfca44d0043ddc7296f536bf00000168000000b015e6fedefaea35d497cf3cf34dfa733643a847a6290c0a01be67271d987863d061ef7a616ff56064f7e7f03b5e88b1c1e931db87f93619b4d5db67773e305491816ee8fc36d2f98668da85f4195ba54437f0c516a44206e3fd58daf6ec2ad8d54fad31d06a94cdf9fd605fa210ced00a1ddf9e462f4860b0faeb0f563589609a5f4f4d56d50b91de962b7ae0f84751df2bf7a5275bf649dc89abfd35f39ce52f6edee6d1877769a672bb584510639784000000b01e318044ca31f5ef762e9b87339e1d9c33c7c992242eb036d43bb0936731e0a8729cf8f2652509152e8cb7383abd530cb08ae014878712ba554493d456d5c74400ab0b0e585bc425f8e0991a64f9767f8ee156877c610b166992a77839fb1722936f616fb0ab0d674e8d301c1930a59818b4ddb88f319944fa101e8ff0c8fdd3e6ec48737166c18ea766bed29ec4218e1b56c3013b2e9a1e500cf76e586ef1921c4b21cb064fb21cbc70a06a5ad9284500000168000000b0162d8d1d6fa725c69056962921e698480800a4bd0dbda91a8b326650ef664c853a3080b8fa61b454e6b283720e1af5ae6d2b39cafbcaa9f8eb2ea91da2d5567268dc5b59917375a94c520e44aba1a49100d94d8049f30428f2d393c8c84fb3602f71e08672343ce895cfe0390da06f170cfb6b2111b482510ea79f15ce46200e54bb7a1066aeaefcabd3d67835ad3af0269359dcfef55ef3faef3e71e857a848841cb319ccaa2100d248bfe529872503000000b001977c1349cd25dccf8538bc000d324d0b18e5e845705a2ecc64cf09a1644ac0c0149d466af1f3fabb36b80d079bf115bff42bbfb7501a2cbc9fb010208e4e809b00e1b78f74e3f07a839ea05ca277ce587ee4c60c725d53868a49baa6fc717a08dc6a93f64173a848ac875a5cacb3dd2ebb9824ecf5698ec1f023b6629e1cbaa9886e6d9f0f0a0efabf72e89710480404b6343c4d4d9521e309c8829f3607c3f65052193e24f3d337774655fa601bd800000168000000b01761719a362c3872225fa821fca6f1665de88b9487cd43e90b4f4648a494e7192dc1025c8e04b02e22be3ba131bc0c49cf99704d0c0fccc0a6a01efca4f9bb911a6f1e6ba5b3848d7d9ae436f696ea2c12d40afe908dfb0cb79b590de85c3920cd89f1d980b4a893c4de5c9eea04db592081e1180641a82cc4c8f9a4751231643802dfbc1eeff39dc792b7753f396b5c23b4e853096bcaeaf35a0ce3f7ce0aa6de6b99bace0141d517233548439c5f71000000b0160492365f6c69d43709e85b760f0ff3824fefd5a250d7c661ee7fb9ab7ad5344e17ce793f7bd369eb8359d9ba5a7460232d555e69862b8f53cfd6592cd0251ea48ecd1e2694eaa55fc7a9509cd0f0c56a381369a53470aeaafa227c75bff4007cf3984d64a5ca4cb3e80974d4fade4907785c844331415e743252e71d877810fb7a83a623cbdf59ffde0aeefc59e05e1937613f55aa906dd7bb9c52b0d6e6891c066ce81cbbb858f14eeb9133ec5d2200000168000000b00b5fd88695fe7d0ec01022ec43a2f82ea7cda127cae32861c3beda978f18257f318c4ec2f049ae5f8c31d476d2114c29f3c8062270e752112207ff036d85c9af54e367c54dec2c67791eeba71d7069ff29e6a13ee6cae6d3b355c208be03c698f6c08119e0fc43993dedb1c8accef12d2d10d6d8ac4e051c5397ac480dce1cf47567635e26435573b768adfd48909c042ca0d7edd825bfd27821531e07899dc6eb859ef6a72ee24c4e017bd004588747000000b027aa8657bec2529c6f7ff29e7d2b89bfe7a98792ff48eff239c0ab4295ed110af636f5cfb7fbca2d9bbc85fa4c47b04717f2de9b8eb6b2eed5d8dfc1eefcfeb9f9aef54f89e2aba2d61cd2c06d9782819398212da988565d7903a1693a65284750d746770f9709bdc3b954ae081fe0722a167af9f3adf8636ad0c0e0653ba9ad29f00b167e0abec1f563468313f67df3028dc4c37bdbc19746af3a29643a76ef0688f73f2d5ad9f6fd416f703f704cb800000168000000b02f374509df04c2268abe808ad4271a48a92c278144308dd5d57221412e429401c316fdfc2789cc78db9a060fd7825d8e68d37241edd4958e641eaa35b6798c22d38a2a1f6fd1dc66f200ed5030929d4d4bb4ceee20ed7acf3720a1f838ccd3141dde0549d105b2b70f5c451ecf534e1b0a236da99571e842885dc5dd764726d0852170bd75700b68878fc888cde9cc1b00c607c773ba461feb61a6e7cb787874b1521d17304d6901644e282b04f0260a000000b0290851bb6aa44d6d40aa3b605931c55e0e842a386f03ce421055679ad9a31f77cdda59ed45adef420be97fb7a888b3bf0ccae4538a0bb9d62e6f92efd435b95736efa4e193e2edcb14d4066850fc984eaafd811eaac01f7117413c9ae1c92a5a0d2d8153d41742242a7c6888844d920c066159ba202315edfd919db507fc9b335ab46870823f95845a796a79ddb63943271551e87a0d4400e626095fe345437a75ced8ce8e74cc35a43924b8c8db90a50000000000032dd000380000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f00000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000000000231000000000000000000000000000000000000000000000000000000000000023200000000000000000000000000000000000000000000000000000000000002330000000000000000000000000000000000000000000000000000000000000234000000000000000000000000000000000000000000000000000000000000023500000000000000000000000000000000000000000000000000000000000002360000000000000000000000000000000000000000000000000000000000000237370000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f00000000000000000000000000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000331000000000000000000000000000000000000000000000000000000000000033200000000000000000000000000000000000000000000000000000000000003330000000000000000000000000000000000000000000000000000000000000334000000000000000000000000000000000000000000000000000000000000033500000000000000000000000000000000000000000000000000000000000003360200000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f0000000000000000000000000000000000000000000000000000000000000619000011000000021c000000b0298cb8b166257a524a514e08696e0cb7699a010e58b3e549b029f93620559017d8e60862073022636a6ca11541d835734ac495fce832cc09c56b9f9d23bf43466317e5093e88ae61c340432f2c4493df0119c405f1d4dff237db38021227fe3b80730e14a52c2dae519974798dcde35322700f0d406eb8c3dbb0974b983edaee3c5026b27984e86840673080e906d8e32a2d9984b3b36460b548a72e5869a590cff0b6f66404040fac184faaea73db36000000b02e852aa7110ed9a657f7b69c1958cf6a34ea34e70467a950d6ad869ad6704d5b0c5b04ee399d5eb7c4ce15ccbeef1f744222b29eeb1ef2694095309f7ea0ee35c13e263ebd970f152e0add7cb887da2fb841ca52fa98198ab6121f0e86cef0d5bd4aead0593771149fcd432d1fa42159018a206fccfa2c8e2c0ef894e04b2e34fee30302a7e0fc7a2a942a6f250a84470c613e09f3123f92f4cdb78a884df43d11396cd9d4573b019b0102a096cf3542000000b021af4bba86865faeeb6003247269f21e396af4866135b5f713cdc894130e3e8e9aab5429506ae70a11c3768605074027f0da6fb123952fac742ac2ae4dbf34c8197d00b6d0b126440c449492965935cfb69ec40c340b0c7c20282db2c5e104b8bd1025935e6a36f52ddf7f75198b98b20e44185b1dddd5213ee8d6d804eb5cd1f91445fdd02f6f776599d1eb2fb1f61d14e44b0edb2cc5c20459d5c58e0cb7a932b0ff1202ea1b5628f7e31354b7a8360000021c000000b003c840cb72319214ac2133834ae6cec2fbea3b599d068e505797f296cf6dfb9fdb6972c04355d2bdef319fa7ae46581bf6c092e5dce14dda369a734370fbc87c2c1e5f305f508ad7006337d7d7668de0aae95bbb7d3a6708b9dd24514e4dd9cbcff59ecbb87332d1d805f970d6062a85028be0ab055e870f30913c839491e4417c73082b400aab22391b667ba742a7aa2c16255406e7c07c360a7b47a3c2bf2c20a15972b01e13e5f7181666cb333122000000b010ef58652b22b5c86ebcc85a03239e2332a9f63bd62fa5ba002f47e40e49ebaee581bebf0983ab712af761e2f3565ffba045d91a0af550cab3888ea402b0d65c567bcd471eae7263dcc50adf6b3826937cabfdebdaa2f50d4222a1656c98c07185193f72b68e304ba77c1bc7d3ef615528364e8a57dafc274391657c7672f90ec704cc741d53ad5b95103c31fb9cfc15238bc37cf49e686f5dcd157d6819673fe2092054040ee24e8047d7428e80a7cc000000b015202153bb8ec2cf78e85444d5bd7eb07a1be3d5f7bf2fde9f49fe8ab6b73569d0e27873220dd90c693ba6d6de74493926ac2893000ecd29e2c097da382ea6e3a8530a846696e13941727e6d5a5512e6d36903e8deb05e455d3e3452778112f0d9e7631cc761bc8684737539e303b855070dd301fd32d0c0458149bd285c4c6720d886539065a099ee0cce2ce7ff9bd521ba18955fc4eee7cba818235079077c08e3d95cfcb4c1991287ef008d7f54dd0000021c000000b01129f4ef0982536d9d42fb8974ba46f507666eb1f37dfafd76f351b6a65636369bd265a7b7642ab01ed46b290ee2820ba7d6aa6a3d1d6cbc0d62fa5d66979963b4fb8794ff809b87a3be8e08a4262d061909404d6ccfa6cb3b004b91b5f802eee412fda586c5935c34c05a9f0f03d0ab01f1998119a603f5dcb6ebb474ce40f272874abb1c98a170107d8db4005f03432b9bec2f645b4d56f20997ca7bbf908182788d7ef23630d27f953c6bf5177f2a000000b027d2eaddd5d24691bbc8996b03926ad89f43f2d0cdb49167ece8c0422320a89da7e49c147622da070173697add6b09cb8537356aa2ee034ef4dceb1145fe5135488853d95696652f6b1ba17dc94f3234ec44f1c6f8191adc54c299b714fcc26b589652fa1c8f9814b0bdcba3b078903d22b36afbaf2dbd011cfbf3789db23b02bbc765f101fe8000b54811ebf262ee0319217abf749a4923d989e19eb6f874babd694a7f347bc9dcc8c5dba4a15a2ed3000000b0275ac09c7982c083c13e9083c9583dc5e5179d7fdef53495fff2a0c4e74f97cc103b9393e6c1ee95c9486ce9a6265311573b643296f57cdb8e598f4841bacbe6ef7671d64f20b68cf8abf502643f2e75da26b41e414594d872061dd27c11d6144c63f7a5ed915ec6c9364e45c70754590f367b02944515a5e9f4b63398911c4fa3820daff087f846508931b48e856d4519f97c9bb90cf82a620b2538514b2fe1fe8f78ac7005500e9cdc68437bfe05870000021c000000b02c66f4846831d150f670a8e21da5396a691e42c2be9989cf8fa30f9cb60aee8facb7019f60bef807e5715532171ac7b621f596aa3f4d0921b388afed78ffbc3414d9d1f6536088b9432a7730aa644cf68464756b24bc24cccae85ae1d90777602f9b7521642afa1c525631a07b7cf4080f0a2fe4d473e5ff0cce0ce050f5997bd886195111ac5db260090e3f92e3f4a52aa0d48805c861d137d6fa5136d3148fdd961927649a3f211d7d150fef86bfbe000000b000338e3e21321673474e6d60b99e1950ead7aa462938f77fd6b75498395e8cb4e5c092e655a84ee3126129d6e5777cc32c08562e23cf332e7109b1b44eb54e683cbe55b25df95826971fa804c33fd69f07c8d255d57f3eaf5e49874a53fe67eafa42811ba26d13b3ac3720be9a0e6f400e751c932a16b839bd58d1b08106894da43996f8e865a644d148c221489fb69505503807070ef8f295e1f90e6cab449af57546dd49d67fa43614d5c0fb03b559000000b0013994a6ebb24e2d9cd29d5078945e19f1e3c9efef14008185d42eb214c68aa524ad165f3cde4d882cad6451b2857ea34e31c0be31b3e0077e1399a12ac081d73f8ca711614fb5c858f45ebcb0380cdb892c487f4188633baa1a00df7c1fd312b4824c67c03040f20563d8be33c102f90430f1430d3f15698b5f6ffa54a2516ffceb8632a5aaaf3e3118bacb76dc11402ef82b6f6f7971227d9c30ffef410ebec6af7225c1a85de3f4c78eea4a12d6aa0000021c000000b028802b5b19744fb281dfb8be9bbf1f6dd4c2a88eae79d0ff60a61467294ea0c7e9055f3cca245d490b279b7688431deedcd40803f6f8cc33296cb8ccea6b2040c376e96866a3a009ceb970d90d2346cc65831cfc22e0a320c1ccc211ef52a04b3c06d95849f172b2638710e0b9bbbeec2f0feb3c2dffd1f2acd9cc8d7a71214aa1cf8527e345ed62be12985f48c71f950974add62b62fed4df362fe12d35284e568186b4d6b348770b75004975480383000000b0114c0569ca215a19845adcb2c764357dbad49fd686664a07689f406d4a5527b2227170fc40833c703a82d36a97fcab37e6fd56d38f752237aec9c31f8ffbf0249e033b4167dfa1451fb0f33b7e9a1155054d2fa8dcc85c0dcb362a3d68599940f8ef3ade5a096b6c2742527f9dc2a97208b2823d31239e8068c95205eb3a5218707d428567edd0484aa6f6f817ad8e6d0b57d5a595383c17ab83b945cf28d8e7c4a6ef2353c78aad5437baffbb4990e3000000b015c32b05115aed597fc1a9e3792283df5bfe9ebbcd3e3fb543375235893bc7feeb306286f6a35b5d37fa069b307325e2fcd3e16b737d9fc37a0ba4c2b642453f22194ba344f8deb9c0090bfc92794c24ee32a27d09c5c5e35d78e1802a8f1c74f3f7a27d53af867ccc16c83660631b6b00b27ab6851d4919f5c2f579db4977ffc75781e2f9dcdadd14dfd1789ccb1149046be3596e9951faa59fce9946b1750e0a8cd3ff4514adac314fedf18c3cd0930000021c000000b0175744cba9680251e77ebc2ac9010941fc127a133aa39c38b189eb7d30a748c7e35d1c1092fc4b4fff7365e4f6ea0bea08220b3fe608d9331ac4f8e84847a294d90adfc35186d5aec2ee031065e6e12bd4485c477aff6141cbf9dcb4de1444ddf6513c039c6e3a6480dddccb11771b0f20bea632dda6531562bdf51e2093e6ff8bc5c852c838f76284a40bfbdc53d8a62bdcd006127e4c9861cec3322335711c84fd93bfdc31a376a7c34600ff34c232000000b014b6f70c289bd0e1ca1690b9f616e570b2f5b691088350719d0a2885fa48b3e848fee25afda9e349d0157402cc38ed69599a040262ab33b4716233edc2715c758faa2eea4a08240158b1afe0c137611541f27c13bddbf773be2e9fc67aac19f48478712ffadae8a7e68fd14e7e044cc9159712d3401985312cd696e24dd9804754f691c3db6172c1998480c76593474c08a3f09a662b37edfeeea3ae6feefd29fa567de2a85eef63cdce5384932825d3000000b026e18aa056235f9349f96c9075ba42092796ac8ae9fa827fb609d204dcf350f310e7ae1c1c490cab6acf14ef482f60d3ef87321db6dc608a0c4d822561272123105e388244665a8beffe05ac62826a790254c9cdc086a75c121e5dd4c15a3d0ad6853ef4b0638b98139d44aeffc963df1f6f134cbf3957f988888796cd8741d8ab7a4e18029094644e99b6e1a8eb418625d02202e16b849e5d43b63f9dc0aaa0beb958de13873fb1d2fa3b883032d0df0000021c000000b022486e5901d90146f5728c35fdbbf641edd8e85cd721a46bf22e75e8fd435bb4985d177222839f73d061b9f7d0e53df20006a2c830e16316c137f127dd8763aee51a0aa74ee82d4779f45696f88964d24a4bf1c6d861b2cc1c83c632a99f197a51d3424217b28bbe44c728a94f34c37517acad6302b8424e2088195e4e29cd13ac862a79d87095fd6e4edf14e633da36300fbec12f2d77283ecc95272a42cab3926bbf8460de3e828fdbbec57e6b1396000000b01ccde4147822e9bc32035194c07bc5ddd28bb44ddb4f275b2e9a3edf70be8c71ce90f2c598a691d330c645bd4faca8e883c08b62f1d2b3a3293a3564ea706ee9eb1f4ec888af7ae4651092521661610344cbba5c7b89b7864061d6c106c3e727df5026c9846e43a74516100eaebe97b328d7ce24ce5184c503be5b5af7c86c35bd3c30d6d2fdccff61d3a29fcd90d90502327bf73bb916dcce374b62e348491deda6d3027a369628a46696a65b608113000000b007287a1049b98a888c630d3c647ce39c0665192349b1f543fbd08805cd1ca19f0b64ab69cc8e870b9c1256742d56d857626b8ae2aa9dcc94d0b327f2d3223f2f3d1ffacc20b933d3f04b268608db5f166cd1f7e7fec54bc70b94169f6d55a8887c5498e3fa15875703297ac974c019ff1c08d8a7fdd769f192e7ad7e50372e29d42ed511adce06d10eb824b097dfe393211a6d0e5a3f54825552cc13e2040059a991bfa0e434a1520aec4da8def6def20000021c000000b0090987126fa85a0a87065fad0aa0ce54b79ebe3917d24d0f2782124db487d075196579046dc8ed9fa6518516901f4e1b491325936dbb5b57fa92a71f81acba2f6288ef407fe33fb2b3d6de8c86af55b8015f1f2e795d42c9974ba0dfbce5ade06804116e8b8263dfa321281eb84d513f17e03fcb359e5ea12df9ee726bb27ea69a47f36d95dba0685166c6b1c3d4e8fc1aebfe3ebe2f755ed51632d463ec6a6af2079f2967f9c7f50c7fba3e6c316db8000000b00884075ac3ad107f80c2e549e8d7a78ee94ba1133c764059d63c602e46a58a08ef7accd221fc8c1157f3da2db244b03fa456fa0a1d22f8d791f35aa0b68f30969151a99486b6610ab863abbfbf2139c5bed7447ded49c37c53523d471405f8e79829a3d3093281bc8d03f7ad694b3a7f01cf6ea7538c2cab5c153857b71bef611c2b76d68b06cb5f381200426372965f0114e9e30658581ff56cb564474f64aa8522dbdeaf4a7cf93847dd4c1afd5082000000b027c6991c6acc990c65d49bd98648fdb36c147f5068f0d3d44acbfa1045c47932c76313e030d67204c1c65423061a09d97693a88ce75f86edbfac77157b34879ffc79804870d45c9fdb12391f9da1c63c7570bbd23c13db07f945763b407356c6dfb82093e4a49ffdffe340a3333bd0390174533e70bd82d68317185364e75c7fcbdc93ce3322f3f021e5684853d5e19c010983ebcc2f0780330f8c867e5d185ea752d920f8ee5f4c68b710ce60e9123000000fa400000168000000b0130515669e7d7d60f744b49a8a87d6cd7c60a3249c59424d20eba2bdd6e0b1ac492da9aaff0f20abed4860bf3eb9bd723c5a2d5995a7248d54d88e50c7f79e530301d5ad4445bb2a74dfa5a1429e7deac45e22d694801c3769a2395fae640c0a4bcc7c113cea7843eec0d3b24686ce4e2b22b2c9c05409dd38d5459a7c78741598bc5d640fcea7951aee9971c4b67e1f2a00da9ee7d28226338d112838cab1e58d730008102eaca8104228da17fcbe2e000000b01b14c8e14773637ef642428c1231078cb99cfd03af0395ee3df67c106e2ac8331ff5ba4362b89bbab96c0e7029685ecdc8aa4f06d11134db4dfcf59fcee5d5151f375f53da9d5d75dba6c2c864bd9f9211dd2ab4ebbc87192038c57d951be6acd55f7b8dba332266be3ad1155330d7db07b3d46a5f1d1e6279ad62117726bb03613c527c1a131ea9ed2fd73fbf3a15fd2497a57550a5b313aca0cd794f498c04856e9f416cb1c2312dd0cc8c5d2f8d7500000168000000b02efb1c26cd44f7681d868074803d26564207f7826db46e996b124059d1c3a0110723b2e3b8e72924c97bc2ca010c1e9690045cdb2434aae0018bed761307a72b33153490a228c22c0c378dac05b75ecd5c16fb4f1cecb380c19255905e4ec70a1a40b7dbf38dd3354f6c43b5e246b1ff28998e839aeea0586151e39707a4905ad402c5941db74fc2eeeabcceb97499aa2c0eefb8fa834782c97a857e989fb4d2f3c29438dd729762dc6fe514678013e7000000b001c2d79956951f82a5a341b3add4582a027a5d5940ac8b32638432563689165f9acc5e070b6d25f8ed1fa8373cc357b6876241214fea47157dc370be4b87b09a2312aa679d11139205c522f7bf9c895fcbbca032c021df5a2af0b350936b1c897c423141d08fe6788666e601305cadcf0920a5179a264c0c5d3fde27369264a5127390bc8d751fce166774517aa8c6021ef7e55a61ac98afb63b6dbc064ce6b486b1ad3b71482c80cb7a57a288e3fd5d00000168000000b02d50a09a534a35098ae53ddaf23a211d35b8bd1982ce8fd94f30baee526ed3fa1e8ab6849987b7b848f41575555d11ad14ac85d725f97035007d87b9c1ece3fbf42c0b36ae33f2bba5315ec25543ebf65c93df9a4de16d7855ec3cae14777819d78b3c1b652edf78c9293fa86074db692a9ae09fbd3b87b4ba84182d9b4a50116681e68aedbb2b4694be86f9f4b193670f587c947a34e8c061d6fdd93c3a44f15875d983193210266c2e4ed7b0eb287d000000b023080695f5d0a2d5e9f23f324fa1d35f83abf3058c6bc9c255ee4b788a301d1a0ef672e32935b0f8718310daf44e3d0c6d5a5b96f900b1752acb874271ecd9229076a05be3ea5c3e036273a0fce8c53a161dfff32deb63b17ad5083f21c8730f1c92c3fcbd474dfad582002fb344f34221243c0631e5bcdd770cdc4c959eb44a6fe7c074699b13236787ec478ce6c00b1e0f1b5539e39976eeb8b095138ce8c7ad755c964bfd0f7fb8e0054697121d0a00000168000000b010b6f0e5e11b2fcbb4480e503d3bb081fc95dbe268fc0fea73440286973a0d918482d0ac9aa0c3dfadd4f6830c43e934e36d1908c999863bb4ac3aced398b0f8675a3f507b7788ad36d7878c1600b5684d6be89179a8e8439c950ec201aa8b1e7a992cb17656fd8f2dbcf69b04f5e95f066c017189799bf3f3400f09a7432043a2f186f197244294b0cfaa1b1643fc0311ec020395564a99f7554a33848c7da1ad0b2a9cf92b2da8b2eca89b0783b0e2000000b0125aa2ead4e5cb2a9f869048659eaebdfcda6002e077f62cef2c4ea27fe27cf74a2bb10ba74c074da3effa45a9dfcb0798f6498394f9f1c5e77e917fd9efcd4166b78444b29c3954616b72100938e6507c21baff7bd7c94f7a86ab3e18a62961a40f4dbe11f3b4e7802f88d5931a9dfb0190e42489263afdf6784178995b3344174cd37b0928e252f8c65a592178661e1b6e3d19e4c498937edd7483b402f7432513dd86568f228a7d1d1aee5481253400000168000000b000a9cacf6b39be00c82f5bf27901ea8cb9f3f8683bed2b0ef0b09a6b0cc1f31518605ecf683d49c8c44e4bd3da0403af18fb7a7175eece973739f907fa3e856bd7316296136b6d91a1b023ef9aeb6ecbd1df555bff88c2563aaa0c270118815d7a9c0ca667645801ffa564ebfb98ba181bb58f0fb1d2d0c04a8f9c4fdcab1d9b936c4521815ce2024c14794f9aa4dd91154ee98f8b84340f3233293b15d4fb77da526c97b8aeae79fe328e5d23deabc0000000b010aa35a82ab80845c0d45817441ba527cad61772f4b85bde1a2130d2aff47cd3078fa32ea221d0db98185c4e99d0d1380f87c4ed654d0090e68ae99b6e2525b972977666009883513b400ac6013bfb034056bb7a1bc9378f579918bff65342c8872f6bd04af62a45d01c0903807f897c003c6fd7b7d7aa0c83f7fc4844cbabb4e3aef2dd4b7cb9cbdd8f67d631c2d5b723f4896b66277f9fa425e477484a0c327b94b08f387c114a816b617e731ac2a500000168000000b025fa798ca609cc72aca0e5c990979e8fa76a952ea25e874123128e50f2c808f87259ede3c049674f7411f745353637a1e130dfbb7232ff4ff10084feea31a16649f0d9d80f5d3580cec33013fc2a3523d6cc3d46bb9d63d7dd045f338a216fef71184d40d6cf766638b060b4aab28eb9227d96b45d6da32d737b737a040ecba8d58bab6b2822009e0aaed733ab3d15c30a3e7f197351019a53849ec4288307df93e6c47719dc5b9156f19700eaf3e8c5000000b0024c6b6e2f0eadc83030cc3751f1625106574dbc307ed35a556e86bdb04ee1a096517b620f0018677882c2390878bf6205b336ddb2ccdf4ee0fd140ffaadc3ede3638164671a63fa58a89c8c0aa2392d5a9768b2791aeb2e0a1474a75cc09fb48f2f6172869dc5f185557e6b11fa98880339581c8f792cd2be10031eccd0b776d7152820771003e624da5747548923870fb92eb0453a23e7f16bc6b049e7e5cdd4e9152a9ed79664469f0a4e313addfb00000168000000b01f51f25650a7488ef46feda05f6295846959f155fe67a3d0063c5059ef9ba8308af1e73090adb29f14dc6dc08ce2c0344f50b1c15a6bfaa7d132dae6f6c6b25ef432fe4538529e1dbbff6e88f05012bc573b513a8bcb8940e3f6d73cbcc7beb04721789057bcaa1c9f4d6284f1d0344c06e1a6f34458db40621e6e1969c23d6c9ec8387542a8db7166ee1b161f115cf217e5f6b8b423d02fcb52991b2858592d77ae8262f2f194ac989587c6ff625545000000b00c78bf20df8f02aea684ba963e3514d4277c608e647d592a08ba8bfc45f50fc1d14df22da5fa67f0d7167cd3597c30fb57e9fbf7b4d33389b8b077d18b83fd40c30afd472283a93469caee0b85e28fc4c04256e0d418b5962f178c41b7f552911cf2ad162f8f4ba53692db907f1a7eb81ddf39b8872c2af4a768e6f1a9f1ec7186e88cfdef91033df912deca58ffe0b0080690e4a31e6600c9dc4d618df29be651158bd5ebc739b05c8a6e7f7ab48c9f00000168000000b019be15735fc9fe7432cbc863f42a2bf9cd62869f216104a90e90273360d549ba5958b91fe65cd7c6895ee7378aecd6d11841765fa0fa2c8f6cb702e850200b655ffa4c65263b5954cc16dc4795f7f6ce445c84a3a632dd7c693a7971e65760e74b5923545e008858650515fddd58dec5148ec8b386cb458e5e59700e6f5c8d84e48d2640526585401348ab6f5d1bec8a052994522775224e72a2fbf81b17f5c35ca98f0382bb965ed2d43d403046ba78000000b00b5e00376d7fe0c1595b4efa3f921416d98fb2e1197ca6df7c8668ab02b7d81d0e8d6662f2175d6b3adf819159865a8a941463ace1c4cdcc2bed8dd005a6ee9da39e8263ec8e15d3e41f5bb99aefa00bc4fb472558f98007d617a702eed22721819a416fa83b140ab26022b346c2bf2911bb87f0f84b204da417d0be540eff9b87174a07a8713faa5be03085765225f723c41a068f2c85e5a2001b55bd2c0d945335a10724c66765bdaf6fae03d1ebac00000168000000b0253f030fe883c33c90d6b89cd625cfadf0525209190d885f3a5838f9c00cebe4d37c356132a7c57f258826737d5115b2d97514777c3b06fa68fadb51cf7563fe99c852430e27b82596a0e4c88727bcaff40fadc5b27257714b5fa6dd5497721e76efae0fe43a0199d1feac5b510cfc731b7bc0eda969a124ef833889b713c3cf2d0ad6824ad3e24e86c02d37cfc3e443209b329f6db8df502b4ff6842054e0bc657f82816d355948ca9b6e1a937665f0000000b01f08b400c510bb1d21c8f36364a6d1fa2adc6deefca246943153291496c10446815f4f2cb646833b09ba9c42cdb28571d3e06a36f42ee7ef12ae0c628789a3a0cafe467aee185eb5ae3d9ace6d923cfec7006920fbed765e910505bd9bf63d367a1e6ea4f4c1ea28be2f2d04140ba929113993b2946b540c71de51719f4dcfdd21c1507c401e141b2e7dba88392bf39202cc4fa379bc51f45054e2c9291e12fe973e281fed3b448265ec7e66972e1c9e00000168000000b0245ada636862b1267aef5628e690a5ab0abbad78a11f565472a782117b90e6810c0893491a1dc6a286089d3d74dd80ed596fb0b0fb79cdb935c041e9c22f815bef29b6501e93a3d9e2142c4285eae7ff63c852fa18e1311b2db7b00487e9bf8a07dfec223e24a02b1115156056af83cc273bb2284440c31f4b27c07e09b2dd1655b62742d44a1f2eda8e3d4e4e0597f62522b349a024027ef3d9087a571a2652e4d2098d4eeb5ba8fc2d51d89a779282000000b02cbf4879df95de882d3ec96dba38b554975dbe0b5ba12d35804229200ea8e3a4dc434b63e9d50fd97e88a2e052878f7738d6f9dba6053c1293cd27d97e15d5f066e324bff3880e48f4d1b8c403bf0220e1ec3b6fc9025086d7b9e5114f66c18997641931fd2fd12720d9e4e923ef147a065c00266ebbd33220bd2ae48bb70cc627ae1337343d7aa8966664d2e30658ec10c7ef5ff2b3179c3ebf8c40fa32d230725a72754c0f8244a0755ec66f714e3100000168000000b0167e43ee5c85f1b403249bb5081bc35029447442fff5393405f16384461970b3a72c26d41a6fa679f27311661fa1afbbe569fae7b9743eed64a6fdb3b8ba0be8369e4cfc85302e2be9fc686b9573a3bb669ccae28762dde924713eef8a5613363c48cc387ba64d6d5dd8d45b266fc8ac132c820105d8d31058c7a66a43ac179ab36778ed088abe221ceb25930b6a6e480a98fc10809b205f3abb05f06a3d97569b3523fe09546ff4254a8774ff03adb8000000b01c7bde8b41570cc77c5737020bb177c15041f67204c7de0361521b7b547c464f769ecd9e7259114c6b8557f49f4e7bbe4e439622ec8a012e1fa0626e678f1c2f5d8ac25169fee44c7f5a67d411e09631251b3af7e807e3dc8d8532fa9103b46b7f7aa16ed460d4e24b0f99402130a55b16b8ee75c64da1b002c8e12af5c3caa87f9e162f43364857c8282883088e65bd2ed75dfbbf2347f797d3156f5be26ba76036fbe7ad8bedff66f60c19facf3ccd", + "txsEffectsHash": "0x00cb2a5011b2c8c620943ba34e5093a4bd72705f1d30b6f6cd07edcd8ab4f7fa", "decodedHeader": { "contentCommitment": { "inHash": "0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c", "outHash": "0x00198704eb051da0e43ff1a9b3285f168389ba3dd93f8ec1f75f6cafcadbaeb6", "txTreeHeight": 2, - "txsEffectsHash": "0x001e043fb2c5de8d7a5caa2aa833e839b166cb0b2a03b1bcfa96dd224823c8b6" + "txsEffectsHash": "0x00cb2a5011b2c8c620943ba34e5093a4bd72705f1d30b6f6cd07edcd8ab4f7fa" }, "globalVariables": { "blockNumber": 1, "chainId": 31337, "timestamp": 0, "version": 1, - "coinbase": "0x9ede22c45cae1d9aba3dc43ca9a4014868dd9416", - "feeRecipient": "0x1db11c308c86c9548e554e8ea4ab6a0e7c0715098a8e50d016c9a7d2cf3af8b0" + "coinbase": "0x42fd238db78c124f0b0bbf535c6bec496bd9beca", + "feeRecipient": "0x246fe145f7750ab24b5954b702c8903e8e6462e050fedc2e2e51cc7f9e184e3e" }, "lastArchive": { "nextAvailableLeafIndex": 1, @@ -77,7 +77,7 @@ } } }, - "header": "0x1e3523d3bd50ae6204e1ec2ee1bdf8af4c6217ec80900052d2cf4259379dd130000000010000000000000000000000000000000000000000000000000000000000000002001e043fb2c5de8d7a5caa2aa833e839b166cb0b2a03b1bcfa96dd224823c8b600089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00198704eb051da0e43ff1a9b3285f168389ba3dd93f8ec1f75f6cafcadbaeb61864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001002c672a4d7bd90c4b6ba35bbc9906598862f626554be3cba05de19265a8ece71000001000ed22b14764d5756c4e97521b31e93e21192b98b3bc2e2559e07b1263ce7b1be000001801faf8e36b0fb8fb337acc1c32316e1fcbd0465d53c47a2dd73ebb031042566cb000000c00000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000009ede22c45cae1d9aba3dc43ca9a4014868dd94161db11c308c86c9548e554e8ea4ab6a0e7c0715098a8e50d016c9a7d2cf3af8b0", - "publicInputsHash": "0x0071ce1c49525ee1f26bdd38498fa26e067a3596f7a80333a2546fde982d5fd5" + "header": "0x1e3523d3bd50ae6204e1ec2ee1bdf8af4c6217ec80900052d2cf4259379dd13000000001000000000000000000000000000000000000000000000000000000000000000200cb2a5011b2c8c620943ba34e5093a4bd72705f1d30b6f6cd07edcd8ab4f7fa00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c00198704eb051da0e43ff1a9b3285f168389ba3dd93f8ec1f75f6cafcadbaeb61864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001002c672a4d7bd90c4b6ba35bbc9906598862f626554be3cba05de19265a8ece71000001000ed22b14764d5756c4e97521b31e93e21192b98b3bc2e2559e07b1263ce7b1be000001801faf8e36b0fb8fb337acc1c32316e1fcbd0465d53c47a2dd73ebb031042566cb000000c00000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000042fd238db78c124f0b0bbf535c6bec496bd9beca246fe145f7750ab24b5954b702c8903e8e6462e050fedc2e2e51cc7f9e184e3e", + "publicInputsHash": "0x000a32adc0afa94b06ada426a382be6fcc491da69e53adc0234a01d5bb8978c1" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_1.json b/l1-contracts/test/fixtures/mixed_block_1.json index 23e180583bf3..136cb12a85b3 100644 --- a/l1-contracts/test/fixtures/mixed_block_1.json +++ b/l1-contracts/test/fixtures/mixed_block_1.json @@ -34,27 +34,27 @@ ] }, "block": { - "archive": "0x13d7261dd59660d1893de9ca805d5f10670e59d14539b3b5f21888cd047c95b4", - "body": "0x0000000400380000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f00000000000000000000000000000000000000000000000000000000000002700000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000027200000000000000000000000000000000000000000000000000000000000002730000000000000000000000000000000000000000000000000000000000000274000000000000000000000000000000000000000000000000000000000000027500000000000000000000000000000000000000000000000000000000000002760000000000000000000000000000000000000000000000000000000000000277370000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f00000000000000000000000000000000000000000000000000000000000003700000000000000000000000000000000000000000000000000000000000000371000000000000000000000000000000000000000000000000000000000000037200000000000000000000000000000000000000000000000000000000000003730000000000000000000000000000000000000000000000000000000000000374000000000000000000000000000000000000000000000000000000000000037500000000000000000000000000000000000000000000000000000000000003760200000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000441100000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f0000000000000000000000000000000000000000000000000000000000000659000011000000021c000000b02407635d98432f42812965e92968d68aafcb34ceafc107bd2c035e90c11c9a061557cd82d076152134014fbbcc418b256a6248bea1499e9f81fa19a78f133209c876f94e2e9cc4cc3b2ea3f6910f7707c29caca7414dfc6f65f94623a1cae72fa06555c695a5922d5f54f073e514af0509e7ab8fa0f9f94570e7ea7403d3bebd25e4cefe998de75a7356a8e76d5791e719e6be1db1aa23beb14fae5049716e1992767754d79ecd5d02f38314b78bf2a2000000b00bfcbdb9d2441d67367a61f13ea52fe937fa48bdc36dc1e5b3a5168a8c87d35e0a9c673b947e6fdec302c2b865c122230d34ae65e58e93a169401f187840f872d866f54ac29f51c943844763598792dd508e600a26fbca3e9d4bb6f0ed968650a9f39454c4274503c108bc91e75745e624d449b332881dae8cd865e15adb7b2db723139e68604b157ddc112a55719e400bcf29e0b47b4823fb1bcd1815907dfba915970945bdd11171b9660f6ce8850d000000b0189f6107cee1019e518a9ad786c8db36307b9a839b123b5a019d9551a3c62f7537fcf7b0717ec89a26937152acd398a8114b13c32908ac54812a5bd25996a3f2170fe03496aaef8f37345ed6a825f930129dea59ad16e1f6f19b5c1196c5a5937d5acc53b37736de48a1d0038f859c7815f5416453327dd7e10329404f1727d7f963338d2b8e4f01726999dff76c0e780919757db76fc2856487bdb6240462df364fb43635c53c374fecbaa69f8e04e20000021c000000b011a69ec1a0ba3528553e6ef8e7bfc31d624c2c7b694a4566041ce8454720e26d9ef91c9e41d09123227ad0d832819c90b9ac84a67e5d6fb1807183934c29a45288538ae578618e3736c6a16a05a15bb3a56e7804d370cde440af8049e3db7ed1bc91a5608d23af5f166c3eb1113d14a02511b86fa4b279205cd5e195ebe7334bb3e87f983f90840eee486454b173eb010065de8e4febdbb776a75eecbfb410ee78f2cc80d8098e3ec8cc191d6dc74740000000b015256fcef347ff4fe4cd1d44b6c83cec2fce5fab7026c4404959e6a61398a72a9dfd0c6077c07c27249e9bd79cb3acd45a540e54ee9652d02f34008fee10e680d616dfc2f20004da97eec7058eb01f4f962fa203b1726b0466d0fc482484b745122b0d3a6fdaa00fec725d665072457e1095ff3e9f224d1109175ab661f68f34a407bff00b25c76b8cf1b38cad83736f2f5df8d4e2e3217d72e63157b8a8698536b56555411f385b9cb95b2ba5cedbe1000000b02564e7e0536742b2fba4e842a0625e8ef3ab3752ce269c26fc9f4fdb314d3759fdf7fd0e13145ce9fe8f54d69c257f226c3ca0695d89741425ecd0ed987b8c11f403f943ca4e2efb47a1573bc6eddf37cf05c7e286ba81abee0eb86b4ccecbf83399d365ff3bb48b68549fc77b704ef92f6db93146358662b1bd2f4feee4dfe706d63f1c79751fdf1768bb9072f337fe08ded528db6c94f8569fd9b13fa9ba7a9d715dce2ba61862dbb01e8e2af62c360000021c000000b011cc16ddcb34b070b3a1d88857242d2e2de5d9b9a91362bfa2241bb8eb0f054642ce6b12cca9369a6005544eecf6f7cd32cbbb9e7906eb7399171a3062ecd3faa8cf394d61fda2b605dc4f75a37181ad421b22ea2998cd20ac3a19736acd488ce3ca3e7d2cce4c14dbaad7c6afe3b7f5112f65aea923150dec877425e79016d835be239d129ce6480ba612d431deea9a10e3dc245f7ebec8adde440db1478c91f35cfa837cb4bbd0a6b3ca4f8f28fa54000000b024d7168c18e28358e93eacd2865e671deabfd5519c68b91b019a1f152a0f84e688aa2234b6009a6cf53003e47d12f5a891327cfca1f5bae04bf2946b85763b14e5713b96970cfbd2da14676cbd9ee6c0d83690ffcc7ef2f86822d872b0984eb27710ea0fdd7f2842051cb7877d6443a4197e8a3789d8103b56da357a4ffa4c34a2514c3a559f8b88b3202f1e2f2e444d21e5e54c0be2eb69ababda5be3271aaf26ad1a878551cbfd4a5bf6c7249398ac000000b00b4dd9452bf97daa4e1c21413b91935cdb8068e79cf55fcc3e0dd2c89994a87b4ecce8e8f368a684b77ddd2ed85052b8e59bbfd7927748bf4047d3ca802bf3253de841b45de8c197859844bc5f408754fab57eca90b0c4b9e96dfc500bdcdfeb0bc7379b251ea9de364aa49625c6c30f1ec196f9692404863e5c2b25e858bea8d30270f0ffdcd133a5ec08b77a8fd1e82c4d8e264dcbddf7902fc97db7734335dc8a23b4cdf93ec942fc5e9c3766b5840000021c000000b010dd1490e0fffb5656ec59ab89bfeb42f8c3604ceec99c0c2a21a307813c6134d1ba44ea4e4e6e6a89451ce8988e27e6377a75903a48dc40b93febf738151536b1310f759cfb8e6ec39e1b71cf215d70ed3a0d51c16bf93c31bbbc6a928a39f601be308c711993c75a1901aa9843fb471158d716a0e5a63b48e93f49a486c250e1ecd82bb6d2b68f2a6def138d25a91f0f73de9373f95119304d333463246ae4295aa2c2216831dab7df0d9a9fcb0ef6000000b0064fe5b1ef9be357d1c30f9fd849f60869502e8e1e35af0df4c0f9bae9d744f17fe66d881d4d8e2df7f890ce0da43b30fd34a65ca89239a1de1bc11dbee22b46882d5aebfc2b204981ddd55dbb118c841d0aa43939e3112bd6bd74630c5c533319a4f7b08d1a5e3baf9ab4b7e939621316df107e451e40c7abdbedcffc5d5d4009046da3f5fbb6500a8a2f331d0f1186221a6da6016423a1499521a8f19f4d9f18b2f3f8b1849000c844db1fc90c5a2c000000b01cbd09ff4192f70314421b60e126f885b9ad1e1cab9e3a3602a477832f261c0cb8ef25a5c058d5aa81ee88c26d741c4e6e4999a42dcf10172846d0242ae9214c99d623bf1398f13e6b0506a431d57ec1eb5da8af3f7edfac7a84171f1d8390c9e60ce61a3dd33d244c477d78c4139fd40c167068fcf2d93d7c93205728409195537875948348e48e320c757ac6b6039c0117afc94e486475b1e355345849822cee5d47d1cb2c448ec031f710737838570000021c000000b00d6061a877ca3338d40a19283f3c0225172bb45384ca587eb370646bcf45ef035ba4d874ee498d889c89a70d934725be2416131be922832286d018938320a88852f16c4784ae68ca3caabb6883088a132a050a5d8eb4d7d3b4cfdd876c0d71800cfbcf620e0e34075875cec9d0378fd526310dab39acc241b5ffd42d0d43aa5e24cadf7e5ab64170cd8280b7f5812e250acaad276cf670312866e260654d7635fa529c861c5b14e4e72921a35969725e000000b005ff1c4eb8bb5c577bcb2f919b9b07d7cb45a54ac2ee9ae9e44e4d10caec15401e8cb77403070bf4b8fe4b30946a97a01ecf807489f8dd6ad219420e36a1a3f90d75e29ae126262edd2b3269ef783381e1bde078f18e248da6bd0d50ca4b6f5f90df7f24590fe30f8aff447af5359bbf0ec4873de16aa8809779c48ea252c8989e365f2f0cd482348d28e5f2754b74dd0bc0fca2fda3c797c0253dbf7b4517a6f28bfa54a728b70eda3961cc4e87dc37000000b014564c71661a1674c8dcfac0014984d66cf91e4b49b4c76e004409c731ab51e09a8eababbf1e4b08be4cc334010e002ace7d48ceb572d95e0ab4e2d211ffe3b4e0f71138b42dc157f2265845f07ea472780d8fcb8e2e027fd8d37ab14d6192500c3a1ed33c8e2c9c156977e697dc1d651c2e122e6015e93c699b5c50708b253ff24bcc57be805d9814222f7816868ae123517260e77157afce72606ad3a5606f4b0284191394474cb2759f125f68aaf80000021c000000b0084bd316e61fd853fcd9192637179e9b83e63368d4732aa79c9a36a4cd9b8f28dda451b17c2018ea250f693ee5e58fa0a6fa42850a33c57e14a323594237da860aedc8a7df5159aa60246f0957223462a78273b6e0613322d84c380f3fdffecbaf55678e41b1f5dd12d894d01ffee3fc1754f5a67d5144b97de3f8e9179260c05d36fe1a7f5afa914e6ac261db5afc3417fb3bf096b02229abde64893f19c734721b6b73917fb713256019a46ab18054000000b017efdcc51672622bf30781c28a167100ad6f32f93bf0e9faa44b3feb9c1f7ffe38cd2749dfe5cd5493d2d2060eec55ec4230f05e5f76b37c07b86cf99b477a0edaed72a0f06861580f75fafa408a9896335ec052b0020982e72976fe0752b0ae07f31e133347ca18276ec5a822f986d32e1935039c868d7940b50cddbdf96621cb9093f5c516b9def0936cb734c220102d9e844bc94c8cd28da3561976c3a5111d04e1b45affa164e302b1a4dea72018000000b018adb9294392b4e909897695551f5093a67261937380f261b18647d8da60b08f3757a8b46f117880eb7cb4d8980b522845f4ed22755fc2ae67b64fdaef6143fa9283f140df9c567cb643f46ad458b07c1d814f4aa0f117c5dd149dfcb306588638c2d90f805f1783a1d9cc47797342772a76efc51ab4185dc811bbd55b87e526627e1e3571b7102260570a1fb32960ae1bbcd2a9006587927c322f0db784c4ff93037cd5c9b8e2fb9def9a1bf2ab76820000021c000000b0121e375d79dcf8e47f452fbabff05956a1f2bb33fdc56e50caff4278b3479bc63bfdc5b3a4cd7d7190a3a80593037b648425cd96d72a15a355de66932ff5323fb099c9cd4e1c37c839078d267e1a85f773ef2917505e8e9e94c84c98910edee2f1675bb4abf1a83a78c1fa2003467c9e17b332e0183ba82cb18b900442af27345847a5ef09dd345915c90b7215ff327525f074124c5885d3687e238db78c51705389ec08bc3538dedae4cbecefec08e7000000b005dc3288d5cdf30115091e73b4a7903bb1e3948988658d172396c2d55fb2c66f8868156424eedf6985bb9758a58a01493253fa707e2682e2be427e905267e118cf464fe08b9cfcc31b60ad8bddfbd68cf4403eae54b9b720b88ce16381c7b563347ffdbbf2bf53842d8c9868ad0a99ce1beae60c69391c82e93bad74bff9c51006b7dcfdcdbf4d4e94eaff69446000a51e1440d5043aeaa111f2a4ce1b2b6be01c2e5246d52f4b96f544cc81282edfab000000b02d915ca32fc54c162cec50e458f12d40b97fe73433e6d923cde0017d8075bc7c8a9310630f4dd3378a9b96339264064b4bb61d6d13e06e9b42e5fa4246fd293bd4b06e4ab96fd4069ab7cf001c3f3ac807d808bccead8abd53e43a7b1a948af4ab9436ebbc02b14717a351864d8c9ba52f026c0df9152066f75ec9e301c09458a394d9af888b3cf0a48372b521e5b24030037210e76592639370eb4d98727bfa75683e890ab5f89e07c122598bc95a840000021c000000b02d6bcddc2d72eb1ab1b9f82273b8b0eb0999cdf6461704af3bf78f9ef265678a2b09fa37cc0e266a91833f01d05db4c22625cc78f0024452debc95aabb15cd46d6130705a2874fa53d349eb02edd1b177949b297d2206692d8069b8f7a4dcc00f3e6361247d3f304e52423af435beb212d9b3c99f191d0646c03df89a90d7e6db35c14e2502922ad200234cd23bd4328047c865ec60fc24eb387d4c998cf4b469f30e8d1c755bf3e5befbdfd49f50334000000b002cf2801d3b5cb78f60289d03a5634610ee88c7d6ac3ce8b21622d37dceaf3518f3a04d4a3555457a9c7848c65ceee647b94cce3bcfe268d3353112b47774b1ce6176631e94d028d16b942237be0af07ea920f280ce2d0423befdb78eda48d2ed104faf92f5c95365f6f2ed04231d6471c6d607f9afd8ea6ada4169c78e60a544ab9c56d9b9fb75062924ea98a159ba9222b3a422cc83370acd8ee740a7765f3859e1d31386244f4e1a469f05bcccac3000000b02a17eaf79e53efd377896816806eab246ad1ddd8252d4ea3841b94373e3ea86792610395f9bc4b3a582b96c513d0d8ca07acfe483f1185ed8d6ee61586ab2fa5dda7fa6584e61bcc41f19ef754c4179101400c5bd6f15eb4effa2a2682981c1e79302c56fd1e8a1b3ab63f32a4bcedbf1b1c5f6e01de5a9efb147264c691f6c141b31b7d1a6399b1e6d55f6763cbd6f62f958aa766fe9a8575d2317bc8dc282cb5b4fa68ba7b14ba83af5d8a99cbfda000000fa400000168000000b0108780cae4c914143d3e99581d25b9d1326a553b6e50d7e64356d74919d4f00a1b3439f8980e991eecd513019a957b8f7c65d3a96c1eaf0e33a0b747527ef808bcbd2ecc2ea639a171e20ca98961c5c62ed3341371b1f03af612dfa391192e98c53ee8e86029efaefc9d09423aa8b54017e0df76927f8ef9a25f741f3ae8ae3e200be492742b94de5622b24def36b9b02501beb30c6afc30bdd9b9cbb6c505d0069da4f16853a6129cad8df9d63141c1000000b02d7b134eb468aeb18af35ee432f25ce995c349b9f1754d5c77cb17558366ed7ff68886d3428e2e3b834895dae7dd6f9030e1b9175205fc9a866b16de7e4620231e6551c1d12f1a21934dd7081dfe97244934cfd2426ac90b3b2a53a315054d8f51886007e1fcbe7e8cd65c0a94742e0e0604cafb011e48d65b0b38f8999fd481e18b09e0a549bfcd8c3629471b55c8a91390a2327ed73b74f585dff8217835ae9d8a49ae8f8c9001e6333dd5b1123bb200000168000000b02e07dbb600ad7347778a5a600564b60af59f090b5615d64661bbe73e19a329022ee0ad02ea2555257c3ab2095fdb159aa3bffd5627355edaea84040bf78633540f9c9574fd64c229d6865800f4df68edb9182c3d05c67376498738a2479cc99b93cf853ad7fad9e1674394812c98cac40d062a7ba098049b4add131eaf2d9fe7c0c7bd63759216014233632813702f9c1aea3dcdd96449533f4f40efeea35183c0cd8430eaab4fd59c4f7c395b1c26a2000000b015bae5bb93926bc81586bc46af5b6e63bc6dea1e5d8608ffed80cd55a2237aadfde5225c2dcba7a78ff571d9f967978c6e156499763788fa092466612b4f579a695e6a22bd146438f87bb329795b6765c2639828e197d928a701b418d7eb730b3326bd63af865237672adf0197adab9528f3851d600814cc04c0a82ff74ced504518baddc6ce7cbe5b891c052c0bdb1201027f8954cb7c942eee675f45cfaf84a18f1306005b8a3f53bd449c123cb0e700000168000000b017c9dd4b77f08863fcd9ea0470ebf1ba3a9d2739e23ee7432b3422bc3a4f46e9892f2c516490895ce28ff1b7efd454061f95ade62765a79c890d2f5eb4adf48da198b62d78d8c0e6277fdc2524095dea10594f3cac81dfdc97bc688139a6ee779b208fdce0d8d5112399c305ee7e7add2ae1e71ba68a733180b68941649ec4cd68d1da4de55e730762cba9029e2be80d1b359cc6e1688b9b9b53beeb0c3c5d535590366ee636ee4521663dbd5f047ced000000b011c3c5aa5f098456b4d68e7fc1b3bc168786d6b1ffd82bc79d6b440cf8dd2524b02c7cd90e74156a2dd320f04edd26df4f77a5018bdfba0bc60d3d0ae12ece5a26bf2d71b9f032ac82961320f4027077a504708d8b5c6a1f19904575df03e3921845921ce8bbb8b378479c953723d4bd1ce84caed034fd3cdb74199991bbbd683ab2e6c440dacf7be6183c6a3de5ce0217bcd7b2c1ad5e8da967f42d64d6a7b31f05712fd1f1bee4ec4889ac192385c000000168000000b00b06bfbc8b7f8fc184660365a97bc4e7ddf99c9b7d0b4a2b814fcc452670f9bb23d0091cf0a5c07d87a93b0812aa59bc46049495e49494989488f6c7a9d4703b5a89b1b91ae835b3fbc117cac76dd85431680fba394b9782e4dc3a6fa25edc8099d9605ba1282121406ade248028d8aa0b9d724e1967d330be32d873f4858efde74c97a2681b775c02dbb4a9e8bb669a0a74810edaacd205b0e29fae33f546b9529f1f79ab6f3fa9890d30573224ba55000000b00e56826ce4e10068dbe2520ef88ebcfef9f987599008cf1fa80cafac40ff4f1749b291b115c51676076dbbe0f4e2d898b568b3840bb708ab002d1c725dc89281402db9eca109735a8e7d73a31709ba6611816c3ac00cbefa5b16b6b44a71f65b1d7c4cc0f6a42a2ecb3db25e1f442e142c68a542165feb07d9d8c9f1f38a9f75ed5e0bbf5bd17bdbfe9b5db93294263c0b2debd2238f7336968ed13f86ad583581a411de8a4295a412409d584f49df1400000168000000b01a28e3222672321b2c5008abcd9816d3556ed1a3dfd923ec5503b0dcc632317c996724e8480431175686a096e2a9188acac72ef53779f45f38b6493e57386d58cec5b0f2373a7645124e5a9b1d0694095edef9032a4a942ad2ea02d622d6b37181abc08806a3deefe122654b56acacdc2c6530bf95806a9fac5567437a9683469e26a21336dab2ca1acd8b9ff39d789620b6449df0a385dd57e8a1f99f07a222d14a3d023bf141d89d573e92565cb87f000000b01bf3c86d67689f6d5e3f60b14d58bf390dd010b0aff2b5521c9f12754dd4f2838eb51427edb16e6cbea5f5d05455bf98f1181b84dd96aa9f118e14f95cd92a7ec2e3ee8058bbb2811333fbf913c19ad37c35c9339728d12979cd7b8680e29887988d81df17e55a9c6fed2a4fd3fec21124ed7ed42514d0cef4593c09e1b6d167569f0ff3c3feb688cd8df74420f4c8d52ee2b83a11731b3de6dbbc5a37a703fc7346a808380bb3c58b561bbd3749fcec00000168000000b02fc2ef6702978f1585440d800bfaafc12d4e44dadde0e836f22feb57da30275b2807bf0a8eb826ebf8bfd0e14887f801343dfeaaed2e1a5ce47a2343bf577a68299e96ea5f0a65777080db0116e53d39557d1d8048a25bfa0f7cbccaab06d5d0cf911dda92fb8bc52d7aa619f4f515d4157c54cfa82e9e9e1d6facfe757c8814a3b52df4a210cfdf65e54f58f5a4ace80ed3e2127936914f21e2e8cf41ba86ad2aca30d8ef01ad34e6b4e14c6f41c56c000000b008fcbd4c9523de5523bd59810a89093fc7153f8df72353779e8d695fbc4f7f56c383fb4838cd73b20fb931677ee53d5684a0301e2ed435330a8b410353426e1f3ce130636588638607c20bd2f67f8ba590bc1194cd66d0909e4f535bfd9b62e20002e96c9496db143622a4ef75449c1117313b0829b0efd292e4434e403f08314f1893410a83a1d99dc3e82563a7461d199b48121a29bc3d70d2f0c46df7f5236f4e25ab55804db2d3e96e56feebaeef00000168000000b0287464ea51c3084ffbc64b1fb437bf67c35062caa5b51c412c7a3bec44ce37385a94d096a33a598abc61c529c33da132b0e67c5d17f8e62b850f11cb395f4bf609764576ccc6725a0533dc48ae687e1b4f498cd63f9110b4013dc4818f8bba58be20fe8ab24cd4aae134310e5fe2ac0302ac07287e535ec5bdfb0206e6c865910b9f49f085fb02c19649a382deaec9461ab7858cace1e9d014bde9b17b52c89e2755224118696dee83e61e5002e995f2000000b01779f2669b38e8c0d9bffd0b1430f0514c42bf80e1badd033d7e5f832d1d96b4776ac37770141b23775e18e8039695a412284d138aadccaae6f934e1ee2dfbaccc0ebe7ae14aeb97d5fb8f8e4aca288712f21fa28a28e7eef83c60fb30555c1b19960ee36e76d69450cadcf8e1297fd1222a92e408e837a41ec33af47001c804bfba2ea7ff1265bc291ea240ac4f726f053d7d162f0f1717e5c5cc0dcecdc56e170c27fc42d3107a488dc0f6c83d715800000168000000b020df59edc6b59811084e3ce6d7354971e82a45c6fedbe6e79f680c715470c85304be54ff1eeffc62213930421592b2ec9dcfc1d91a7a2eaa03ee6f3671b2fbab243a2e4bb43e7dce86c1f3e2e2027f9f02eb51726f46aa1c8b14f0981cf08aef2a6004b1df8ce85b8e38d03e63415a560908e942703ba493a4eb66f1adccd939caa20fd2aa992e50b95ead77b502d7bd031a7ec739b150bbd900dd1e29074d6c916d65bacdc947dcba29ea80468a69d9000000b0205478f83dac55d701a787f963e64f7aa51dd547615c9d2353ca17d4554fa2a38e73bff68dc31fb6545540ecedb4278c3fbd541366bf22184f8bcedb611be5fbc05b60d77542a33372837d639bfc90535dfa96f25d37a2d1db13c77a9b321c305bd99dbb7669a73d8cd1a5e5245af50d2511c1c332e72e7b2784a73a594d9ad4c37fe0df734fa51ffdb4255f0a77a96f06c2952de69862756b7542573b2d4a8e276f5d632099553f3c4c44f3a8467da100000168000000b015e63cf89c7cf5a3a5535bd553487bce43ce213c06c953ca959b33386e2a9f3d4c29ebfe92dd6a0e674e840a04a421fb157407d378ad421ea6472df79708df41d8fe7da0463042b79086cb7acc4f769d1d5533d8dc880e83574ef60e7f272b8ff41838a1c77ec3b6ef1d610ec1b3617a2fb4af195f73c11d41977cbf2474d09cd03645c31e016ddc45b7d6086b0484a81a614e1b76974d01caf63fc66165bf3feb64907aa50b54439fcb35d8f6c93783000000b023a47b4d1494625d6035530a819f1106e21de12ed5094bc44d70eb7359a8dec1d610849ec348426fe8c8c5d697cd7b81468d69e3829983e9774356465c7aec21a79e6d45b4b4e5434fa47d5036f3ce6e09ce6bbc9b6d99de50639762a41f86f32d1e6f385518f832f6ba3158ebed9fed11d819cddd6723d34e460388c22a230be919708d0e8b46edd25d12cae4101cec2c1150a9b302a8c2f5e6773a1dc2676ec7d81af44cce5f0ead28ddfd64b376ed00000168000000b018d85b67cec8ad77ef5aebe73dace23c4e42e91c433a26629f77088d5566191edad32f0dcf0108faaa5b43e49cbbb0a5e58dc5e3340db2578bc349123f09ea1141e850722922d14f355ca706f904165e31d3a09bdc851e0c6a63ea5fc7d1f7d7c61d5fc8c177fd026c8da05c212187db052d80c12f87db76770dc8e42fee08c7cff0511f861781d3c0ec816d15d09694156f1946e34835ba95fc4e42f269f19b21353d5eb27e93389bd459089722626d000000b02133ea6eb17089329d84658dda3e5e53792d89972003d059edf2f291e57df2e79674c1c195fc7ee3799daf0a37320477c1690a53124e87f1fd3a2f352b3a7c7268dd57ec2c296f06992a640876965323bb12e8914bb820dd9325bf5b763d71cc6d2f74c7fa4d694f1bd46bd6fa21cbba1d7f0e16f5bc61713dfaaa3e9fe417eb023d12b5721b0499e525eb0aa47f9ca422c12454e68fa74bed8d7bede94e29079e883f09d8fa0f2114bfb36705cfb74400000168000000b029c44f61d6448d43b06d00e1b202f918cb17496ba7b77f96c3da4c1f31ef5e196bcbc8b250f18482860b34ee187e7c316e3d2bd117edac055f7846ee93ec13d26402060be73c286449171a8115f8297aa8c8f8bc2d0cbbf263ab7a031a824ce5cbb5a5e28788d576f5216c26065ef54901be83cbaa2bba49d163001f9aad52f47d1a7d078ca07fbfb12b8c3f836e99291e6ba770536718c47f358cfc9c68d504a1e8ebae4600d46506313a67f4926a3a000000b0072769c4bf32fdf027026b7d2913d66b84dd24111683dfcb1028b778fedfe0cba592b03808e66fd546f825181cdfc48df9efab7260475c5e19826d9fc232f442cb0301a77b4d58031e4a017a33a54e506dc58f540c0fa4f014dd11b2699bb2c318b2a271acb1d589d3522d49f9aacfa3068471a09e194d258040cd41a781a4eac54360cb82f88aff03c3afe1a093b8ea06b6c9b9778f8f5af5531fe11ee02f20fbfac6d10e1e3e08104596057558e9f200380000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b7370000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b60200000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000481100000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f0000000000000000000000000000000000000000000000000000000000000699000011000000021c000000b00c0163ace6c820b5419f0d68837f0c235e3d10119376cda0252b739c03a9d92a7c7d8ff878c3b407604077ba839e2b87184f9c5696a5ea1efd8214dafdb13a708fdf891f0e0aaf372b54f13034ab38bb8c97cd2088ef3fd465c860ebfded20a51828e62994749348ee20b10f71a496092db63ab4ed02eb1f10a15d1ba4107032355b27033ffb2095b035ff1ffd7f48d1182453f7cf8e6e3bef27c00808dc606a32df4de5055ca307845d1f7ab4fb213c000000b002e830464a24915aee9afd887352ccc6c4a1511522652fdcb62fd716f74efafa058d8739c40b521210134ab9146d8556b43422dca5e92f2ece59a2ea28fe26f74b6df0e49237b71685ab4952edfb47c953c015f039474a34e8a00b9faae4700d9dba4e3be2e91736e031c1b837a076500958ca857bea650788975f4170b5efd63a4686f2dd2ad8a07da38634d20ac7d32eb44f8600642d158f1e3d8b59dd26e30198b48dbad0c69bc4c8b7ba0f43c8b1000000b00cc6797b8a0c661c2f5201682841ded0cffb88551fc784161d558baacae3b6cc461c3f718e863030c4f936e31b5183c1517637360f0df29a120f0bfd14ccc326780932df34445d07c0d053fd4c14e912e2d44e83ddb5a931d1b53721b453553a0646aa996be23565a6b64d87ecad149b09b8014392afb5553cb67528bc3b42fd63ed2476454bfff4b48ab7874ee8360e2186a85131dd1edab9a79e7099ff9b07e1a0bd28b7f2d4e296e204b95ef6ff700000021c000000b02b4027fca07dd252a6b0c1555105f0276db0abc6c0e5f178bc9243507e3b3073f4439b298af9b9854b06af7388bcb196e354ccc70117c1dc1d5294478448d9fd11f71d5b706fe55e4a41dbb22b78f38395064ca8bbe84628f41844b5077222a9a5e9914aaa74b68961435368e00bbc3200a21810f6b6bda1a787066eb284a7367a7ac158c2f0e2a873da400b7b53c5d7216944706de5f27aed0d4453becfca44f4a4f5773470366028c3caaba4459622000000b0173ddbd24035d8013325f2813e13da78dadf5e2e4500d468582e7e7547af7ab560432254708a82dec2299ed67f9ab29483fa439aabb57b41b0c4d9b6b7f3fbca2d04335024848640d9c47b5ada5212b3af08e216f65c3184b7ca469b66978e742b3dc5d182b298d029357274e73dc60a07f7ee909753698689e19614cbc8b785cd0282289f90e92ad1bcd0f69620b3620ca3973a039ead4fc96134d54dd01d0ae5be671ad13f32feb26cb20383cb8f9e000000b0047f07658ffa7ccca81dce4c6e9e28d17d3929b65c88e997b457d209e1620a5b65cf5c40ee5d9b07653752f17e5dffe1621cb1a746b88c330b41f28707be2f0b9dce6e73a0ec1c587354aacf4bf967b4fe4905a3ac4d3eb78ab7bddaa1abb844dec30132147f3eda1f2a38e27922bfec1bbc3293311e415dd18ddacf200c1299e4c4996d6a4f42dd0526cb63dd17c503124ccfc06d76c240e297267b84d8dbfa6b39dcbd7a3b89319b87bc8ceb4a5af40000021c000000b0226ae8093f9f958a97709b384b06154744db47b70cc47346e910fde67d8c565e66c9ea84e58f8f9b0b855e7ae6332ea321d85b3dd5fa8ef75b54954d2c975ef5e093e40d80cefa50b4db9a90343ab8ee015802fc0e4bfe5255e0a3837aad44a9d90c76a24c060daf8490025e030dbca8259680c303d7f7a9257f4d5d09eea639050081815079b948769421631f0b5d581571dfa5d0d2c20cabb65356d130e1dd1e406401c02003aeb4932e9341a98e8b000000b00f5ceb408301df82115232f6b151c07fab66e44fc2707b206b9b4002272d1f312e7bc745c39a76dea3e33a374f036a905a10dd6527f7f2f000c838aec815ac98335ed3a86d616af13768b63480b039112ef779afa95ebe44947d94fe8f0d0092f7e5207b3a59490557ea51c3f5ffebd51362e663bf9150a0dd0f3a59769a119263c8f606c33c840d96be8efc13a4a2a61c695a78412af31a4c840a6301afb8a336d9d174c0cd3c1dff5af855897b60c1000000b01a19b2654e2bc73ce95ef2136537191905feb588489a56a74abdf59571fb8ca92df181fe0e8435957eb82b9a78df15f4f54382d5511f914e57a7e4672876297f2a96c43a331d2af468060f2a745de193a094e05e0bb46b34633ff9de268ed2a886a8bcb458e1d93fb36bec80f3489c571215d65c9244ec8cb8cae7fc3d563628b291bc20cc218d545616080ad3dc27320d6ebf97d2c59cea88d5e7473fb2f72ce62e00f82dfdfd1fa9e822712d56c1230000021c000000b00839570ae6cdc597241ee9bbcd55e0836d03c390fdf0fad3edfb5a5be798155fb4307f7f83b810fdfd03b77106aede3f5f28c96e48d19261e4ca4d6ef6c2a2536d4b60d8b390522c0d2added812b785a5229a05a374231a2dbc67d09a62fef973f146315fff26e151a81ce7a94b49651117ce20a8d8e9200a9eee5479b52b4e386cd9e09a5706d043924f2aedad5b6a10f006f53814ea4be7303c760a0938216a74d242cff085ce66ee6541ffcb29e04000000b002a8810adf9335b62833d20c39b034339bf97efc66037d244362bf8e74755e8c8c03e5c249696bc110bcaa1b100922f3b9a8a35e0a7950d95bcefdbe6fd93b38cbe20f9a861d439e9e2513f1b37632b28c851af10dda5f9cdd7eba1faf5367999baa0fbc506498a5cc52ccb916de15822a1bd5af017808449eeca21501f08c6cd118ac07808379b51c986c3cee8cb8722ee2f85d4f6bbe1130f2426864b36c59bcb4e1908dee7f010a391f198e4dc34e000000b004bba465ab8dd924c3db13e8ffddeb88ba9d6419f446b975d86d30de6d1ee20815e99fdc37483fe632511c7e904188acd049820587e198a68558a7433e3a0e192dc90459ced46c167310713898020e93145824b5f60000ff4c638bda042d79dc882004e65a71ac85bd4d99d0531265840d5cae9aaf800321af7e7f433a58b1c3fffd4c385ac5d67226014586d768328a2f0926a3a1f70ca809721437e8c009d4b6d9c264d892eeb1d63aaba818182bb20000021c000000b0305b47c477091f4bc3c08c03774508133133b80e037895b4c8f9f78b1fc1f48af77aeddb594a6441735024e7a7606c06d3555e3e9ea57492d2c729d1aab69c6802740b6ce8eecbd631d8cc5e6bf7fead790973d1201f94498e694c3c03bd42cfb9b3a2764c27782ffd63e71e435a46cf15ac35d64dbcd2c738c09c8fe74e0e94249cac4ca08e292f728ed6394b4454bc0aa266b61540fb730d1ad40f51860b6b482105546580a7d2b9b9ce5b191024ed000000b027afcda05c38fc1aaddee99553cb8e4713c7136218eefc7329cacf5887468e8aa2d83075ddf21e1b2668361610cd8f63b12170e076792443b90a797fb3f1f17508c550ff442124973d23351679bd826fe7d730b3b33afd3bebd2eeaed4c6ae3e46dcf3c3d6df0f357d96e4139b2b029d215b34cb8540ddf1789776114d7b6ad750011f8c4bbbc2033a38572beaa115b72d02a63e1d961824b2ef103cbbc5641428ff05d5f1411dcbc8f38bbd34aefb0d000000b0273bc57f4aefa6a17ddd8b9091936ef38d16b48b459eeded19c69f564dfc9c5e89dc55b71072083361e80fbdc185c10287ca606b310cfbf665764ba9f43f9cdd64d50213fe5d12269c9c4d9f6da8b3bbc019f8bb860bd9de54e2bee8a43fcf9206cf08bd84aa26b14f74f9d19a1f2727258170633570f2e4dde3714256997342d558394886605313be9280892e3785161e76657d95455807d573da840d15d2f1700f61c1acccc13ec5de0c07f4c706ea0000021c000000b02dfa4a21dd2dda4cd6ab24408390a975a5341876cdff88b72c3d0f410d8c8a4ea33b95b6905abc0f7010e94ff842762667d3629dba637edbfc5abd517ef0fd69288be89a0051d7b8bb53b8b7199aea9a9ed5f702447b18ccd0f9a7c570c6c2725e79678e994a1875890c50ca03f57d7603f840291b8bce4a8bb622abfbf1031c0e07049691df588b101e11d06286fe6227f46b1c8689aff3d186eac35debad499ba05f29d6560d979bd5644890fcaf32000000b02ebb4ab24d35636dedb98611fd2baeac5d6a5918fa5a837ece7350fb43a584c00982db7aea4cc34ed6bd917c134d35be050cc200826a1dabcdb7bedf7c87570757e6fb02683f9d4b2f05ce513c6e4e6657fbc9816dbf02aa9743b2310133fd7de2838469f6c103ffd1ab3a147e8eb46d26f5866ce5c0c2dfda7a810f1316049a92b0fd8b4b1a46b4b917bc2985ae94b42dec3660c4804293746e2a7f6c06a5458f1f4deb7441abeccc130b5079fd708a000000b027f7b5d76a62113d1d967edf1b0def9cb10c9ac30841187af17616f830a4667e2ae9a11b890a5efd7d29d0d5169e023b481fd38f0d2fd666e718c1598e39e29b9154e75d28aa3769cb7c4bc19571e6e59758fbdb32d4eb097359f7cf8974574a642b9ca9e7b4c091d2cdcd9a8e8584a90326929b661bb260077ff7ff96fdf729beadb488fb5ae6294602e9da93b657812101209e0b5f1b169c7542b7a8bd8b852c5bc86c4d43ea23fc2f9192f36bc3700000021c000000b0282013f3d9e29812b467467bcf50ab74311f8dcba42a66898c489014ba4b60f83d176fb1c88dd0ab6ca7c756f059a82d3d0c3e0d46ab57537c8a1ce5578acf48008de7f4d1374a2a9ab6c7d20cdc51291f225bfe1a4bfd377339c167a004a727bbd5237414462699ed85782b4add90e5017cf3f9a84cb3458f83568e9ad89fd543c6ed153a84e038496831b5c7a3013a08c539bd3c221da0a55e24afed79bc2b5b0af049a4b52914438a54d2cbadcb0f000000b00b801caec1558a7472aa4299727ae3f394c44b814dabaac4292f0605b4b5941001311be3b23f92ba3eb660f5ead89dd14058c853b7346d60d62a5436307873ca5f1054a55a73020ba9c1b0c8991ea43822f1c140f0a9ad87e78f4fd34bd0a9c6a2dab614af2a1968ffcf57a72d6f6e4a127ea23abd3c168c65a7c814f8bfe1a2ed3893a5e5fdf82d0381f838dc6d972c0a5b62d808b56eb90ed746da789f54de6833968818e0f79249cf4bcc9703c01b000000b01ebca2feac7ddea430abc3d7a4bcc836113e86540a4ab4ed8ef0ab2611f30c337b820d0e9d63ccc9d66d4cd3543bc3ccb6203123ad70e2e5f929ecdec8985dcc0ecae348b95c4e77bc944fc1b49559a222e8a8059b7e0a225ab1398de32b3e7eb576bcd711e275c0051b2a54687510641e515be120590d14d6bb400dc526e27099575fbd3ac8aa9ddaa2e0cd741a1f402029d7b14b5434eb818327fe23e65c034a91b9798f6654048969c021354c4db80000021c000000b002326f53cbad3d5e6f2e5a157f735e67aa6a75eef8e423eb9b2df18417605006dd875e8ca5ea451ea68217a182eb5b3d716bff7f16f35d1d253015e1470d90e73ce6e39555707f2478f7eb168c0c6a9648264e4edced7d776eeddb6abc600fc11e2c9708cfc783a27d1e54dd33dddd8829e7e6868f747f59053d87365256a7761cae602609a8b695473dfcb9e75c6d9f0e05e7387e09cb71585a27f5ff186ec6dc1b4e27178d4920dc0cf6bffafb97a3000000b02ddde8aff9691d48a25eaaaafe258b89cb2a169e002ab5259513d8bc80587eea66bf30017c8373b474ecb1af419c5d54e278f90c4c0dcf4e0ce71d263cc84cd0f543d595bde82aed72922c2fe135802bf5991ba8515335fe5f8e0f24277fd66c54bf2ff1a28ffa0c6c3e35aa30b0ae4804a04c1be3950a730a929c56509bdf5daf974e3cd2882d6cdcaae2ad37a1a7a0122108244026571dcbed28d71b8032de9780693162180fb6dd74a9293a317459000000b0272cfc810b7cb709f818df188322b786fd4703d897511d8024728a853957062dae71a29f25ec66d37fc471b385e166732b8bd7e2adde11278ce3c6757492f99a11c3978310459ae947118207e43f23ab3218542a1d9a1ba122736789aa08b1472445c2f3507fc42e9f35c7948d20520e29a207c9649157c6915fd74a19342854026091edfa8ad8e3a584d62ce8e081892b6b5b4fb6cb02ff821a61becf2e883681c8be0e51220235e601f516702a62aa00000fa400000168000000b029cc08d125a992822f5f6af1a7095aef6c1b85986a6e78352c657d04ad3a09c76637abd87feed48e67d4de205b6aa8dbe70fb409430372d0f1baf0ff8c7e5a4055d65d78e7b1076d7304e2595350bc97c6099f548973c4bd0a53ac9c41213785ff95efe438ba17aa0d80a0ab15d684972ac73b65749a5ab86b8799d25690d4bf79e47f5de81b6ad27a5a65b036524eeb19e0228297f207b88228ad8b75059440305a416599d03b2e67329d306794c34a000000b02e262de06a68839d00787aa1bedd718f2bb1a15fae1b9c1d339c40e34685f25d74d3b6b0bdfad7b980c25100779cdf5edbca71a96204c209003cb906c9a8d12cfffe04310f840020a8437a01ce78c901fdd754b7cc76483226c778a55abab1bc61216a00f88fb823544a6410b8ac9c9d0910855dbdbec81c9a1007746ffebba43e74ee6ca4d9b09b1c0b5e24e0f1fb90222715cf274fafbdab56839cdb538f356c8ffc2663e562773f6562443632487a00000168000000b008a3b42fac167bc707bc353e8b660a4a7d0e48e37b6392371c96548dc2011e07cd9eeda1209c741cb16da83127ca7d35ac70fcedc950afee0b4aa991b0904aca5a7a07806e0afd358b0c8bb94e1239b63228693b429004aa96ee547a02f9a64bce0d7502a2a8ee906bf8b26443918bb12848ef078dc4ea7343726012aa53f4d10faefd474af732560f9b0aafedbc96e206053ef39bb6ab5e628e7c660032113ad259c9ed6fbb52c64ded6e63790b9697000000b0006070e5171b394e4e301f5ea2ef4626b37dc18c75505916c19eba0f6b0238ded34a870edc3ad6aed91cbed48c9773122ba5f20745f325cbea3b9f054d8ed575c344662412eca810a474762312ddc69790e6d3f2741eeacc305696bc5b29ec93ab91e6aecd6540270e571947f09faea3095dcb67367a6217af644d5ffd9bfa04aa92e8ed679252a0dcbdf7b14a1d883a1e00a4b7860a87b9890381bda1eb4240265304b28629cba0709c3ea84c4be63500000168000000b006e0af21f3e056014ad8f4794c94f20d5e2013c900c9f8465e8043ecf8ec7da9330dcfbf2051755f18219ebbeec58981d973bd99dae675393a4f247a5b1cf45fbdd5be2583a0c0a0efcf90fd39161f6ef68156736628277d0dec910e1dd47425997831c78aae309513d7d4118300e9701f1972e787cf73835ef7efab4660284fe319d7e70527c3f669309d195b97e35d2d0aea47e7621c6415711785efecc187beb3cc2b55849b7014eb343df09cf5ef000000b016aefcfb4ba34805d0b74e650efcdcffac45d5beb78714ef6698a1956e0c6dc82c03f2f011ba145aa3f68cb0bfc7b8878b81d7b08fa51e5684a44e66468f565e672cd771b2bcec2b7d0be1475d82cc3088066a074713933dd6820d47e6c3e3ba6e68276467066eb8738b5b25817dd282085c79b57cc1bb7ba82c728697f82eadfe223e44e88e769175b931a723b9a14026457391f8a947c9598c5b97639325eb5334712c71b5f7681f59cf7d5e71680000000168000000b007d79c8a63273c2503fd7adf93c552885ff9fb3d75641039d9213d7237db6d4f0f1ff48b02876527a3bb25e2d7d5bbf9f3ba798b24b4c6985bbf5f437f262268fafe4cd7e843eb8d3c9b5101b5afc56db814c477c80ee2b21dc3c815aa1298389edef419fdf6830d2ed3f310543cb73323c5eb474a29d51622a4e46518c839c68d0ddcb3acd3db6a644fe84dd2ff6eec0d95daa85b8b34a29684490f7baa0defa439d6a75ea98b44e7e3f2690e20bf9c000000b027a21b3be2f26f56daf3258c981e45c044c897de28e4770c73076905a938d7340faa918c9c0d02feb8d5959a7e85ec84365db45fe6324298ddb04698b6fcbeb0c358b363099e5e215bb913d172ebd766fc339d69067bf7e324003e8099a7608125b297a5290cb36bae49ffda86b7dbdd15773b491acfd06ee89bdda0bb207f6e18190c71c450246915cd30ad38f2efbb08e9760cb4668f93975eed5f1bac265735b8f9502f28e94bd8b530d2ae49544300000168000000b02b4389c4252b98d2b2e793d850026d0e555ef7f043b00cad249fce3cc56521f6a7438db1bebbb8aa8d8a67eee256882e3dddc15958cdfae658ea5a23ef2a336e3bc4af67e70c5475145c224896e256d7e5f7f43bec37a3f7097de9e8ad48216b54ce58f4630bf5849231a65b7645817523666bb0a449189428d50f66a205f7ce7f42291d6a24bd30048d98a8534d10ff10c1c498ddba43323d49737fe5051674f8ee85bc97d1a432f037d8bd3dcc1636000000b00768c4bc5bd833df4f79aeb7acb57c3c96fde42b6ed88bbf6b48b68a98d2aadd38e2c8f24cb653ab4230715529d1129f766b7f5bf4b4d619cd6808730c8e8ce18363d4494aee05edd80a9879f2024d6f8187b47b17559a304326e28e3c0b5157286761530c9055ceffdef5d463f4da9417efa9f033e97e448b80cda97eda81be4ce8beb3be4f35f22ed9277b845e2d04244691a82c4bef544bafe6e3bc9fe8d259196818e925bd490561350456799d4f00000168000000b007dc7ff98229ce22ab2673eed239a7e1f8ef036a6c29e24a64772f06d4c25a65e49b4e68880e3e71e20ad1d899393a5e04a85bca635492a65368d7b780c65abf10378887668d9baddff28c7a29de5781712b3bf138506781a8049dc6a65f65cd102887e79e99778d615243a78870733925ba10c4aa7db71a2f50f7ee50beb71b61c1d94b5f0e0925eb7509ccc12a80f60b1f2c6cd87da8e746652ce4f096126f70e12bb7bf8f47c9acbc769d07246d90000000b00c4327c8481cfdaa435ad65d5adada24d863432d395c352f6dd5776cdacaf19255c4935a6277a4c3b60e67409dcf1092aa643d2aa9a8fc0f58188401ddfac0ab28dc6a142f3f50fcbc9cf114298c66691280115890f08319c5e043664feb9471bbec37c8edc7b5b414f0befae87efd9b30412732648e93814125ad5986f21242226e3be95f30e53cc09f12b4a56934cb17f9cf93b7377a897c0d2a9abc0d9af1bc968c6d1a082b50bd901e16250e395300000168000000b00a6f5fd1bc6cf41dbb48301f85f7aa4735899451d356447bb861b00ed2751f0136935de52217d23b1aeaa91f310525c030ae10f9043b184d6a0d5bce4dbffe391a325a69094d225bb9f4c48ce115ab3a20761432724b71f797aa2abd689a2506c71b14fd2e97298797ab1267d0daecf624c5d7c24cae377a9fe5b1a8c1aa29ffa38a31b6ae98edcec0df148982d902f40ae2f2e6cff9e4a431563782e2206e626396712ac6b543646b29fd3be50b8b17000000b006ec5c91342357a49f973774a61ab514bdfeb66972fc2f702a825cdd7a2369b21f8c94d84292a0c272e118d61e8e09d1858f7f89d6be6b424f1379d3f736acdd4ae5572afe15abf6eff0606b2abc54ed0f6f170260f47f48a5284e3f72dffbe7a308d6ffc8ca820eb58ed488a6ab03ec0c072e042ed4a1064553ea2956449e4646212714ac836399a445cd0e0bce15c0134669f7ed3d667c3166e845de652ebaebe8f99c65d4555effb102ef0d5f175000000168000000b0145e3001839a08fbe62f4002fb2a17860afff6b18c01497e7752e5fa3b991c7f3bca2cbe9fbd552536910bdbc301c4e885ef615660698b245d8cc738fc12874c63b11c8698b557bbe62759d386560289f60cb6400ea32b33aaffd7251ec2056dc49686526a75191520df5dae58dc33bb05cb4fc4f2012c90133c7880c6737773fdf096e6e6e79a2db1eba0e920687b0c1156e26a9c31fdcb2705e6614e522a83c779930b554aebbb9e29455aedb017c7000000b012306248d60e6026aa247fd833a07e49533d3e1b42b3e8101bee7dc59a497db5a87398d35dd1b61b9ba740957e37b5031bd6c3db2c1653d29a30683a011a63cefb317e5a8899a5dcae4a439fd0b62c09a4b3ab2e1b751e23cc34ae295a12450c0153cd2294addb8084d9ac0fb1bff779173d91d09a50c96487a7b091720ddb6c4caabbaabd02b8536f0a4e292968e8a9041ab61081bd2e06ea1c6820b9a262790aafdd22f46d92cfa52d27b28777e38600000168000000b0034be26da65e82af5bfa0535efd16d703f75ac653f86fa96baacdff5923cbdb4c6f6eebfbccfbbe408d585c5ea4f4bf04c02a003852aa858573513f81410f59837684dbc51e2daf908cb38c17c4a03a7476fe6711412b004af9b7c375480f2e4d0b1f142ed5af848e671d81544714d1e0f924b152071f0655c9889e56e303f16250eda603542a39f8d1f59e02117067d1f71511291414d207b7c40bac5ca2f2356f7defd4c50df482b63e2771a092426000000b024d076d6b35becef6aeaac4796b6d828843e59a310ad056a2566a1d26d27545d62c5a0c53a1cc2e037785b750a55268353abb67bc8d57526b7c91d408c9ed259d5129f07a5cb95364fb9e49c96001125fb4511965f7365bb065205465c15038497ef9fa2b98fa3cd8ab4d0f3143e372c14553cc11b1d75370cd5cfa1412cb75a0808032532c0378d85d07da33b632a2d2e7af9f5916d18630a8bc7aa2f925054d9e82800ab76834e57640ba930cb601000000168000000b023e1598a7721a961babb637e6524e59c33dea50387d785c78d3a575f72282866862c53afbc8f81e28b259f3bfc702a4f655cd1deec2114f42f7ed62bae580f4f4ff947ea7e3df1d45e288507acc76263577b175ca599e42a0940e87f38e9ec2322a85fd228375de88d1240815ecd003f11f01ebf31d356d2087be76737dd91852213ef00e5e2de4dc33e8bd912dd1848156181cdd75180ea8ff80bd8657bfbc829f2eee0278f6ef2931586eb6622f97d000000b000a75d6c4caca13042d7d0ffe135e4b1d6694e40c343235b21f813ade0219fb1e18fc68da3bbfcceb1fa3e4538754b804d2d86dfcf8c4566186055bde80af3793c09fe903c6760f81634f5987572cc784cc4345293496550ab0a3b64ee198ef350dcacb5112ca8dce46dd9d10d510dbe2af8827958ca9126e4c66d331bf9a6694f44795135104ce3ecb869f9d9ae1ea328905390096410dd5523f9db4ded91ade15421264b091f5de5d161ff3947d35500000168000000b01dc49d9e0cc96ebd3b7138c1f03fddfc9e79427a43e01d30a54054e8ed9d50e425dc24b6ba71b47b6a0fc1e2b827273654dac3d95e2737140e0cc1e34ea9beb033470f48a2e6f5cea6ce0545f90015583ed5fce276d318bf4847a4dc7dfa937e5910d0754b3fc67c0d15c499c848d486098c20c8a7b68081e17bda40d7c100675f553acce59576c5914c5906a34519a215a9b9e8ab78bc3ba9b6a61120d02a312c3f5c1800c29531c296cf91ac3e37d5000000b01de09df9918b9f2d53801b6b661a0e4cf09d4dc5605aff95448034ea0c43181261b7e2c8747ab7ee1b39cea292d57932a1d588fdeca9d1cb5776c84ce8044319c81621bf754330ecfd22a695d433cbecdbf1530913624f2759ec668ff0b3c15d9619517c3e3dcc896c4c9e0506b61b821a5809bde006f8d07f72ca9f652723b52e0e66bae547c47ec95a6fc4d6b202441287e536ebcac2d85a0f9ce5e3b68964d78600d5d6ed81422e202ed8df499084003800000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f73700000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f60200000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c11000000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d9000011000000021c000000b006768029cd28a50360cf8ccfb521f8df2980522b5409cc07f57bae4c0e7f07c302a82a4981a98c94be93fe056a53d5d1b719447890c7a2e9786f16f70a31b8538fa9f6970d6e83893df80db3beb681103594ef187e233f2c6659194a07ae4149bfa94aed447e576b09b02c8a0df188b1070cc4a1c7e8b7852b49034c52479c1ed243aae0bda94aa08bba7e03535892070a25d7b9481f8f07047b90cb47c6cddf183b6246d6083e2c4dd086d98f71c0ea000000b00bc536816bddd91ccf851bc5a3485a1b2e6649809ccf0f67e7bb599892c537bcd106d10f021040a5e2d2721f2d7eaac3ab8da6838e8cd9170b7a63e2f49f94b0371d6a48fb4a83a11d4b457574d20a5db86465330df0638a813e3352b67610bcd083a387735771bd44e180d7f88ffca2127e6fe313d9372ab7e8007ddb18e7a5c0b3ffe689dd97ba4c1354036f9fe7f91afdd57059798a982a0269ab132be95fd6946a361ac9f42bfaea9ca7bdc49222000000b028f82e3e673869ada81e80c781195b9b824fb203eacddbdb72a33b4720293257d6eeaae30d183598484afd0359c4990daa5311c7a688083b76775c8f1af7bf83b8d3947c2eb986280bddf8a2566013b58e8d9fd126dd8b8f9afed83201582b521038c136aa310c0d83549bc9c92378d820b4c02ab3d9a7049de3ca8d7a3c2c6d0ee09ca69f49992e2ca7846195414f3f00142e5c2251e0cd61ab065d184a425c6a7826240543aaca90e41f26116fdcb20000021c000000b0148649437822ef41d5c1d1141143b616a16bee2b984a1c5b7ebcb79ed08b6888fb4c7e6c4480715d5efe6d9fa6564263ffb6670150230c2eae30a77e0d3f20689f65107b3cc4ef25eca3d09f61e7b07e1c79fbaba39c793d7a06494457a5213b40374b7b474404418430cb9b06e2e4eb02045cd1a3b0c1b7726821ec9fd440d9029297fe40121caa929726bd408a6d960dc3f2bd085d79294d73b0df21ed844665d081a638f34a600c04194232ade860000000b0252dd989a044b10603610406932a6556f2b7e5d248e6a6bfe3d40b75d5d2955977c4531e5e00f843b8b1654167096420e4dab5cb3fcf7eb7472b73705802462038c1d28d285952ff95664393b36cf28067429ed6f8252041e0f99f20851b3a52434da96449835ff65453e045d1f305bc1869824c6ef26416666295dd9bfd6d725230a6dbd8217c4f5e091e55358aa3221a2b31114bea9c96bc17b2cc8c2636f3e7f316b2d9c73137ed2289329e02ff01000000b027ee0aeb5c02f81c5fc908b8407c5a117042e391a332b299abe65ddbb174fa6d525ce1dbc42bc34fe0735e3df3dc31b6dcf767fdf4f72caab6fc4380ac58185a0a2563b8dc7566ec02950d1b45d6383aabef90e9fedabb88385104ed1089e9b498540a9eeb767c16528ed74f266e599428ae50bfb856cbd15f9c5bf59c038e5fce0171537e8d76622e984be41af036280070a13507dff7d2d01c43e11e7b24de1126ecd66a9fe3669e51d153b7636f520000021c000000b02785d7d8ea54e2551312340d0cdcfaa79451b70f0d50940068049058017885756b3783578c62913420364037346a7e21101c5e73d47f4934e6777034ade7c8b99b0d6cd2430b8e729b300728191261bf847c458d41b73616f60c75c028127584fba181cce64797b0723774c9837761bf28736179809c73b1db47831bb976f611e7bde1f90306f64914eaf41257df861b20ee642537c720059997bab2e163ca445eb4bfaf46986c3f6b8d9d0ef733665a000000b00bddd4808dc88c60c27241a7049ebeedce2c0a3673fb61936ea6e1e2638c27f892820a49af91d7a8d51adfaaeb659a8d249cac1c4baff0a86decae44df49f2a447a89c8dcd96dea1abe6ed6bd21947f1a6218892eb87b1738cfea9354f13471f0001ba0612e6ec4a756e54b690bdf74c17ad49aa2f06d35a546531433bbf8dbc99f88ba3efefb40cbd2b25b3cbe3dfbd1d5188e64a5447a4001f8a2c3b3f6aae2efc082d294a1644326370099c201dd3000000b02526e383d609576b23a543bfa03401cbce4fdef48ad4600ec81932ed67b2eea7a928601f76ec22d9786964f389a1cd7fe34339175b3108d8a530f82f160a3324e71782597ae842bc8d101164f3c19545d76d6f5389a3cd37a3887be2139c6cb1cda6a7f45ee5d9f16673e82d41a934632932100d24dc1fcef0c10cc0a84f79e15abdab22074350b0913a0bbb289e84951f1308a34ee77629c0ebf2f301d788af0972d045ed3af37317ae9d0f7db6f09b0000021c000000b002488b885fd79f0ffb588a2882e7ff5c78ce11595a429e9c11ee1785c7c0e68d606d6984f3edb61c77c411319f81c5c10720d2a502ab4b10d5e3fc6c2e978af508cdb7a23ac5e03d3e9017484d5e6076cfeef00d61d69d7f1a00959c0ecb8df673cb0badde6c70b402065ecbb95adc0b03f80c391a57d4823c860b77b778c8645678f5df275e59056249e02f8913cb110fe764d8899f1ecd439a335d1b0fa26b2aaabb001cddf9471cbdebc6381ee00e000000b00e56eb7c3fdfdb656b279346152bf0997ec1f2618752ce25c0261d32785d6118af312217efd7aacafacc0abab5ca5fb5fd2e91223c1d44e198d6f9f921fe7dc4ec7c7beb64322a06132576e49a468c3eda011ca5f5ce2ea4d1a6809db9b11694f68d12071d4eb83dc8d843ce7f86c7aa2a14e423ca0ae451922a024bb239c050c99a9bf13cc0e5561ee0f359cea922b920dc30198fef34e847952850f6caa5ab1a218a1edbbcc0eff93a97a01b63d24e000000b0014d80949734369641f807402bcb2340abd10e5b0b157db1a1dd3173e94674b3f36154d76f760405405600cae6a3cc31ff1c8827336c7b1cfae4a3915c82dc857068aef86478ad627f5abe07f9ea11453f2ca805c5065384347bbe4067bd4028afe098065de8872f064efc88a6d5f2122558780f05e2300a37feec46eb6de234c53b33e178846039f9d91a01caa644b50735b3f1ce7f7ea0a9fec8ddfec6227ab97148cceda9c5515935d59272c312cb0000021c000000b01103475dac14bc9d3a7dfc5e2a04cf35703b1f609a792dd9723bb24644bcefa63fb1cdd56bbfa7ec717caca4b78c315708ecfa0ab548f652d13527338361ddd727b61d5aa8b3b13fff8251dd2b71d375cbba0afc92ce474d0d1664fa0da5212a1d1883e3165b97e1f564786e6a7693e11a97ead8c64ba2aea9a3f609de3181289608bb440edeb7635e5c0f2e5990bbbb1bac663ba1856fd2ca6f1cf07125e137fc310cbafcbd40cb82dcc8217a7ac9c2000000b013cb41bd0f6ff802d3cc83e3234640ef1d0016006cf0a15f05c62dc0f7ef33844ec287215d566400e09307ba827b40c452b07fdd0e195409b7daa2e32876e26ddbdf7030f274c85537f1a347f4ac8d7d4ef10b194bff3f9e9240cc996480749b4249ffee57eee1c6893953663ac2ce8c2dd9f502aaf953ae540adc5884520f2ace42ef608837aa4aa29a4009d861849b2a25f5cbc6a9f3b78b4bed1d0b116abbeb72a1ca0fea0d97c8a8aa07c8f1b872000000b006015ba442b8fa15aa0b5cb0a5beb539fc4858fee983c587bcb6d5499d52d77a149222d8e8e711ec04b1fcc3aced5fd7f0b096fd7055fd6b8c589cd000060a2d5398aa31857d61f62e0ce22da89e31eeee1d3d57cbe496559ebee6391b1cf301a0ea09dc1e46116df2f779b3bf5b80a2236d8415844da5a435248878b4a6bd545dee8217a6e8d038a14d41bb51ce8982290b12c23c31c856046d94d92fc96bead52270172ed40b131da45aa9e39c7e150000021c000000b0104d01dee7bd9cfe5109afc524bd87eb95d348484035d1e69eb7ec4a8964377ea407ac7c14ead237a1cf118300208a348320e319f4f2cd48aaeb9f8d896ccb0c02efcac6818d02e10781ca37f308983902fd38e6a84405601b03734d96c28bd7cb8ea430ffe36777a69f5fec14bdf1a82fe675d8206be460689eacc25812ea9c3756d7a43dd89b1b5c7c1b26b8fa39dd089c3dabfafd85aa08adec0e30d08888400f1cd7f41ceab010a98d5a02599242000000b01c9169d41291b77d9ce19b0a054252ab7b726e04fb1fa0146b66dbebaba9285b26298ad390015dbebbd50264804d2546b780a5f3b744c41094170c098a8f14452ad149686bb20ef3747ef0d0ff40bcd4d0c804766567bce6098605b2884520dc2ad7d1ba403acd215b4a3c598b5dbb810307eac876137461600886fcbde5fc8db360b96635544493d3c79f5bb44793861e16c65ac787c35c693bf099dfcafbad74d2a731e9f8368db921ad307813f0a3000000b02081d302b43ba7aef8d05a8678a6a1bef572d3e44cfbd640634d03cbbe896c6a48ff64898b2850d2299bf825f9ceb42dd65342607ef86a0602581cff36d8f9c2df7792a004744a147f4bc17dd6f69dcc4ccdcf6c3830162a71c136960c235a96332e7296b4672bca291ad7efe55ab81405bbbb2fe6151f6718d17bb5ec43a3eaf6291f0dc6e3271a785760ed511452b81b33f6de6e2a385b36f6e7a0724b402b781b688cb1d0f622aa54b68b119b57440000021c000000b00128255153a773decdbb15b57fe772fbadcdee1561dbf3e00a2a3b72db48a7a197ba156c9ec1780caadf081c2effb4641a78569dd5fcc0ce028ff3ffa805698f01006ea126d45c6aafeb331e63e98e1f80e21d04548d6fdc8315b81e716c14095b685b9956eb0edf3f6b88108f733eba26c512e57c6f4c5bc360d761a7154a890f06bea3525f00c4edecc158c5ec58b61642bb774fe11b07dda17b2cce8af4a461e7aecdae5d70503635a197b09d9692000000b00810d70ba15ec16aecb6ed9ee190c6a98a77e6cdacbcebdc0a480d8a0a98df1106b30b1d520afb283f7e3837218a27d51dbd139980a128b2bcb1e04a24bb8aa22971cefe5fa0a5527e409743b7cbee60ff196253610ec6c35390c028dbac265edaff6a7d4d3d024c59be940438ebcf74218cba59f8d93858b6dde962e2ea757bfb4581545736ca0cd21b777b302da110261114d4b2e35d17076ffca1ac3c76ddf60b8995e7eff212206e4a9867d95e60000000b0287065b83e3860e5b117e11c28351c6eb3f3e276f0a8fdaeefb06bf86fe1dbd982ec4c6565ea6fc66e5ee4a17fadcb5195d40840ca3979f52d496027d1421a396aea9e28d77fca403a42620fd50a0b05a754743ab14d0c3dd4d11edf49193e3681fd7739bb3234a108b9330ae92b7ee62a7316e2b446fa09b83c3d224cd6bcb450152c411d8b15c03538b6f5f8e444872e80a518f74762094cb7ba08d7f2c57e32eab20fedb23fdb92d5b20f483631cc0000021c000000b02751524b6986134323e8aae7875db506d4c103de95869ae6b413fdae6d59277805d86cc8b443d620bcb15c4a2539b3088e117d679a6ead6d1c047c16f6b706d07c58f96794ffa1aad2ee49d63b4f4f1e3c19ca0d7942220628375a761c34c4be4122b1beabdcfb4162813447b4abc7ff096372cb1d6d130ea442dfcb4fe44c01748f71a45c7b12bae87a96714161adc20055b691048fe3ff89193068bef83ff2c855b1a591eff0cb56acf3591d571d98000000b0102475f57c8183ab09e64112d29d17bd1fab79efc5a13175365d42a53b893cb315a7bc1fb54bdde71e9fd799bc160577dd1e2cb64f8f5062e8ff6f7c48f081f3e1445deae55a285a54471dfc889407cae7c13cfd2797a3d6cc7579f0e664fa5385d02b4966514564391bc17497c0166c2aaabcd83dd15efc4381a7ba1a9b06c179c5b4b1cac518b421e848d1d07849d5033ed8c466269979223dfe180ac1e77612c9fb6e844a2c8da65c6450e5050dff000000b0154cb52a287703dd50e2f0b71078a531d61f0b053df2fed25eae6da79ef187623eb02db474e383e573d4e27eb745375d38e47b57ec2cc09828b89ea7dbeacfed617e55df88b35ce5eaa062df2b1fb77b0abf7ae693d1d3029a96f397152edf3c0875d0ca5d08392be285791a995713182b4b8ee63d062144c3299942a98bc37945e528883d313d3a922b352f030d782d0ffb629cc648e0a8f7d3fc331fd89e4cdac71d5ece04d7b321c23111fb6167c400000fa400000168000000b0031e51040e467f4a1ae805f92eb4c9ce62c3f1f71fbca2427618d1521e909d0a6cab810e571646cfddd139f6cf59c2513433a19140dc1494c5c5750425a41c485fa7de41f036af9b6163f4d091395ce5111312fd576bd8a95a72603b67a0c4892aa9a063a2bcafb44a02edff52e361f103b787ca86f192857e0a47c9b60b6c53ff8a2673955cf8da160835923e477ec1111a6cbfa3fef6c8005c1df1bfd81a200551fd5c1e001aff6955b246885f9035000000b000d37f011516bd155e414e5ea3d04c1e100c6fcd186ebc04b2dc4dfa93e383673497530a0fa2324d2d8fea6fa1bcaa72e1facbc60ac4e33eaed540cf8de657635fa3a8055499d3e8e6c067331e4b96c9b69b27ede9a6d0d2faded42ba34ad44807dd80296b75bf10cd1952bea2dc44450895f5eb812d1692af24a9950ec2d4f4d2a94fb07b09c157799884dc4b0c582b29104d25638116290fa83b88d9d8ebb2704a861f41ea106047262b211403021700000168000000b02ef3b6363d7785d298d4b15604d1c2349c97a817d1ec4fe3e4baafbdfb5c34424bf1745d193807f7bc0b18a59c71efce7abbda0370a62db44b9ad973153932302a1a0d977fce2ad416722364d2443576d14e8d97e4c5e023f31d2cb88088dca8b90c8bfc619bcdd8d6a09b13e5d3ce2923f442e4ad210c0bd8f9e037e6347ac066b00c17010e39588cac509aebcc2448269bc399e5918ba5c4a40d8b8ef1620b1bf3259c4503833c5f26861fe79782ab000000b011b64c695112d84b8780ff647a6cb4f207e18b294ea9229d46dec33dfc3267d72d893301be63e85b2ef0fb4402931a6620750651b2e14763c1826830e15eabb89065f407d0082908e7f856df328f0194421b322945296863f511512153cbb1ccf12d0acf3ad503e4c5a007c32e35a3b71825d7070278aa7b0593da51a157c79911b3d5a15772bb27e01868d2b7645c6b05a7d2a6590e3a9baf20c4e33d1d489af15f589749f7823576697ad95d1e55a300000168000000b02c296cb94be9a3a6f22371026d20cbb69556c8e488dbd37ee4dfc8f5b3af7af4eec4389c8bfea29ea3417898d9a4e0578c5b0764bee3f8fdb12b621dfed96002d716be45895b660ef003bdd7a4d52ec88e0205032f3369b72c3d1cb514bc31fb4b457a920222b83f3dc892cfa7605f730ebb6ae7f653cd364521124170fb77156982090dcea17a54180bca30f4e24174195c93b07c210706d1b896028d49dd367e4569fe0ba86f44432c7e814ffcd0c7000000b000461ad05306aeb444ad6e1fdada2057a67d2204ee19ee5a2270e8e66c26ed95a9ae80245f31da836117c20f04dec8faf1bed2063205fe44de621a4d2936ab6071f4257d59f46348e4f02169ab202942b90923fb8c6447ff4ee66d29e2a2d0a22f5333eddf287ea8dd80a20167d25fb82697153732013ac2ccd907c99038546f38cb6fab1a29beea6c909492f4bfbd482f7d9d7d9607a62a30ff2980d39b18dcb3e1cb6472f5357e54fc290ee245e60600000168000000b01de6c6cee479a4c5bc6229f411a291c94940a941d27e7e6b9cd442568037058add80918bcff711ed6728e37c90ac55ae87085abdd40bbc3085f23d852d8015d6d2d7a72117cc62acc5153e0d67427567ffefb19abfe17f99fc6e82c4964798883761b43103cf0f9b4803a7f3e903210b2f9f20f705d6a44b0fccf858f1cac066735bcb3ad3252b29fc70bf22db14f9f10581b774791c5d78325bc5fd40ddee3dd518306191706d2f7523de259f4d5c34000000b00b8ce68f93a532aad8809c99d3967299b84d391f365ef4028cd52d594de946f8aca5313082e9d8848e59d247683da8f0df1f53dab53fdbc512d6ae9fdf0c14c34fde79087518ba3453bc6fb5e96fca87a2f8dbb6ea31d805fce3662fa34a15ded99c0ede2f544ac730f2021ab7db4ae508ec844545d16ed99b1dd5837d3ac9f988aef852accafc1c544b56e768f7e5fa130d6bdd8d406be2c37e7e36d98c0b998fabef45b837041764ec32a059cf488d00000168000000b0048564af9b9683bcf79c6d9c1855df2c6bc1850f8dc974310425db324db55a15ac9199387c02a08325e4521d92b2b0165196b00ef00a6a5b90c2455c081e2bfcf5ad4b5282629a405943c44a546e77571e0a5894b44d8267890c9a9c23d6291df2efbf0afd62b317d2c7d99e3da010d30f94f870e0774b74e2bd522ee81789c611bb9bfe9dd039904449e9631066789f1d2d7fe021d8faebf6d479e43569c854815a8daa61c9d22473bdb76a4cfe27e6000000b0261ce530c644903d323c8795ab0bca1ba312df7f0d3541235c220cbf30a29b51067727243f824a65b39112f4f1de8deffdde10c1c747b7e50281fb01f9e9dc7c739cdd4be8241f85e4dd3ff49b0e43552a5b78e740f529700b0cb39d9a6d203b2611794bd65c3b70855eaa32ae7cedd904a50053de6f5d15248e47d653e5d585d9cbb6895865c5e1810b25c48ba6bd7d06f85df401e323b1569185c76c0d6806b0d0f707a710a8928f0f8d082596157500000168000000b0093672f0cd0ae7a0ab38e9c60c6fac81a7a19e316415391b4f1e6adb563e577e48810e1aba5703256ab5149209293cc30012cee0a0d5253f883c223a262f1c2a9467319267bc476467ba04c97a4e863986c69a87bd8a8e1df5462f821a6a0e528713765a76b0dac4321e9eacc5d29d1f02319f5796b4110bf6a9d13d20307976e58fcab3184fd735af270bf1196bcc5f1665366383be120f6920c39d040c2b29b85d7d4989b5723bc6a2eaa1a5104f13000000b0144042e194f69cadf6b69dc8520c58edef89490b7cb92fde63e641aace529043ec4d57abe9a179f21d1fedc0f807c22f0a3ee979fc6319832015b594f19259c37d9f969a4cee3129b4b3a41e2b07c4456fdf2d1ed11b984f76fdda1f1b829bf1f06e1289d88f73e9e5463d935c4e7d160b3e32e661e628138cb03c8acb09977bf5471d6b967088d88bf612276ae2eed60f4910d04866537863a422d51409512794d5b49fb8e48d17c5e3d04188fd7aaf00000168000000b01de2c867ed5b8402ef91b3dfa29eeecb7b7a18fb146c950d3999a00c5550e12a310ee7d2afe72d629965c4eb233ebb2a75e1afad431799f920e2ad94e56f8bd175802bd6d97eaa7b41a447f00c7495bef02ba6168c055135258fbb77fe02fba817da648084b4d76848d11e077763fc1a1ba63ddd52fcabbe3cb7fd8eefb638e371e02c1b380ba7a3e416589f79519b3603352890cc251fde1d1e83b914d2d6bc68e15534b3b505f69e126f14c5444056000000b01dfc760fb2ca5d4e09580a1b8b9654c9856554ae4bd41df035cfa952a0054c21a2c3062eaff28d68e764eb44a0a3c1476975d9f20ccbd8bc17644fd5e585164a6005b2f238c51f8bc668a100a4663dec1243703aa15e4dc747d0fcb0737846f88bc5d020ae6bf0636812feee7e49beeb0dcc9192cb081b5fc268a842d37cb489aedf6d1f20423568f5b94f084f3a607a163981cc33e8513f61c5b1c78b65611b9047a9646c4dd12e79a709a9428db01b00000168000000b020d955d8ec78a29a73f7cb029ce63e2cf639ca0138de833055bd2f719e620969219efd20c90a39ef13338674ea461aca8dc6d9c9ba106645d84498ff9892379422616b807e6a97709b1fc8e57e7ac128be464296fa5a75228ce603575349a4aea5a389261362bb8941c5407ccb12a8c325357865f7bb9f6f14d62b8ae7fe130051ae3d20be185e308ea3550a20f86af80841567a67338501828267eaeaee93bbc4e112e684a4b1bdb2eb56ca78695b90000000b0049b8080c60e519e16c560eda5b49deec10fdbe4763c4dd51304dc6cc3f08e65159346fd753ce35e1386553d0f4e58e6ff1572ed1bf41d24380799ad13c8b673bb30010ccec4dd95af93762753a567cf145d6aa539eaa2045870789f455bfa5b5d48a21ffb412a67d67730aeb0c4eae11edb25c2b3146a4578fe066576a0e7a5fe9761144bbe4b98d87cc5094ab25e931c2f50e46dc5b96095c93e5647b70034d9cc980a60174ba147eade7e57fbd48500000168000000b02ad88e27219ea83385ebc8d7b22e12a56447fd8235f6e3d2e52cc5fc0695584bcb9903d92702aece9d3c581a06824bea6e3d2250226c071af5b1d04588196954046ad585b63ddf3cd5d32af42409e4d49c9a9e4ee85f108ffb213d951fdcf78aa825d1234d112bbf52d10c4eea12bd431b1d1362799786be967e589fba49951ceb39dd3e5760c1aba5f8458f3c7962a80ab09a584b5d29af6632a9b6b2a8f85e4971996b31870e136751e0c6b1919463000000b02f0eaa976e9f8c1a5ef60c9846232280a167f3fc424d85587de9dd5d266e4558493d7d357b8be022d12bf8a56d7312377481bc43182795ab1f82dcd7179baaca82a59b8eac8f7c79f38275f80f0a5b7e7485e63e54302628f12bee1b29d2380de0a6422442964fd3c99e46da6df0108a14b9a9c89266d34636af74412946a5b95f7ad54d796b90c84963b16ed9be4f3810af5d840706745ec647f38def4ef48c834db0bfe0a9afe0f35b4f8c3a87a46b00000168000000b026e0ca1bad90e017448c6f0e3ea2b9e64f6efbf840ee98f289ae0a4af8f6339a84b34eadd8bb407a4fb93c1a02e55902fe3304397fafdf94b950f35752222f5895cab678069be51ea3611fdde9c423028082e0b18edd719f7bf9fab7debef8c9e0800dfee2c4eed127c44a26f3131f2b0228fee1d3b47be325ceb5685dd6c8a06b13b320dcc87da59a59fb0f41506bc00a0c2f987f047a97e6ebc28fabb3abe568d9bd2ecd16c2a71931ab9ced8c9791000000b023fdac07533eec9cc355d41ec2fc21bd97298b955bbdac636f77ddd02b06e42819db25b2f8a85638676397fdee1bc370f1122986a262002db4ff1b78fcc6f07641137aa5213a6fb8437a7bc72172353ef3e50baf84885cfb4bb936a8b245305ed4e68c3295c4f7eb2917107ca661ec9928f027451c9eff1e20666522e963272c4f282f06fc24ece3f1edbda471194a4802d661d25fbe545c8e0e6308bd28256c7d3d333535639803c84347288920a9f400000168000000b001fc05e0024a65a6044e37c3e9806d23958f6d2cde17940dae129d6c279ba70686fcdcc5b17b5e338a1cb39ca5d2342f4de7ec6abc68d0aeafd53a8dc022fa671ba2a6bc1dd07a34d6d0ba037c66030ac608f15ccf2e1e09b602994f407abcfbf167539c952cdee3dedeb33dc791bcfe2684a2ac603108364063286e54e4c00c9fb5426b0b7fe4a7ca3b30555218b8f22f6994ed23bb93925e8036e2e4d60626246011f1dbe620dff6b1fb14ef583cef000000b01078effac36e0d27de210803d05e546be35fdbfbfb837ede87ac4378b5ebc54b0f3d6edf21009d811f39bfa954c1aabe0f56a9fda5cc07fb6d5df35d9e6d437fc013822e7de1c9d99ecf3ff25e926da0c6db680ef2f4d908d798d907c6b9031ab638f6907c2db2af8cfae9c340bde76b19c2326b1caa1d80f1bf1c94d20cba4eb4c34c5a186dcd63cdd864b2a723bf6919e368ea805867db024332660eff999d6e0595be6d89d706b52a6f65af91040b00380000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f00000000000000000000000000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000331000000000000000000000000000000000000000000000000000000000000033200000000000000000000000000000000000000000000000000000000000003330000000000000000000000000000000000000000000000000000000000000334000000000000000000000000000000000000000000000000000000000000033500000000000000000000000000000000000000000000000000000000000003360000000000000000000000000000000000000000000000000000000000000337370000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f00000000000000000000000000000000000000000000000000000000000004300000000000000000000000000000000000000000000000000000000000000431000000000000000000000000000000000000000000000000000000000000043200000000000000000000000000000000000000000000000000000000000004330000000000000000000000000000000000000000000000000000000000000434000000000000000000000000000000000000000000000000000000000000043500000000000000000000000000000000000000000000000000000000000004360200000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501100000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f0000000000000000000000000000000000000000000000000000000000000719000011000000021c000000b01be9ee74711cbc8664fe2fa9646d8793ac0f09512cdfdb4e134b02ca3d36f772b88903d1790543edf47c924f2e882c4192c9b0ea3a3e380bc0ccb23d008cd997f417736f4c9c42b1faf076d011801a54c3123f1bfab79753703ca271571f1ccf8b5641aff77512b2078c949fb29ed91126e76ba568f7a6af5012665b5fb4a5fa5bbc8b5024a5686a3bfae47752c1eeed12092ba9ceb697fc5b4e1b03dddc753cdbcf1b0455589d510bc8f3516f259a24000000b010e9c632bc127830dbf7eb07b4910ff4b42514724bd1493b2dff3ee4758bea9739cb21b08edd660a843ff971b855359081b7843f93c114a3a0c1f7b6967870702ed3f112fc4d0df79264603b5af87158777262fe33a0b6d3913740f86d2cd8f07acdfffda470388d881396d37ece182c2a8b1758b364804dfe674f823fb8d9c72c6b089d067f02dda109bd2f7c0815f708c5a8d573a06d2d25eee134769e10fa6a35716995e0c3350113832bb2b6ea8a000000b00927659b2928c6708a05b10f8f8632a82b34c30492e50af062c642af89cb195df9775b4d76818f7c347f3ef43ddd0c3b0290f2c6e87822e235c625770d81d920b4629125e24bc9b609e84993cc67e0c3b13ad61e73cc6c3aa9402eb3d4a8c31b34c1fcfe77acfd0dc9ab6008ee9d811b1f622929c6c941ef78e18f4c7a76cf3f429d0b2e100f1bb6800ed0c05d6950ca2b65a96696e480a03c816c971d4abfd077861dbbcfe4883d17767ab62ad2cdab0000021c000000b016d94b2b10e6a6441ae1fdd147ada37a7c00a7d4e81bb9b94adf5b5b851db1d3beebbfe8d19b84836f147d09445c11b5ef209063ef0ae740ea07c8985fd74970d57ff66cd84a77a83c7a07380ce3544e998f0485cd8b64d6500c9b22954ea913008d5b5ba826b4133cb6a3d14c91177b015eeb9a39a50c4648aecc8607f8f3ca9aee33be67adb7acda005bc794efd51f19c01a6f3372344dbe0ae658dfcaccafd59f691bf01727efea74f0b5772ed10b000000b01f3490f18947b0d23476bf3221d5d32e9421e326652b94b52f2881ec19cf64d94fcb7cd9aac95f84d290aacd722dce577c1a82f4e4b78bfdbb299a0195032f0cb5b3526b33a4e4f7371db6c3fd6f09a132566ca10d13da1f43d58cf7a248ed087f226e6e75da69883e1824fba2d1b5f8090e2d653ef4ed3eb820a81e6b3f13b47180502529c61a9324b80cea0bf7e0cc20695729200fbda732a86ccff0c0aabd36b7e9124b651732ec729cd20c053bbb000000b02723b78f598dd1863dbc106e2f0adc93864ba7cb0f04a181e41f5aec7fe944399ff699962ca81e72004f9a802446155e867dfb4817349aa35a9e9578f8f68987020ea1d1aeb0238f7881ba228a9ee54d3dce5d22734bb797d4707298a5210cea778cccefb066a8f42a7474dc7aaa88b8072e127e5d0e99248b095f23ed6c8c74119745a1d6549dd8940a3e2f3145753429046357e74512dcdcfa0dc28add87a55ec72e79596d8a90018638d59f53a1f80000021c000000b00879c17f276d9e118b9348022b7cfb305580a11666de198f93328141055e77020032622c7033cdf19e5c761f13d15b924f5e87c605630adef973e3564e998c5651dce0ef9b8372ba6d0da9f03d244e701978ed40b725d5cc705e8593574f4be51c4f05454b9a28a9ee0dc0f82dad291b01451f770c999acd74b9727133ef5012e6a4e86e5cf26af3c4c477c09ea2ee7922bbf3c952ec21228d7bfd98b0bc1fafe5884e43424cb23d311bb6dcafcd61ee000000b01baa734e6062e7d1e21295d03b5eaa9076e8dc6551caf50a8b78b637f4a7b6dcaf2ba038943ba42ac26311c35f863cb8087d1c1685deedd050f52bacf127a8ef8d8bb4ed57a874dae95d0a9f40de23082f02c17209289273817fa4ab50eeb7249af0cccbd8c21a74bb9a9f3bcb6c35d40982c26e826c267d296bf9328f80a1ad26f311c8b6a4e4ee8efc44e8249a17fa1793a78ff416cb65336dde8920e654f6bb7209e0b9dbb2b058b23a2af899d63d000000b00e6615111ed0ae1d1168681c930d571523f4d9b8931e9ee43cb1edcc358f4a04dfecad5d0d0fc7827a86ff8f915a2c46e88f8311fc6c3eb200a17f995bb21c42511ce1bc76c1179a9698dca4afbaad16f206c9b5cc002b1442e6167b9948e875a973d4914bb7554222542e53fd1faa58200fc9927bd6ebee7bde7f1687e1ce38126e8c1219f345df10b02a7ac1e7efc319f3c4469a52f3f798e801aaaa489cc3cb60bbd1c3d139e22c4e1aecdddc770e0000021c000000b02bb4d8744ce65ea29894217a92bf72ebe65f295ecbc55975790cfcb1a951ddc201b25bc6c0a261a49f8767883eb29ebf75e8cbc27c440fca5b416d42505f2ada4c38bdd3f21a0ab56b97af43fd3cf6d8f9447299be52c34240dd88608e5dd25db25d16d193278e41351e5b5eabf5ba6e193b06a4d43ea23564acac6af61403ac62de6335d5efdc8358a277042c93ba8016b20016c565340fb0053a94f0659268f089ca6f2c7fad381f7cf2c7a4bd0109000000b01874d6efc4689b0bbcc45814296600a909df900446d667973c2654af7097f8b6b0dd5c0e209422d716a4072e4acdc076983aa092c93d87bb986a120d5c4dbcc91fb374466793283eafdfc9e14cfc0daf761ec998422aa001028e1b9fb77f6eb6ca9f1ca21d61534cf1f96ca10c1248a413892347a284557f7fa6ad22c8aa98796a0f0e0b8d0fb8976ea3cc4fa1624915071b18d00dc6f200c250f9a65970e6614b3abe783aae20a647593cbc7622aa86000000b017555f710bb9716acf116bd7e60e97512672ba4bc3aad5033c42e5932c19750b63dc92c58c6c4129df2208f493e89deaf31fec8c88582b8e284e4c499ae1c1cbf93a3646751e952cf1f8fb35e7b7d2ff68b573a51e76f9c3500975648c65f62894125e9f7f663f4d278b2298a3a35ddb205b834e674a6be1b9d19a5bbc60df24193103f50fa63b1b98680664a9dceaa022c0a6bfa34e1b85a461233fa3498cbdf5d90f1740c295c4674d62fd31fdedbc0000021c000000b01a2545dfbc08985a34551c39cdafc966ff3a9a83b00bcb1e2ef623094240038ec541713aaebc905306a46898bd242b833c24c9884733876f571bfb8a553e4d2a3df0a9d50188e7eb1ef760df225df4efe45f5a96cc1d444dcab0fbf44a02f01c24d53bd85d5244b21e0790bee1fade342a846fd25a29edd1c22614fad59e123dea5fb465df12325594a4effa60f76e7e0823d8c7c952291b2725c9a10cbed135491df31fe7c1afb580ecc69f838d83eb000000b010a5840b07b1fd0eede666331d3fee1da8cde03d2b8f175d454b04f1f512f6b25582c441adbe535fc180ddbcdecc7c5221c439338bc85bf1e80690b4672df52aa8c5b745892e1f7a399cf3fcbdb7b35d3757edbacf4399300d72d158c496bf7f9213cfa6888a10c677c1de61ca0fbfc90b66158f9523df35882d1c48e5d9f65b27cae3384187b3d999cf7be267b2d6ba107ca64d15ed3c66099042b46804fdbbeca6231499dc46a2b6ff0ff57799da87000000b01c4907bacfb5f922ee3021091ab1268e839900011c62dae6c81bc51f518bd8e63cfcbc044679e34b909541d7b2e52bacc56a240450568a942f913dcf5bf3d7228f535c870fddcbb3635cf650295b417479482e9b7a7df497aa736e4e9e4a1d24dbb43e901f2561c450a00adef8c539d316edc5e8dd701be7f238db391c88fe1cea84b5d972beec8dca0e3815a9d3974923272c4768eff108a10122bb79dd73c7516c6a20da1a1cf2f89c9bce4e2e9ed60000021c000000b01de52c8f6a5e772b50e34724a0d0270049a15f731d98a97c2c06379e378cac178407b79cda141e4cc5c9f5163b19a7062b9aa250bfff00ff9f770d56f823dd330640b0f19b444b695ccfa5d34770d7b245514c3a1cd980f6e4a533a3956d0c57d0b0a8d62afd9efd7709fbf26e7ddef62bac75f691b64020daf62fb83220a2e7069d1f6502964c73d76cdc4add81435708b07cdf574f8baaf5535c16eee82e37d4ec160df94018703f188afb7ef185a1000000b0190f710984c36ddb118a7dd4f69f4748700d07891cdd42c55f80ea72bd2a3cbca0a9b46645c9baeff5610850d1fcee3afcfaa443ac9251791c8c8abe07d17a4f15e7c1505cfd13f88522ed0a9caa09f8cb9e93d20edc997d77666595feda6941b6c5eaf8aaf40a83881af8e7c1447db128a92dfebe61cf11996cb84f178922fba90e8162d1c8dccef5867c253f5be26a1d5b298eddf91516983565823750f78e4fcbebff458ff5adacde04991f6c3206000000b0063892781f30a5d134ce7d27a6eff85d61a812fdcf9f93a90c93477f6ff78d01c1fdde9852e46c2e061cee4b1dfd659d406b77ab295e6662ee75f5ff918d616e2ee81d3799d784ec0d0c99f02f502b61f22a90bb9852cbe4b2b2da5c35c630616b67776d02346e2d27ac74813123f1d7230d8ba8b9b538b23904305afa44bf2fcd333663176897a8f7bc2546820d8fea1628c864ef2c87e9eb65b612f5fde15fd7cef2c7c564f59cc27fff6e08d6e75d0000021c000000b00522a1ffea8d4d586b99fbb50b86b2fc0c81fa203c5c9f9c9a579b36c0fd4edd831132683a3a190d4fc7c2b9b0d4d4fd42e14a706add1044ffaad24a308cd6523a9e74957baf4bffc51e0f15d818f85235461b7cc08db0c80f87d33e4c708e1f7cf5036503796d83899cc4d2893b2f8f1dd0949e43c3bd3a249cae750b845e6e470c6544eadc66eaee65533354b6c3862a46e2687f0b6c58214c629b31a9f60a22187aa012f6b502e94dd3b3df3741d0000000b0221f434f2a742c17dce208dd8e16943506cc690aac8e255ee4d883a2a3739cf8d1aecf92318e49834abd838007b22502fcf54f0cc0aec6b2eafa5f3195178c6e8114873bbf7dff6835143665b69f1cb49f40d7d0487fc94a258c39a13d66982c556de72b549171f492880ae9acdbefdc08ca30c5405ba9eb52d43c9d9132ce6385ecda93f6f6f03aef7fe1c0ce5583f50b161f78e18c3537db1b174d01737361723f5f0b6d8aab2880d0d9fa642c8f68000000b02d8a0c4bc3303e3a9eb28ae04dc9c9817e24b10782143460fa0436dbb232830a1b42d0d4d9546ce77bd4bb6e02018e01f56e265a0236a809732898861e2202277d587ae0c972b321755a67fed038393db9906e8a8fc17ecf8bd340c6abfeceda40751c0199dff02fa8fe395b1c5d4ecf05982074cc23680e9fd1b017dc6d88d8b47172b21bab59a5519fc90b49029eb9180cfa367763deaea438a28c22f33fb6babd7df4a37e9293c2159d2eba2c14bb0000021c000000b016f0ea9ad0a62355e9e96d2e8f8925fc898e88395faaf38bd2e8424d3c97bd4fb2bb17cf49c6f4235bb03a06f881f45eeffa91c33dfb0b3786664642d876e851c698c1ec38ce9379e4c5e3c585976a88971aceea1474e3faf373072ba452e123683ec81aca3b40c7496d850860c71e2918889194e8b425a445834908cdd559241270304c3bfd5e52f5feafb7855a741f02ea421277c0e84fac87f364d8b8ae0565a84ca466d0eda9f85e1c5915a3ea1f000000b029694f12b6952b5c4975a51c48f051468980bc37c3489604ebd5decd41b974ff329024b37d7477466e2f1c65127934f4b822885f8a7c4186934b5623adffc1c910aaed5dad96fc401d8608732aeed4f53208e008a98dfc363de8057bf064034cc104fffdc646d1bac4294a2263ffb5220b77d62e056b77e97541cb3470c95de7c3219a1580c85ca7f196151ef583a2c8050cb1f542ee531e98230ad6e5a9a67c26406e68767e962d564407536c4adce4000000b016cfbb94e797e3754043276549b88e3c364e4910771265b151935144a12e8d19eecf9fd7c255b72c30ae1143a8f65348ff99724af312f6f60f349bc95b70e683e4c21f6b35933d52a2a22fba32e472a6a3ece8e59d689df203cf63d5a0214586fecee41d615e61c670737c2256899afb0ebc95252a9cec16797d15622bf31053fd49160bbf618df9bccbb9ab5c4fec3610381e40ae1b8e4cad64406a8e5436bd9dfe665702fa30d86c39176fc18e407800000fa400000168000000b0227f82609a148c0cb9c3650652b0934cb246a4bd453361211dbd42989e9d6ac3f45f754dcc44a8e5a626a7eeaa49565198f9721f478988c5f9010a1de1f271c1d89ff283dbcbeca959e952cc66afea40e4b7e58333d33e718d6d2f267c1a6c0ce7dbb10e56377689ed20db7e95fbe89f24b0b89b60d63b29fedf21197307131425d25becf7cd18f11673bb7f179ec8ce0fce04732b1235e1daa483e6baca8dcc898aa9b29de7efb91eb962716cbdc8c2000000b015ace5d2c53b34b875cfdd2b9283e1fe1ee40d1d3c8ca64556698214ab43cd5be3bb45adedd496406112c1fdada36e0985ff023b5c6dda3a2dd6e6d3de53395ae02948e8e16c422e8004f1f0420cffa484badd7d027a0cd14b5eb31fc153abaa2378183f9505a23d029811696907a1b11216bcdfc706256a403f8ee3894f1ec1ea9f1e5018621b86555407da12a4f28e06475670ba2c2acbdfb8cb52a88a917780bb060e1a211625e9d8b2bf3d518b5200000168000000b019651c1fa7b7c30fa573ef9ba58d91d8fc9926539c37bca5958ec6758b4c346c1f3653df4cbcb47a8b4acc183e6f2d4fdfca761c876723d46f706d20a728f46166549b0244f8dd1ad69798ee23b055bca15f95d35a62c4577bc6649fbba6e30a6b71676a748c04ab5dd58f2fdf034be6275044fe7230a487b8d9c19ba7ecde2614c25bc4b50f0db2638400467c9790211a07c82d336305543f419070a9d3fe87b05ff9756e1d1bb72c3ab5c690d1e760000000b01258d27e86519b01496a076fb8cb0645fe36d408da480786dd0c44d0299b24c62acc7e57c90060316920fc3e4474d437fe7b7adb7a59d46444aa6002ef16c850bd1db53f32116bca9ff2417f85ce9d5c163194b0d94b09c0c0922f46a19c6cb2e24edd4b7b9914e0edcb6bce0023c2d427e778c7cdfb1eb96d091ba01da6a33c942be5828879ad11f44983152ae277241d6d369a534738c2190c9eb54bec2a0e34d24de3651addbc9429f5f4d015c29700000168000000b01dd6c5b16dfd53fce2b480b6c06afb675f6c298118354aab2eb35ab320774f55a5a87d6b4f344c2b71a03615b30f28ef7befcf2102d07a63579a2d1ea9aedb54657896ec68e5b4f0a1293ebdf83ac9a41d88f9e8289e5f28bd1ea3bb82d21d39662b9932d0b3ad3458919e21bcccfcda178a4ce1e120a1f2a591cd2e365ff5026456293aa8e91291373d4776ec1883ef09a29082151f301be4fdc8d133fbb022085772fb461565b50f4db29c7d677317000000b01ddf1ffaeee0bafcaf46c5fb4919df7a09c96e2fa03bf29aa4a3c03315aec34bad847b28f8f5da2603aa5470c4c46f8b1d441d6fffcf6644b66ab9725ad0c6b00302bd4a239455657b68702007dc50fef9b6b0e6851eca1ab09af077b05a3c3fce16d2a06455c95a6879a12e4ce8ba001f3139acb3d31f27545e428a646496ba68489385cd72a707231197552848f89809858f1756f41f1752a757bdc6bf55cd9947c93fc5edd704369eb8728b67aa6700000168000000b0023929e317e443b128946a596d0b374d481fc2132fad9ce4d36b92962f6f0fa5b49d596414802a73da4c44e4f00408f81cee5baf4288f4aba4074f7e7033e0aa58485b8bfe207c91e5aa32deae6dd9f6bbf8252d0086b2d7163d943c9d3b4f63e23291762e7bc0c11731f5d8a99aa36111484eda7daf4bea5b2babf2d30b85488ebfdb303041a93a3c51bfca887543731562e1e8ac237ea459666b20aef239e2bdf8fcf241094ebdbb8f749d3f9532c9000000b0239e835d9175b3431fcd2cfa7bc590f1af6234e39afcb6fd6aeacff67f2704fe501d7b6e24ae6fc13fdbfe93dbc421b38c8e76fb8da387668eceb002961008640a896f7b7aceb9420a4813c122e5c714bfefe0d9a0ac899ca8bd74d59d4a2cadf4807b3be3984a3052c4210cdbeb94a60c7ca65d04c29786a8bf45e030d243aa41affa5cbadc29a374ffc6e76658797310058726fd924c54a5348d805a939542099487d9e28561c53c260a4c3861793900000168000000b0052d50bd76d903b508eedc5c3e9f4a8bacdf37e467abb25ea693ea76456b3c8501f2fc365ec484d5a4959ad361380eda28389e00723b48225fcfabf2574eeceb08d8801ceb39e61ced5bb7cf049829b42612445bec63faeb14f1553b2f3e5834022f69facfb7dbd49ddccf5542d92711236c908891fe8aefdc2d6a82cc075941f1d7bd9d5910a5c34f43f3b62d1cc7410a4727b9b12c0c0fba40676d0c6ae731740b6f3142480e541ac284cd66b849ec000000b01e42cab3af45d9b56ea7c1450d92aa1591f406b43cd2c5cdfbb9c89de7c5d8cc001c8ef7a8ceb7975597c0de719196bfd43bd6ef1ee84a5867985a9e27032ba305d5a44bf2434c6d76790ca42bdcc1562d3d8e07dd98a3a4a09a578fdb028b044c58e87d39d0b9f12a941052f989a3f5142107672e7cfe337c0c40dce497d7f9a5e2792ee09404bc4b822ceca876a5f222daa21fa8dada50fefe4fd6bf59ac9ff4943892236814ace0a1fc59bcefafc900000168000000b008ce9f550d5fd79a1e25b3e13d59a81abd5471f46f0060ef992758388c6bea31ad83205ec03b14fb5c4d154104c8c5f2ee4126c0214c91e290a355f8845bba4c4e85d0fd8a5889f6d9d02d44722f4db7e3a53c9f62f24bcc2ff6d85d69b6f1f850e355b93febc8f072d51ea418103b0b018c8f64b1975e638fa34d614d071508af4edbc90fccb16dddbcc0b2a965db4b0e772df56ccf60a066464a49ea59ae9c57d9885eec2c92e5890ea382e8fd107b000000b004ebe27bd3b08267567506f9fe653f1b3f99574121e3faca2c6137f55680aa696801a7107a33758ee40e2868cae0f79fbb852a430b0e9957a702faeec0a37300b4fd5595348e5dc660b4b04bfa81d60c90a1c1d163fc526be9f88252217c03b1b465ed8b6a8d14674a78a1a1ddace2fd15aede962daaa3f11de9ceecc8887743602ffd592000eb7e6d777e312b521e6d2c60fdf1c6625422248fb63ea34f04a80711c255e79ccab59608b91844db7c2400000168000000b01b63984f2593871ddde5fa63a3653da8ed1ab03ab67c9f8e3774f6ed46bd7c8de7e2ec26c9a77c948a10aa142bd6d1f15168f18a172399b12559b8854182800a9fe1a03e586a0302268151b74149544219caf39ff82d65310259a2e2ae7bf1ba0d41cdb4a2f39794ed4496d5e0b210061d0f32afd5f0bca95ba7df2b814f9140917e729fbf1fa260421a853635c74c592680372386d29ee955adbe8b10a1da2dff963576f56c5c30e63782ab976da2b6000000b00a5a73e2110815153ad6006b6d9978b4f1f620b327a3a334c97804d999911146e0c73d3bce6bb87d2c30aebb7837b78d49ea685833bf62ad03eaba9d8b902e77ce62a5f272d03134fcf25ff723046b79a96e60e53bd466f0ee319910e57b1d839e2b0801de2736638f5dbbfc3ec65355298e7cda6f7cda85f850089ceb479980865f457ac1e8de1890ac5fc60b8ec4032b648cc0d60ffaa5dceb1dd921b4954a9188fef7772eab280063b8022b40352400000168000000b01ee6a528352471047c49d5da60928306f8ed54d7440946339bbe83f5b7e346a54590413f661475736a518b8b4029eb7dfbfee253f57b4b844aac45fdf118316726d1703628a2637a714a937de8caf442ddee045464531a43c5d8c818c5c09f7bf2e2124430ee889b15b587179fc3cd122dd538c6335c439dddb4b941ba117fa44183dc56ab0ce10dc6cc7efe2851243d08373354b27a5b647edb318d94e3f00147092274425247658ce21a974cd64fd5000000b01fbfddea2101b814a3b7cdaf38b9725926728c5a206ab5b1410f8c4b88e2168164b421dfa1c3179a5517a933b47e42fd4dd9b60a6983acebb84761bdacb65a9d5e35def835caebcbbaba29c301785106dfb16b10785b35692fc3ec77dccace0b0d7fdeecfb72fb3ac810a1f38ba971f31bfc6fe31fe43b57ffd9c47e747d2fc155d9792c9c1753841683696ef9e0f1ee10ef1c49232b7134a7218cb4efccf6ee779bae77f86e11fd653f6b82bd65e37600000168000000b023de561c41c6be0497a1836b9074016af2842649024670a203e8a8afcabba0f5cf9c32668fd6008f011be75b95459ab253b5b8a55cd8e7ffcf4cc37fdc71809997a26140cd90f816969b2892445702b3041ad7d3658c0f885f06ee774b601296176c63ed159ff10dd2d1f8dd4e76352b13ad5b8ea382e930cc78371f505fbb332231ae2d30b750d4482b39504950b23014e9b9ee2fa1abb8fa6034115dbe6ab8bb1655e14a0525a619173d39182c659f000000b014febe858a0a6909d1b496516b08a09c0db70848df7b8bf53efc9287af3876e7c88e5a933c576f68cf51528c66ea156029d349e6fa1945a3b7d7a38282c2ca47cad3e8ce719736382cdb8f753cb0bd4ebfac555a1937dbd5cf02f0a42eb5fd65d10e46b52486bf4340e26a002aa7eb8b06b275aa45a389ac2e133c290e0e1ac6e6280ae5090d0d0d532d21cbafb69fbf0bc6de0d2952df114b105a73d16fde3ddf301e7154dac378d56a55c3ef0f6aae00000168000000b001fc2b23c01235eaf8cddc433634cde6778ab69d60a9f1de3e209db61bb18b99548d34e713ff9d1fcaef006f333a4abe4c67a2f181418c0dd32713d79d69a2c6425f0cd4294d28484d6b5cc710118f9592b162d5180166129c06578ca398e628e4046de53cfb19f4a0a98312f391d7390e8de589059ebf85e2483e2f9d878bc4c1a0eadb5a3e43e023e00ff975f4926707834d4b5e555503d1edd5d20d99620fa93e8e549c17d048f126d23d025ecad8000000b00e40a46861964afc6ac69d065acf0fae494991f36bb7ca1c8c31ef9d794e7909dfa20f06b472ea1f6b71b06d7df833b12a604a3d1bb1860bdb27804eccd3c27ce1b07ef59800e392aefd25ea2812fc27f90c13e124c2eb95a47a641dac53c4defcae6f5adb02aaa74ade4e66dc0fe3522bf479c6f48d8dfe32eb1db032f7a0ca736601c584b44799c38a593c54f3b5b52cddc8c94cf25618e49c02d22b5d2f003345a3b9313267350b19719ae8e3217800000168000000b02363f910f550973739436ee40527cab175a9e9ade7a88ef4c906d819741098ff4942467a90966f01e1c13b926fd01968affec2f16571aad7012da9f59a73a3cfd65c7636e51b3386e75977ba4c94d68ebb862f66f32132731738fa1466c3e695dd4faf9188c901eff292ad63b577e9e00b978e265a8ebaa682f55e7f19000e51e2a83b05c3abcec9adfd1b17da8873da028fc9433647caec05586d96bb394ac0f8f68f4320bd002ddb9b7be9c7a9d749000000b01ecbb28b3780c1f688b40042d46fb615a854715b2f887930b53ecaeb18f38177ed126d7939b0238ff1fc060357bd581a402249a826d87e75cfae94b8dd7a12566eb2878bbab3dddd09bff5b0ea4b051a4714d96edadc76b4b2760a508b7ce4aa6f635df0ead61ed3ff946b060502f02b0de48fde66cb196c3e33f32573b751291a74cc947d879f2ca17381480a9603730b968c50f7e8b98dbd6539390d248e16f6714f2ae60b731706f322ef288d2a1e", - "txsEffectsHash": "0x008aa79a60dae1c619fb444fdd7ca7abf423f96d7bcd650a3282c5267d3a8faa", + "archive": "0x25ad710b9ec21e69111d5753910b062e1210af2e7bb0fc7904e4ad7d8434d609", + "body": "0x000000040000000000032dd000380000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f00000000000000000000000000000000000000000000000000000000000002700000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000027200000000000000000000000000000000000000000000000000000000000002730000000000000000000000000000000000000000000000000000000000000274000000000000000000000000000000000000000000000000000000000000027500000000000000000000000000000000000000000000000000000000000002760000000000000000000000000000000000000000000000000000000000000277370000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f00000000000000000000000000000000000000000000000000000000000003700000000000000000000000000000000000000000000000000000000000000371000000000000000000000000000000000000000000000000000000000000037200000000000000000000000000000000000000000000000000000000000003730000000000000000000000000000000000000000000000000000000000000374000000000000000000000000000000000000000000000000000000000000037500000000000000000000000000000000000000000000000000000000000003760200000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000441100000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f0000000000000000000000000000000000000000000000000000000000000659000011000000021c000000b003bbe5c953f3ab8ade8859c15a5b370bc556206df1985b2dba56a40b0d0b33f169fd02dedb6571947985fcc82e222b653fe8072c52a4f46bdd36d5912b3cf155e2eb5231c2764f3b229b65988a81ef5c69699981af171cbe00d5351f9c93312b7ca57b599b765dfb155ce909f9d63e9200a19372137607dfa15d95b5cc641b31c735fee956476b53271a65adff07982d1072425b1d3619b06ad62180b4883eba6c821878beb4961367a6795601488453000000b0241943a498d006e9ddb066de499a7b27a2c7f17205b8d67842a2e3f9c8581725b99717aac528d33feee17de2e78f6bcc7877f70a194fc30f136d13eb65b56d4492f04c5dfb31762ba5a08e4ddfef532c60997c2a5674e5c1eb95ec476fdb9ee3de19bf82d6d64b8435f4f19ab55bcbff0e982d7dc5bb2bb587231200298caef7b2a266409cadbf07a2fc3c7fad4a23612dcac676db3bb4681d4d4b00f9e654f44962fe1da2d4551145220f92348d604d000000b0035ac8f94f668045003f6ec99b01395bc75f3d4e2483f41708b02781b2bbcbb817edf151736d03eea5ac4f713d620424f4eed59d1b7be6c7eb0b427dccdd10b8e3249a460b78f31b4900f298606f89d70e9450a97145571456f08eafeac365876a1a0ae23fda2b98ace60bcac76d517c2fc04c873488e2bacba35e3a0dfd848a93d57f68b67931f32b0ca45055ced4d41cd5693599047c6e80d23f8f083b19387a69e9c96e1f2d6c4e9fac1da2a3d8810000021c000000b010ea3a200e02643246f4b4cde7c69e9f7fe7300f93f57fc1d29b17cf8097308a2714f38505db4b4faed8554cc4fcc587d42e055a99d260c26dff6d3139e91a9b0efd46bdd96c2dff8b29b75cecdfb637490d7c80eb3d31cd41b24f2aa8cc15c1bc61cc4b17869537d6fe46717ba732010d4df8c1068b194705eb2e8def4e4f83649ee9945d56f08fdf8135366955b1f1024bd55cab15cd7c01b59b7b90c08641d35e88e9c0a700927066202f50774167000000b022ec38bf124c54499336f63f9d62e6f7c8ed6c14ed13c181e338ebb702d7327becf13b246bc6b42f86a2f80c240fe91cb7fc6173de90570f5d0e0472315a7be98c80b2709502cb5c10fd0a883203b0e8b83711b95eca3a2bcc38c5b35d62e5a7fc139faf54471a738e675526cd1d574122c547e52839e48a9672b2c179540ce931a077c94149aacf5fc598135109091c091e7972c14e1f02e0a54ae723493f55707e12f023be11a7d537c2eeef6077a4000000b008bf6aea4d0258f95b6c60c6fb91f811ef8c1258bc27e3543586d23761e2fb10952b1b6faacd9c843f74d1f255cee7fba453c92bf254efe8ce1753cce7c00b6096142a5c3df338b33c55de808072d6e47356a483d73a2b34ba432483ebb933bd18f3956267df9aca0d1dcefb8e3bd5722396f661e514e4fdd90983b3cf8339f7cd1529af40d21d7887e6550f93a5cf811198a0f49f67ff582ce781d93f79661ad8063730070ff903cb62e2dc541499d10000021c000000b02ea1892fdb07bb242c0f924f0443719d7e3c3925d98797db1245293baca8361e8f65d7bef6b89533f0644dd088cee8b8ac8092047e403d3511e6f0cb17294c1472de20a6ae41dc3e024c580079fb99e23203aae89e8b6038ef19d7d1b92645aaf7ef490a23c0224c08dac6b4f083ca812784625eff64778987be7d49690eefc7b281091168a3a8ad5981cb15845ed38d241c675642d3ed280633a8bea16865a52205794c3e4902c6f22e740dd8f04131000000b004af3af3942c0b121805a477a37b31fb737079fb5f41c1ca7ebfd6adc38cb151d963bcb5ee33e9a03715cd4effccef1a9a1f74e1f19dd03d58a48906a2953e6090d56834e97b49730a57452fff1f9b71bfa18bda512c348b34055ca074af1af32fea78c4eb7a260345afc324ed69a2f4068f15b2af28dd76da75393a8514f018df61611ad65f50c8eccea50eeb639c080360c039ed456843a287ddc1b323599f44db3f9a3bbe1ab4e71e9bacebb5c391000000b007e16724e176dc0c7a924e3f801434e58831669153f6a578f517af04b045dc7456686931e65d244ad2a9f084e27954f85b77d4963f9590fdbe74d956fd3e301c76d6a309307591871f5751c2eef912376fcb24599534f0ed31adc32b73056570a7bf455b3b743543ac99b5722292e3330a5a53fc9bcb73f7e4850eca9632fc84888a61eb8c7cd27ba294c7a22e81453b246f20a5560f4360f04a2d5c45c1661a2a9c97f2c72891db5038dabd5422e8d20000021c000000b00554ea8369720676208c988a3b8fd657a00759eb7c4865817abe753b03b77605ee6e8f78390432c782b8a0273b3b7db9e4da5aa296fbae5eae4b1596af8dbccf33ad325c0a6a216b4a732b0db7f4589079adbd9546fdd0bb30ff4f5056597696ae26976ca6e0d3e133665e88b82b1de212db2cf7d44e1c886ab4e5ae1c945ae2e6694cd43b76ba1c31ddef7d4471f40621e3ba45ffb34e5f80ed4bd7616b319ff6393462b11a2fbad5d048d71d31db63000000b01a3f7e1e781e5b07b8d6c2c9ccfc010e52dfde2f1b3792753512289c3d04fac9bc704d70723c4e219e2ad3ada78c72f1b3d09cb2550b1d799c4f931aad45c2c4e394c8bf722471f94179b27777619d648614751173a63dc3ee47f6db67f56a78cbd9cf577360f1e50d8186040df46e0e0d2f104aba88526fb2eb3f769573baa2ac1af11b88b00dcbc135cc761a28b80b0f0854e1ed6ddcba8def8947a386bfc2e9f53e5219eb87a7edabaf95ad7555e7000000b02f0c7f234ea774cd67d13bd9b5ee193bf5cc81cc38da8e510515371a50270a51a33f02e89d737206b214ea76d97c3e10e3064af5cda07acdc25d5adbd0e23ddd5237820a3878f1c5099a12cca4e0269357d205e4121e2efe8bf6bfd6cb56a2725821f0da5882d90d5a9ad8e36558cccf095bd3ac4f0eef0954cfb81ffea4da9cf44a4496b13604a3048b9469f94eafc22a1ac4090669cde1685372cd8972680e9744d4969a6bcaf9785514eb074847750000021c000000b017e05202fb1698d1e44e9da52df9dbe64e51d0fab6d3ed570899eb74e4818dc91f48d4a53aa8a90346e22a3432a964880d283d34a6c082ee0bf4c543118bc7e1a4e454a406417656474cb40c6d1a5fecd78f7eb42355d12fac02f27a4c9ded29d3fa9173962fd0f2d9636bb4a14f61fe2affcad3908b616d6b69f9e2e67dd284621143203c33b25e8487ca86eba8a70e2c51f447d93bdd1fb1f66a2a8f7fdcfffbc13707fed9e5229ef5a71ff8cbf6fa000000b01d69b59e6f9afef1f98080532c1c455c39cc5cbd38eff29851913f13a95de7a4a871f5e06c807a12e0281434695e8750bff4020ddc6a574b8a68dc252151a90c85f9e70f0c9f1d03313514a063f911d8422e76a861b0c352f7426dad21848742e1d366bc823248ce5e2a78de914ee94b2fb030ce1bb3498ac1c9774ae054ae4902adc072d536e000251b8edce4b1fa5913a98e19bd60ea5acddaf16a245cb9c1cf3715aec1dd1d6d4bc3800f61542028000000b0085aeb02723db31b4a25a98b5ed88fd731673074a2933e228d2462a66e0802bcb6871e7e88ccbb478e00cb2ab06e9b4f488d667c152e4bf99e8f43825bc8c84fef5442de9921221af56a945cb971a4ae643455ea3d29060d866b31a9a073f6b7f236f47d5651e57a8fbda2508f4ecc3d28544e173dfd1ac51ad8df24fcca620cde6da4057307d2d958500327697a7a6902ade6e206fdcb6c73e5cb3efbf09b7c61a7ebfc42c54f4404b7265ad437efca0000021c000000b02f1643b5b7e1cbef8633fbe3428c43cc1083c29653eee682f2af1ce63d16c5af98e88a787e1ff7279f1b09805db4565e7b9a06fe53b2ae8dd4a1d819d936e1fe9ec888c6a94d5e05f4dfcc2d9093104a11d6293ed0d2af6042c5419d1bd91dc14b31b468a05a07c666d9c149517f0e4608eeafec5256a9f36ea1ac74b3aac93d647b011ea96a59bf7015926df36c5d6002fd5b6769db56582b41682fcb0e3f1e28a4a810da25b806325ca1f1462efe9d000000b01a459a2c4cebf76a9ae7796ce5d00e00e04d3005155bb38d0ada993ec67bc7145622464e7dea274935a84852a9cafa5bd7c963909822981e7a23bd83694d857b87b7ac9766ddcb0825a82ff393823018fdcaf21a87f12c63a7a0d158f7b8d4e8b4399def12019390f3615ce78e99c06f01d91935471618c4cedf31b07bc782ba9163835f699eb548c0347c0bf2bcbbb61d3095e98bdd9276580ddf4a500ce780876a7c423f61560b0a9790bd05aba38a000000b02583769c9f565ca24094e8e3e637e46e2b95e864f765501ebee6ae6fecfdc091bf2361abd0b9ab4ad2a5d2e52193cd40fc12b572591a08f89750929d6bc893aa07240d73f9db71db6ad80059bcb882cd461271df09565e1dced75164773d156e004a3ddc7fc261d843de2ce97fec3fe3214bb8c82b6295b940ddbaee1ee043a7a4be71a80fa34e78bb680470256cd89e05d4635cc78ff0ef6ec09b9e15556b43b8865a0cd4557e7558e06f67469911790000021c000000b025fcdb63dcebb34839c1cd3494ca989f26bd1950bc3799b5123f8eb1548a22b42180feab40c07e2904fe1e4b0559996c19429d2bb1fd3ceeaddbf10e23e61c6c2b186c05be6f8893bc7328b78775262771d2cc4ce999bf489d8d0a52c5a4dbe7fa480c763366ffc3750f8470dac39124225c661c0178414f250d94c6727e0938b51b08e4e74ef3dd8e7fbdc3a25308aa15131e764436cca3576ce636cfed31f686dd3ae452073370b25a2d45cd664aad000000b00d59f8db36173c372a43f519e0a573fd34e08f7f649942c2f6e492947a9d2fb6f85090d4ba49bd1a3ec528e4aeffad89f55a0d67199dce221f9060c11e49252812178245a72059242473b97e95b36fc77cb1717afc122ed2c337a029acf33700399de3ec0052fbce3ec65fbaadb62d352fb732aae6d36cb6b7eec93f4a373d13ff5b7de0f46cfe1a8b9a9523d4f3e20c248852c8eb18f0a2aaf815695f24dbd51ab399a62a462c8029c1a746cd63a999000000b02c9c32577400462c7e57fe14af66cd2279d7b05efbed952cb4cf8d32688ea2afa24168f8451d41720f096109804f52f7b386d55e9e0d32563574a72b28639d63578a002f43b425a77dbf5cabe819a7b671a5f8066fb8ff4b339b37862489526bcdf8e76e0a0615cddae1c1fcead893072d713c1cbfbd74c39737903e110b490c978bd7699d54312f152849aa3605ec030382bb01153db49e6f971ab706c8b984d2262992efb7e72415e9549c8881470f0000021c000000b0132827de5aa57451b46619d62e5492136f75c6ad0ecd7e768bd8ced19118823944cad4fdf0556f084f5e0e97ec08063e73fcdc00702e021f26fb6eb9d4f826039b7a3be727befb6b667568cbe1a2219f35454e2cba9323bb9deaaedfe49be8f40edd730f9c67196aad6ad5e36730fc03103511869503f73682129cbce6274e64afd791ce5f875a56dce31fd3f68a32252e73e0fd28c223ad7e216de2ccce420315a113b705bea9007b668a8f25478f5d000000b01e80319889367da19ed61674cdcdc61cf37731b011fcb27fc60e97c9a03274d2c375874a7bc7a2d50a2173dfc32a234dfb922a822107de97e7c6767ee1e8490cf128f7c73e3e1fad1dedc82e76f675dd4b0521452dd3363fcf8f4c78ddb270038de11dd061df3a8b3e911f1d24fdd5611216c77a97b3cba1345c283c3fdd241e48d1c8c9d900feae9e0611ed6a0d345e0323ea022ed5e0dc924d8c334a21f6c7c1726db9fda278f2dff3941ac6059a45000000b029bbc8411a0cc60464107eaead30018b935f0af4ebe23d4950f7578dd59de902bd55dc824b02d5c599aaac893786d8296d0d6fcd9d2010567d116e882216d65bcb9a5ea3e345c6046dd5af994567b8679025f03776b4bb3b45f928aceee7ece0b492911a3da5fa2003804742beb8e87408b842034af1c5b64d0da3b8f45e6342b038ee92c10a688c28fbebec04a32ea715818827c8aa86cedb4258eddc687afcc765961bd8b0066c5e3c6cb2751c2bb200000fa400000168000000b0290e9a9331ee358dcb19522892c6b76d5a77d33e45b1fc11ffb7246edeca2ea7b216509db5b74de338c1134a8b179fdd1fede6aa229cc833d357ea791e308d015329758fc600b161f9edbd6cfe16adabfb49bc7008e3ee42c1a6906afd0400f3237c501cde93c377b3614f003c3005271d3a1b753e8c8139facb5eb222f7f7e7d06c71f6489baff67bddb432fb1ac28c2bbd8f722a08779571818de47f901037fb22165f7428c854ffe5343c5ce743dd000000b01e84ff0a702a1bd755b37333cf55389a7ec949b6af9d1cb22094c908905ded63b33eabc1eb83e06fc22e7f05f0e7f5bf592fb183a1742651932618868a3e70435f831acc15c364c295f87fbe7b02f57da1ba25503d4076c55ec7dc00467877d64de905cdeb64c186b833af24a3918e8c23cd476b54dbf1f5b687919611204ef34514696ae67cc1e38a35e1037523315f0474662bf645232cbf8d940ce02c80d9f8315ebf4cf944e88c18d1aed1fbb88600000168000000b01efc5434a0b32d1601ec8373a6b8b9188880ecc28ffd0b0dcd68ef6f2755f3cf56097ec06d77de04e2731aab4eebce3c2cb91c3b5d77903fbcf20c07116cee36e0508bbaf58f7e580d52d86ce15dda879fdbe1cf033d15cc0a78e508d2332446cb2e664e5268cd60e860d84d849452c92c1992fd5ea8d21829ac1187383f70fa2f515f1b24d57e0be2038ad74e36bdd90b9608dba72f4e345a6dc4e920306fe47aa5e035ec0db2488e7b7e6bd638c214000000b02f0c1b9dd868d3a55034ec6d96cd05f5570f8f8a44e7a44de3502b14ca2ca74773ade686577f6ddb2415b21ad869787d3e10c54e188191f2e6760f7374a033b98ed20524accbc2e4d566deeccf645ff80551ae19b199d130378d9dd686b7fc02ce58894e31ddb222798881591630300806fa423123faed5a437acd98cf27033b4631fa74bbd94048a55ea378ffdca12a301c8b683cf09810dd854103e5d48e4f8daf2749548808d3a02188c6209f09dc00000168000000b00963da0005546db1ed602d8086af3441ab460802fce4a2c19eeca0a0e26d4c769fdfd280bddafa0a10c28c7d1bde65b83b4b915a11af7e3866ba669be767a294e5c0ef2fd62997dce943709f841c3bff903e5fc763244e08f81f261e7159e9f488685842f650cac5ee1435b59da0538a213f236d719209c2cb68e7472de0b38eea277639b1a9eaabd421b8e5d465058c28e58526456193a739f129583add1e731833a04379161bf0a752d81dc708c195000000b00564fb09088630e2c858ed58c2c003d8a66fd8808eb9573c072a58c499ff3535bda5ce1fdad472e06cbe1c3c7e5ba23f456dca2378963aa7a32464324b19038ee16187095675bb9b338018986af0ddbeeba4808eccd8945673fbd739aff6148b5e8bf0fb070c184e5bb7b37aed2c1d4917dd9a5c928efdd902c19308fc11659a2e3dae79a026cccd32ac176ffaee74151531aa94e16be23ed30f58daeb763bad081de81da6d727ccd53397ada3d368b700000168000000b00a17335e342fd5ac29550a3b0611a3e77202a43647ae38e0776bd31aa35f93e2ec81fd142fc30150b47e1042a106decb91d5d1b2c8725ed3c0861f47dfcecb5c11b86737d482c3dc9bdf1cf1eb172756552c4a777cfa362235a3c7f20f66e6419adcee4b4cc16e5035bf5183ddfa957307e0ba7b786d632b0de5941a31801c5a8255fcf5d6f118800e41875f08f26ffd155382266d70b5b0a08dd7760370494c60a09b3e39cd2da58ca57069586490a0000000b00d62cd11bd5978159323e4b5d717aabd926ffc62cdb7092ce752f59e83c27da2a59b9f003474e6c2ad1849a2bfc402e22d4369a00cacb73df9755604839059c4d1ed9068e4c2c22265d0eb198cdff835f0e408f0538ce37b1908b3d9958a661faa30977a323358c6755a03b96c4fc4e80e3717bd04e1d53dacf958889a071b2955641ba9b606c9b7232f46eb3976f0f2038cd29717d8b5fc245415c56fa3ed41ba516e0324c1ebb80f9cfb88ff2d109a00000168000000b02a3b23c4664c10376626cedd6db22a72115aeae0f36327b9c67b7f9a51ff92c92830567eaefea5b6e6fc78d7d1fbb7d20b2c46c83d3ce0f5390568064f65d3c96ede12966c0e6524d87826c0273c21366fb33d9f7556490283bd654a84b8c167642e3a202f7540b2744d94b1759a2eb811bdf2350ddce488a16514d6203814c8ab299f6550cc607f490f11e9833d65d6139f6a6f595bd09792f9f536ad612ae615d0d0261b203dae6ecec4c4937e9ad9000000b022fd21a7f1afb6604263834f27e3105f4540c92660a7ee98e3fe3a73b986e205c044256a0880a639d9bdf38f5afa498e3965bdc69cd7cd80f0aebf52e248cf6e234affaaa1b16b55e4777e19d802fb52eafbca3054d53d2f938c76b098b0b6f476d3e3cc8e3f40e4f8b3b5eb5f98f18d220c40b8a0ee2e1ad24499c56229868e15f33b65555eff8132e182df2b3912051dcd94a1ce535c965049491788985532efd0c8c42efc55e4fa20f1e7d50d370900000168000000b00f9945fe666afb81bc61278900d50b750372dab31b204a78ee043ceaa6e05377c66656b587535e1f248434f2024fc7b29225d5076c3493ee3fae2a042178ad710dd38b535cb96ca4e8ae6b81fb086e99b41502b551255c016ef81db7f09a7d6e2ae365103be6f39a5adcebd7b9d0ffd42b4dfe25a83ac3e046855a7269de930e27494f091b9814de7c640faf0efb3a370199cd7f58eeb900935e8ea17577fd1b7ae55f67e53e3058e009ed1e394713f4000000b0131adf767a091e630de824acd791b064900b592a5e9690c56b26fa4cd321df63c35516c85af5dfa94f97b4937df73567dfc591a499ed1501365a6dbac2cd7c45380f9718110256891081e9d4c7c3f280edd9d2f082fa52d50903cc703c86f7be5bd5fb9ebfe88abacbd0873f7c5de81714d0c8bbb481d650eac22cd480f19314f6f351e5ba24a28326e88f98aad748841827e7583ced15f49e3755e0fa531033211962945e82af49ca51c8c0e8f192b100000168000000b00f50ca109743e73815cf872870c2030e6d4487dc686ae8d3fccaa67af36550a07a1b84e7fc0a94981f4ffbe55e3b5a81e0e3d5a26bea42dd4f6524afa1f3044656f63583a13ffae6c58891e0ebd3be5fb9af85c372dbbc6117491aa90e03cd9319a88b1c1d6af29af50eff5eca510cfe08fbb5ea38c308d72dc25b2c77dbe884ee457c844940ae6a657e9b0a5478890b106d277bb52843a67633c8e74284c240fb372c25c92a2199c128e359ecb09876000000b02f11106175cb27917ed19aa19d68bdc25cb72710ead8aa961ddeae233405fc0fc52528666bab3fc98b5cbc00b5c24639be9d41acab7f7b613a001de6be6b2dc651f2352f1d539b0ee97408b40609485d124da7ec39518530e8e7737b2f47f24cc15f0057ba2fba36edb24e10f62034ba1a435069bd112c4ed61a8c64a9bda0f87d802ddc67861b8a908eba2b0c3ef8bd09e07ece0fd9dcedd47f45d996110f377cc6cec6d5f19061dd9642f2c33d400300000168000000b01f74a498f2f159817a36a68175f729d109cb29b6cde0746fb51512d53edc28a590d27e4f50d67660d73cd8535314a1250f29245b6f52d5427c3a57f58f07fcfcd61c633c920559940567299b7e1363f9cf9e860bd19a6609fa0f64050273b4674a7854c070dcb945ddf5f4593420a5b127baeaa47dfd78c68d149d3432925a19bcff1621c688cca5fdc4535a68e349292dfada29b7701d93456f3a905c50b233b5f9f6a963c8a322a7985fc086bb87b2000000b006bf08578e88760984c87a3beb3556f818ffbb1ff987345e70d56b48023bdbf3224e014977c02114240190be6d786387b966316978c7980b34beaf4cdc7452a2d4e8a24e325f1b4ffe0f956d41c8f5634de826a5c8e700a83a64ed0b3e7d51e73d6f73de939f29f4cc618db738d8630b242419f75c22359f4c2cea77df12415f7cf344d197c79c555068d225ff2b4a6f031bd0888e84d6a3bd1c8848ffcd4f4ae20614c4f927d4f21958a4fe0e6677b300000168000000b01b2f396e18e124c45ceea1a54a9ac96c3a1064416b7b7929a8003c3b7d37753a2a6953282c96aa5d6522e8b84fb14791afcadcf70bc0c91964baac5a8eae60d2a05b55add07f2dc0bc4b7cb5a35f81a7264e22f601d571c546a3c503b1bf79f1f3f99faf432fa5d660e60abcc3a59bbb221efe23e9f9d7b0944b82b9b4095cf430a408b9afb87934aa60f433bdf54b8a236097549cb679f9cf9c3b0a698296343405b14291e8e1d99ee87d8dfb661e1c000000b01d53e924a5025a06575242215c9d4f947da8ff4b29916d2418f51603c66f93be4a7a10111e15433582f315785aac3442f78f0cd71c0aaf5662fcf01d753c336b6b0d8d4d8ed30f763e2dddf82bb4125ebe333387eb7deb1cb32e6c1983c6fcf8374d605515fe4b52b167a1e71698423f177b5238c06549ac17ad05a7d81d8d678869b0bb0b673ff6d3d2d0f6af8b9a420a253cc8b0aa17558ff8bbb1266a2376dc1a8cc13e6ca6f789d0ef663964677800000168000000b00b035801490a382c4a6fecb22f543e6ad5fa9e50aa5931d69bb617ce3b07e7ad69c842b4acdf4b436fbbced330efcb995eeadec8c035deb18e8a787900b4c98cd2336e45d4e77ba62bd609c072ee9ee309601e5081d901e6858e45281ea6904ec56f004e6c7cf73317ef15a6da34835f27d0c7c48a7d13588a5ad6d8cee11b6d816e8bb361b653970da15e321b98c7ed22bf47412c1eaf72af37c198a9e8b6bf73e41a093fc8770b8cc29ace6698da45000000b0214c41a783e24d5e28b97451cc8d93bc8ea8f8c4fb2d35f3f86dcffabae24a9458762b80fe7c0008096527f9402874d9e28f94e96ab6c43ee655f7243e3966ed357e4b64029c4f9d557a8114422df14c52871977af8a007b4d459f086db6aac9430d389a311a952af1810f84f94f43bb1f866a1c9dfa026c0d4d230b7d9cf30d73f4b09f2aa18a705d8e9f11fe9930412e94418f9831b4abe99a40ef5675c3bdb9e904605f9966d930bf8ef66c4593ed00000168000000b001e5e77e206ffcd66db1e737e75e7b65aa433c409fa96005eed8005899d48e239c7b07df7987a3f56c94650844a96cb944a3a8566142f56dca7a7256c765db8c8bca66c3bd6076220602eb6cabce3adb605b4cd7e5a6d5fa65d7d739e83bf292f1af112a390764da4d6ac8037b2c6818207e97f4aac5f746f9b779c84c5c02d84090cc4a4ae08c3656b1b63a378caaa92ad97bed6aa2821bf37e625160b6f26d0ed4fc1434990cfff56758f8a0b263cc000000b02bdecff7e863ba0d17c3efefb18dac66283468a22adc5e3d8bd9a139b5533485eb9bcbfe91a8c841470dc47e3f66a9ea970676392af43b0a6c4a83e97ca12c09c32b07454a90ee19bb9cba61b5d554f46651194c935fc6ded4210bd5efd391c9077a80d82257342b215af7ee6e1743a606a2866847de2df68e3cea669e3c3521887122900792571531b266f7fb31b0f807fd4448dc87b5f54a2ed9c9157046585f61b728be35d22add9e008466af5fdc0000000000032dd000380000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b7370000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b60200000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000481100000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f0000000000000000000000000000000000000000000000000000000000000699000011000000021c000000b00f0f1257e39685e7a56df52eee3a531c2134c510fe43c464cf5da8c11e10a13b45f215c4d084c68bd9903721edb9e3c51191485019195e277df5d9ccfbdc7ca9020e4cd1e6f04e053bffb65d499db07d9e0a2c54c8a08d73fd5e3766af3948ef28cdeacaf331cea55c3eef8924ddf841055e37646b7c0a37d467579f072b8fefef6c01f426e418959ef7f9000df0398d18713e21271ad53eea55722536a10046f52e66d7ae31648df9c9b310edae53c3000000b015022adb7fe63a7aeba6584e4c1ef28f9e000cd8ee57f8a0eff78434fb8cb5d00c596583db3339d0beb2fe74d456197369572f9b371ec1f918df1a5eaffd1b8f33ef5573f9032cdc86cc8773924d4dc06faf1bdd7521918d7bb574ee69d0b84cca7759368ab070cdd5cedcaef54af1471415a5526e89705637203f8324750070c14040151d2af390bc7c617719ec95402821c00aa3c1ad5355739444c2f609802be3023efeac41bbfdeba9bbb131ea19000000b02e6ffdb055d43cbd07802a6312c3b27a827b3148678b66f900069e8623a7144671ab65ddbf97a0f7b3df9591675dc316a4ccb7b0f37712e7842e4e48ba96563163401503b4acb9c2c96451d660feecd3394c0daa941a0398074843a02dae77265a0f186b11de4f6e6ba34bb4d6810cb42d35fe938bef8008addd705795c3d265c9a839723e9d33058be5086a13b5ec2818a8f5ef06ae127edc32f94e83ca7b27253416d56bb85f73fd5b72eddd2165d10000021c000000b02e9670202bb395c951a0b8553df1c5869784089f4291d5f0d0b55d79c1ab36a48316822bf32fb874392287375bdc1e62eccf93dd03c924bbc0974df5a12952c813567311ec7fd7d044faefc0c9fa0f3f51843d184fe9a5c8c98ba8b70f15c226bc4d10b1e8dba1cab86733a1309ebe02212e519750c95a0bab2efbdaa33834c1f506b7ec5dcf80f2fd110509e93e77552064f819838fa48094675f25c93266c782e33d24facb10f87222b323ff7a15b6000000b0011d8785af358c1a8a3508867157c797fb7d87ffaccba0ca15f8ec5e26984c69d38bcd50a1d9036526282c41b28717af7edba17a68f56aadbb64757ac6516aff19c1baa77a4fa8c8055e3c97d94abfd510e841c7b2b62ba24dbdd85b6678436e390b29e6821b6c140cab1972f75f9f9b1ae757e963d78923859003aebb41475ac5b82abb657bebdf79edb057713e65a40d89d3b0a01f02e290f6d6b2348406519b6e6aac9f7b97397cc7d080742c06cc000000b0080579b521de9eb6e0e0105ef3af17f94dfe147ce59faa505e4397cee9539ed57027a9ad2f443afe3e88aca648ab3e4e87561fba709f3a173121499de44cf25c7008303e70d10ad5958f39812388e964d40f153da72d9156ea1964d2ea1ed62eb3f75383b1f7cae2ab9c61a589dc74bd2746d18555a852c030cb8b32c510ee6178dc411b4418ce0a9f41c883841d01392a0beb466d0e893cd1ec40ae58e0b8a9454e841919bb0a4806ece0bf7444bf920000021c000000b0224d9e5e08119194e42605206d7f9554f0c5b9bc80c3bbab4c805cb65b948274f655d4706e95d74a4f9898d3dfaa393bb0516705b98586edd62a2872847aba028e2c1d5e7d33a3496a986d2db5abf628b1a346133e812b29ae7faa6e2ca443dc8033179010b0a16ca5ed79db3cb866e5243e29551251f35b2c3e4aa8f7c04dbf9c34696ac20a5497549e3ea0925dff6e05b631ee9b5bc943e53d4fdfafe41b0d11b63cf42781c4435bdd4243e29943d9000000b009ccad1c42014cf05c29f4d7f8b01031dbe1730ca288e8890faedf8463690a4ad7c3ed22315cfd7c018f69e4b2c4abe38a7b55396099c157350e5f2877661580f63b12b7b8e7b72a23eaf8d29e8b03d61d36c95328b6876f2358b4d57cfdcc055998eebaab711d0857955a4a3c6a061314356c81d73fea137ce66e501dc0fae5c88f23d10b9b67e4870179a3ca4f9db915a3149d0c55cd96a439f728edaefacbe14f7fb046d9ea1d123bea5e7c8bd3b3000000b0156fa8eb691c36c58cd89bcff0b874d172741c48325629449dc7e745a8dd68612ab8195c56dd88db5d2c0decc76be64cb72c6c0221eb394b193130a7ce9ceb6b818831be3097f8a1a1fa53ac27a7ce8c65f8d47f1dcecb1b9dfaaafa545788ea5cf9585fff8955f7badfb3a715913c7803f9c5a1c1d8a97946a4b655c36ddf14ab2f89c6d45e5bd7993385e94f698a321ae88cf097531869394cd8e7cf70b8aaf1a3a5cbb6135bc2d7df1ae4802d97b80000021c000000b02b5a4c3901c11150caa2d1d1ef0f64def137c8a21b3750a7036e1fc883c6e556597a610d54a7cfebd4f38955ebda024c713cfa6d44d9973b71ac8b2006d7c56c700ebba49fe3c059a053523b1345c1f5386fff1704b58150849a9652b55418fbce825e8bae17a7722fcb70fd8c9a2a891d54d639183849cfc441b0a2375e24e3f2ff8d36d2598cfe29227e1beeb6571a1ca5cca3a26d531aeb16911cf2018dc4db9c14ed15f92b2f6d42cf9651d3fd7e000000b02f3d5e84140e2d61bcd454fd3bc1de412ceb73e4692f2bf0a8ce351dbea9c87bde2efbd83f7b02309d5382f63ebcb77ee6a7580472c95ff0862024c6618ff7f4cbbfe1d02015e496ef1b7c026d4d69a86bffc70d38e69e6beade749474413e548f542c5a8dea34299b43557b2b671ec9146a72d274af00ef0c7bc3c98dbb0afd2f212fd8fc0eb72c43a009c425563d65210917d3a0298fac1ab45e0f58ddcdacd418eed2d8bef441d5795e4d053b6922000000b009ac4cde4cebc26c798e9c7e0e054138bb487b4725d098f309fb4ba81ccd4db7f4833010de46147fa6ec2644d3e2702e18c8341d7c9588aa33866b47991969a740341f12d994e064e7212172c31c5813b92f78c5a4324b4e05340e603d8b855fc7d51a2b7e4eaec0d33782919b86f8e40479b97cec26c0152b47b35b5144baed1e32b7bdb14064f83ab78de63e306a66297d0666f5feb486599e47da2b71bf5eda9d9641db469f037055e13593f757650000021c000000b017699e43bf1235cd3b0750866c989ef2c8af2d1ca8a94f30cc7875dbd51b315157a2effef20e1d8d96b539ac7b97ad50bf055118955ec899495ddfdca857c6c6dd28ee2d489bf5e2aac42ad8e6b95444bfa849ef562a139dc9dab77f0adccc48adb5c388721ad9582a47e2fbc44a0ee6123e3a73ce673f158683865cbac15ec2833803cfc6a8c9e3b1bac0e4a839266c1d083e8371811bde622b3850d3187afb33318c019469450cddde2c9d7d408cb3000000b003c4b8135eefb1b0fb526f251415dab31c8169fec65169d526c8b70e41266d5c3727d29a5f7ba4ecc27315a55858727efa24e56db41a25fba31b64103adc56c7f1481d39feea9faa91e0d45f91ccf772940b31d518edac29a9ecc738a9e8d604adb2ccd9bdc0396b0afc95c0016279dc27aeaea2dc7a6326a8e582c3073d7966f5cf30247d692109a6078d38f9054ab01d3fa9b0a578428df3bc4f6455af67d316c21098cf3e24f23f6abac1be5bf69f000000b02676d55cc168109c263f8c59d7463b3d50b5cedf6cb3405df4555485a925837905ab187461e14da2f28eda9d625f33dae76a831835f415076b807970246d41b17aa124a7d79559fc7374d5e20befacc5d3701678b58ce166aa3a1b95211e646b9b23eec9b66215928906c9efeea0941b0fda6359951c40360ccb33b30cb24635ce106c4ca8d0bddf8edff5e3055dd8f30ee3116c981aedaf9f803030e82a63ba428e3614be26c8102f96c4a5eb5e4f0f0000021c000000b00fa0bd17889746d828affc9b59727fce31344d04c0cc66888dfca74cbf19287807cad6ac12e7cd2050bf7dbe20fa9eb9a4bdd06df912f51d4c0a63affc3c0d8f7fe9edca2f3b37ba59d1e37d754a1de7a760ed35a4bd527bb9dde321e3f6cd63099c6de9145f600ec4efe40f1dc8c7281adc48dde8f42acb30f90a38b19ebf262ba95b7baed6535cccf98db1bd6eee9410ada6afa8c0af16b72002f5b7cbeb730f12af59dad83f9f89409e377291a095000000b00bb1e860856ebff73d1cd0636a7c0588d0e4cb15b9c26ac69dadcbc5defdb0ab90939ed4ba9ddd79ae93a4de5f175e1f8051292f1f9d6b0ce7b232b0c652e71df232414b7f291d6dd37b3292c441dc84ca7234305b4406c7d2ce1f08b12f64973e4e4b904f91be742bde981b679883d31d61111c7ef1a4de92a96d8e668ae330364d0ad150bf094da926763fcf1c8c80092700b3d497947c074346082a1f4d04b89043eb000cc5512f319e17533ee343000000b01ff314c7b4a99de094703174f0616d1c88631ba6435c5a02f7503e4692ca67dbaadef891ac38ea265b14c997f27b6565173e15d42a1879b6fd661b42e79d169ad17385e8cbafb17530baefddd298900c7b4d97e8dfc61b97e06597a97443410bd35a78cbd8f89a8458bc4fc8b8a247862f4a645dfdb8f6d9f4d4738f0dd4877ec6346e29747dbcad6bfd41c2b05b44cd17655713f62c108983926728b01a4ba57d983e5073c217a6a3964245aa8291db0000021c000000b014c86f0e606fa803f4fd10720ac5136d3f95c4e120e5d7ea87a33a4932976370a57976e6860041933e49a699ad4f2c1947d675f06ce3997fa91492cc9b9f407dc3ba42cb2d05b5b08142f1518cd51cc174d82e56853fce52216e27cb81e74c1c8b69b7790bbcfbfd9f82f29d3b5009982e072ab0939ea904abb3d7a650e4046bc3560884eb12afb1db1528bc27a1b39b121c39a987e81386f5ee9642308f38650150e642c18f7e20f0cee80461d5f523000000b0204b270a9171b94d4a06ad8afdff75278aeb2a1468fa6d3f6dc6305308d8e6b4e4e38fea0091d7be057bdb596c83c6b468c0cd99b5ca9f60a508106763d3e57987953ad9d42a8ede623c43a95ac72af2e87813b25cecb75c8a8948b43a978abf639edd3fb962c422c35d158e3f9548b12430e5585ae30e973ecd2b784b2f9cad18813fca7d2d165210a97288ed5ed7f523f985f39159cb6077ac19280d47631687da4489c2e8d9d8dc07dded2d4ae96d000000b026d3f6d924c2ba79d7201a6e196fd6d264df209cd62f7f3169d3d22b992749887c52b2aab56e8a205844201b653afb030dfc081d61e5b878d6fcb2a52fa78806b181a07987134fc7e5c257c088da69b49a925e74177ecdfd2715aa8a74935e66acb1db903dd46c75936a54478e12738d26976147e019db98bbbb9022881c59ed073737ec1b03dbaf1b7d56e16a990aeb0f7b2aef956eec4e02b4dac5334c460525ecf30ce934105c3d7fc8e54aba5cca0000021c000000b009079ace87f18fd3afa8bd9b0a17a7e5781a198a4bfea7ab3fdf5f13d4b5fa8f682213abb2850e3d1f2e36f1e2160cb40247a036e255b1b50d90e349e289dd375437537820bd56e7103e0c391d68db27f93feab338933cba7703a6d0774699c6ed6fbcb4dd960fc16670f59322c92a881ea967f3bc63f16b3c998eebd8ea3b7d7b1417af2966c8f9a8265f4e934d5dd60e22575eb09470968158766a734980196c4f6853d0b32709fff0f42b2f873262000000b00876e570e6cd5e24c72b38bfab502b568d1f49be67f19e3de9733f7e1a55ea37486c232b67e188c2ae5a40041a5175416c61bb91b163cfdf9f31fc11767c122540e9ae6e443fee3d50fcbf54e2f7dfa4845713c30324d8835f0d391aae212908ca34b9581a62c8f7af02641db3fef5a31711a9a27bd5272f4a122bc993210f7628d0aa1638f9608ac9c2b5dd998cd6612810cb367c210babb3899e27b5e9c8dcd077ba0bddbbc84662c76f3aacce0d5a000000b01bd65f945dcdf839ce14d70a4885959a4842e58b3b907ffb3f3d821733cc978bfec294709cceb0eb3560af3794544479a40b33b11fd8a683821eca31513d5f71c734362f10374920eb81cc8ef05807e0cb16d3a83ba0a0432a9ca5b1e42ec8549ca56bef0d9ce0ad5ca6acbcfa5b727a128c461390f9b0a9423500afed11d1dde534b5ccbb77e533a300310041240de00bbb12f67ab138f79af8200deeafb59c716f0bd37eacc2bc8fd886e4ce22e01600000fa400000168000000b02e804e1af9b851bd626e6813b55e9ad410faefa73c8682f45942fe8b5ce8027e0d2adfc153a7c8fc50c2c0e353ae9a20902bccfa0e91ca29cdc0afb79c794c7cf4a3478c7c917e9a763d3d6ed6e6c7d720e1ba8f465da2656be373037196031b74726a2c4e40693c9f31a936c3a84c2c195e3dba4e7875961176bb63397ff4ec39b76fcf90c9bcecb3a021550a18b63c07fc571e44bdde6fb2ab703b51e0deff69bc00d7ac79647eed87def64f98ccd0000000b0056c2011467bc20d95ecdbecab4a0dd51604350e93b41db1bece5c9ee793c46e9e27698e57aafaaf3f602ba26edd198e201f35580c6f11e34e0ad7215f21360dde77003ccd3522385d21263e3a35dfd7fb93809a6de95278ff9caf23ea4b3860e78b4d8c44c22165dc999c6a3256baa81785f67337038eb2b973da6424401dcdf3c3d80cc029ba47177c95601233a5fd1c179a16d656afe28501de6a8b5ef4c67d7c1ba00f6ca07c33c7c97d7f1a790f00000168000000b020178ad75c1049ca42d29c4f1edf5800c06f3d565db47853f786c6ec18d1e4584890f975babafa6e635524632fedd64ed1db6ed1735db6592916b434ae6c1e68dc631469dfd9a9e2fbb17e230a8cb0281e3bbb83f770c4ec27f3bc9cb295b4ef0c74c8584bd2456f973705eb55704f43050617846c39a361617952b73bf9a7954fba09bf0408110f9a01e1514a73678107ed5325a4638ed8b5b34bdc8cb6fb46b9684cc9336f6b00fe0aeaea034bf2df000000b01cc4a3918f595f66caed39da0215b54f2f6acfb7f9be224381af6e22b9c611ede94f8255acd15b43cef5b95144c0067d8b2a5c502168282886bbb043cae172c8ee8f482e9e06d3e2ce1b9f240c880d4065f2e0fc85648851db2ef9c7b9db60cafdce38d625dee1b2f78f96bb47ec17070ce57895474590b5bd8e2103841f2d802bd6564b5cbff7c87f688be52aa6f5571a8b49893a37e5bad8dda565c22113229a585f81d1476af381b4a6328dcb447700000168000000b010b411726b1fbc95ca7f80844a50cf8fa5a9aa77d506d119bf4c56bc59ff6ca214ceaf87e9962135ff1e0a8c517300a2977b271f91ada813d4305f8c02e218bfa8c4389ae88cb283e680dc9dddcf3614d3bb252445dfe95a36a12412e416c97e90ee2a19ae3504934d2adbf5ab9ad16f01151cffd92a5fa6bb7dbf99f9a8cf4542f20c0cb6d7c20f38794f9bb3bc83db0dc10567c55b374210b489e0b81d8b90bf8be12a1b52468394fff8be295c6d32000000b02c9c6da4f316d4123044c219b7e8dc50af2654514f3bbe3ce061885f679ef31d664602d5976b80c2407d367fe8f7c564d5d5d4d96cfd40fd55cf4f8c2a68b103285a3dcbb526d2a54a37d22dc6e62c0d70440af02c1945d4320aadc7a03a7fd84d21f952c20afdf0de39889239804c92061dec7e3c2a64c494eee6087580dbbb828e5274068a7e58881d7633fd22a67717c650fe59ddc8da8fdd0d8798248a6fc9896645850933886b80c33e0b32771f00000168000000b01a52bc54a2438c67c22232e6d3581daba296153a869ab90f13d72c4eda25843260c8ecc04321b96752f1f7532191d6172a506b095cacaa8841db6165ce5100f67a0648c5f70c4805a671b386f8edc32b387f665040c7cc85a4be5736009b536aaf2bbf37bb9d0d929d0e054c812631cf1310fd2ab254c1616bc23b2b2db9db29bbe96c1089c210b8081c45baec38a2be1bc832c1a1d943418a575d2197e558d33d02324c535d91c2ef7b31ce473ad18f000000b01d862809f33078df38fa2cf083cbe07b9f38cadd440e42407a60bffa182dddfdbf277d0960fcaa404d4b4662a99d4f3457a8068382d67187afcd08c89f2ce564ce3173056ac05b0f252f927e905b74d898f6c7a90bca704acb5617e377860c7fd91908f7038d4aa08268e92a3aa026b32730f7b924615ff98f1f9d8115216431b6da8a3454f9c3e7606a92308b3e73b31ab0e68d5e1d7cd9c8b7867c0c60b3c87fa7199cd50ce513ec53ecde8b57114900000168000000b013219f3c412fb9716f311d5e07225b0bec96dfb671ebcd3a35fbf3bffbafe01942a8c623bb7a8e0017c1319267e74febbc1a0fb5761855796fcc321db09441144bcfb8130664134de6e7173333e94d9bd0b4ab2ba3d2aebc3280c51675573696cb402453f89cb41eb1fb68b860f419b6226fdc45fb8218eeb20d2d62c6260002571c51e3a77a6ce97fdddbaed89ea8e217aed1dafbf2456e87d2c942fa1d817e6add984349be2c3a7a82ef9abbd9c146000000b029ea2c9721fc814895311743a2b8b6d03ae41cf68217ef68af92c372ff6163436c3305663383d0dff539112674d0285d3e2d1684d44077cadd5d7459670799db316efa010b495dcb0af1793013a55e8195ea8d1d1537bdcb28a5745d8e81988ae94aad3d7967feda9adc578ece843a9e03e8c69aa0d971ad76a6ee12d093bcdb50ae05f9f459f81e8dba4e3de1ffed2c140bd2969e2ec64965a84c68c81fd45f782fa97d1b73021100eb65fcf8602d6c00000168000000b0010420cd1b820c6e12ca1bad687118a250a717cbbf8f863cd9e16991e1cb4ec1aa51abb74f5ebef6ba9d736dc51f3bf5b295910c6662a6158c1fc02dc378b5ed6b355ae4e499cc325bc2567e528fb723e298810e18a5e9f02979fd0adf6db48776c6c924de9a8deabaf5794b1235086b0d43632a851cb6b89b96f3e8cdc623646702d9b4220cf8bd0a3940e97a6935ad102e1085023e8f9bff9df00a88f1d36e7cf1aefcaeff6ea9ad46430ee480d045000000b00265c39e1587be85bf6a8e5385d1634e726e5bf38d405f3d56d80fd04a3361f916a5e0f56155638ec005698ca464fb18479cef28fecd265dce24d068a19004e49e1bda4ecfe35d42d03fe4373c4735311d4a330d428fb69b0c42054e8c9eac14240c7786b52c994052226467d96eb2bc273107f7a56d2f3daa0f33f7db6f90d9645f17d9f769f6f05abe4ff4e8b91f09095c91e54cfac3c994a38d9703ef07f5e9e23d94902154b4235c38dee9ac663600000168000000b020ae220b39b5c9050532fd159c638318d552be82e4fa84503e3b7383866835487db64c1ca7040b538deb1dcb34c2c9f7783ed920f49effb0ef7f2939ecc6274092170c530ad701f28266b3acbe2ac747cd59d35f49ef8fabd8234f3ccf3759f735bb7fef3146cde4bc3aa37b1b5856a206c5b5a44cfa779981fad2e9499f6a4321d17a1fbb4a515f322a2c16c665db762b584ff8f6346d401669ddeb32e010436e564944672abec85daa9262cdac630c000000b006ab0aedf6df027a0aa3b107c6e3542314bf7d04d972740643b53311d6249a06b036df25ad896d97b075f826d62551e88bc5199c89d101803c4648d1ca72d6cd1b0071d1e635c91e8a37d74b4a730441d31daf2190633b7e96ecedf53ae0e00b323fd448d2138968d44f60592aa4401b1e1731870a19cbc76c8c576da0b51ae869b9df1f6b77de957752ceca348e22ab2a9cacf4e7a49d742301f5effde21bece189776eddc7389e8a616e13f38b890d00000168000000b0239fb57e78ad5c2bb6f71ea7465cc6d252bd66d225f879024ef068d8b5441b93826af31e31642d7b79b91673f907db1618d5f8fe7631bde70805eb3893d3dbfb506e85e89f85dab91a71e662630082b6414e729f5e491572dbc875ca0b91a445fd6758c7b44b1b1ec4c81c7a55a3ef812477fd57a02705a0fc888fd202290792bb555c554235abe918907906132d51c4207bd598448d972d44fc7a2d3dd4b884bc95d833189b6b56e40dfac5b0eecf8b000000b0156d2ee9d6ddb1be635df612a849704d0897424310f7d1a6bd89160892de16407ee6a1abb1dd282a5e102fb89114a7db7f0ac67cf81b6ede7ff0f2fd091f79c2aa9438bd47e2290de1e7675e0241245d18d113ac06011dd34d6b01e61543ca06fc7fb0cfe145186aafadc0c0f24599b31d088923b3370130ded988f4222a63938ff8c32858c0d561af41674f4af775de1f69a03962970c4cc954a16153bfe733942f156e63728089891a46989068a01d00000168000000b028ffff1800d2bfc02bfa4b5a21f6cdca856ff4a398ed5c6753334a153b1ebbf9f228592c44f0bd0acfb276146e00606197f34edd6a811d9f148cf71545d90b2df615e026006dda546d43ad749b23b428f72a21fe9cf8a7a547fa7f00a0d1dcedc7fe43729e3a405775bfdca19fd5fd7f275bc6461e976a092df216c02ad99791dde5e0f08ed5c2ce656856f398febf881df2751ce4646cadf7324cbe88927feecfa9c5ae6d781cc22881b7ce01c04d74000000b0257dccd70fbd672ad5b0676358994b27759f7b8267baa4785d441c1e5e3035813758ab1eebf53ad35a3b53c0f85b00baa3bead9a22a88dbb2ef1d25cd9b66147470b61e469c192bcafcb503e626fcb80ce2878e16bf7990eaaa547437ca178c95008e4b2a4dbeb90e71b89e20a5c2c9b2ab851525d20d52705c6b4fc42ace1a14cd714c3da271f1e4ec6162784b7f36f043d2429ff5595bec340034e147aaae61e8d27253f3b7713162415c79501ffef00000168000000b004ee9b7fb739edca7b697667674d9f76b1b265df20e9847a0f99ac2369dddd2f1e2c5e009b4bd8eb0355c9c3477d5ba12434e5c05fefc56d53dae080acc6bf6761952f2feffd9b815e25b2376783d30c7064964c5b1252c5f18b9dae7be6df204dc0f0e3c54f173d674075f68219e55b062e4e46b2c18532448b29a501112fff2f2bacba9bcdb67b4551b89310c744c105b11ca708f94f7abc58569c3daed228a9f6ff5945f9b8759ce2358309937d80000000b0053457d8d8fa833685b7554a0f05a107172a37715b9fb07d089559d7999bce8865cc8e5851d4be208bd8f5b2026a74503ded90ecfb56a653114aacc25d9e3e3207732483ce9ce51427e463fb02dc9a4d7fb4e36a18b6ff6d9d7a403fda2bba32e56136d4f4739d6359c666ecf84879230820352f267dcf0bdecd9e4a571e43b0a4b1db3383d7c03da064526c2ffc853f1706bad902146f6e1dc463f9d7d1c081f16b6d21f935230feb72641b65d78a5400000168000000b00a66401bd26b01eea2e4979808791c76a78f5c81f74b7b133455abb1261c6aee44002901eeffbc6c226b1facfcef67caaac109e4e1175b66da441d137fcce307d8284e5492578e7c10a86d6037fe613f9fd4e04d6cf052a207e9bc38a68ce0712531f04d96ef35afe048739538af000320a3ce7038026b92570cd63c8550f04e1009461bfa6d539ce39da4de3967cc621824b4ecddde11b1758b5a15b9ea05886586bc6bd78e59920d63f4712924f343000000b01127287921d921ac59d4d3c5e7d1df0923c4c63519c21d3a0fffd42ea9ca3feb90d5c72f763f00cbaa183ccdf01064385b214173d6221f511ae28ffce3a720f70a8d8412925e082961d424192be3c81cb0673993131cb6471100ef70d6e9218f580cd1a4a9dab06c69f8ad2a4f8402a817c0871eaf34a3f61da5e5b63ebb187f00fde1fb5911bfb0af813d72fdf5ec4507ddfe330fc7a289f6458e636eae81c2511eb90418f735147647eb39c2c8d6d60000000000032dd0003800000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f73700000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f60200000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c11000000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d9000011000000021c000000b007363fd9ce63540d0a57746d29fd8dfb5b75d4e9b689f58ffbaf630b615860f77a9e6dcc94c73ed464c2648feb657055628c57a42a0993574cae8f72a350a9c1be5ab03cefe836dae00cb91d4a52ecf8cea1a1b1e3548038a600d0398a343df767819cbdf92c2dcd9d38a73a79489fab22cfd4f80da03316c387bfe03441eef5e71bc7c58fe4f0a33da16edf2a1cadd3129c269456cd0867cea3f1f7860d2cf600cb552be61c601e89c119ae0ce4283a000000b008f98f48c59a5cf1fb0f6445cfc1bb8dbe559dbe7cf42a2a6f2af8d9dc86bb0ad787ed7a55baa1dbc4ef8cda12a9a297e9c80706feeb1e78c321b6257ba849c26977dff278b135150844c881e9b9422720e64d2fdb4e9f445501c98da159b2b4426fd4aa8fe3b384002d7109a27533f5044e890a26c417cb0f6b314b84bc8413ce6000f3080dcf9c9146e20c10b677b90df7a5d2d74b463ec441c7cb9cbbfe440079897cd67bed0fd7f82612c163382a000000b0137c8584d873ccf53265aec8e4cfde8d81fbfbadbd342c882abd8c525c3ed60c236ea9fc97fae90c1e962643caa027045bcafd5d036a04490df848a1ece5b2a1faa2b15d32afece28694b56c0066afc9c0e802a39a827ba6ea1fbe020769eca63fb1c1fe11b0dcb45ee156d9f25db72d01e5c186de8d20c41e864426e166b2158bb6caeb6c3806f57a9b0edc7568c20b1fb58161ee0f8decbf4a825a1c73c098dc8c2f27a9b234d87b45aa6212bfe5d80000021c000000b014161bc54fe7708eb6001aa69a1433dc012887bbe6e69d17a591b668f8de38f362f61ccb1a789bd1f19b44741fe8234eede993769fc7ca9e36dc460023d022ca8eee269f0331c2d21f6f331976d501d90f90f61d6b94c17aa32cca7fa7c084d4984651bdfc74b559278d2124d1c72a1e0d9573ef9765eaeff0af275b51ba61266c4d6f900b50f2af4cc791b1cc87773d08451cab67571e457c320ee15f46f057c5ef5279b4ed182b1c37e0f520481e79000000b0123d76f4e1aa86d69d4c62a4c2ff3fbc99eff5720d3c45d3685781460cc562aff52c4ac3da5c560101472143a56cb44fb3da6168b161a0ed6972446ce92c222cdb8b273efbddb1dbb17a12052ed8d877e5e2c800550809681c072f75eaf5cbf9953ac889c89a141dc67b4bc609025d9f24aa5d199a0b682957a6f55686347b3ff19daf73062d1ba0f48bcc31d9b33cf7187fd4204e652e5763a2a761454cfef4132ac220ab845592a59cc3282c7eb540000000b00535f4dd2918727c3a0bc262fc910fc31e17a12dd85c9c2e145488bf4fc7dff3a75446f6fd3da95f66284c59beba59c6148cf00f3594ee3743250c2ce7e87778910bc977ca9d310a5bf56ea9a73ef0e5c88a98d767e02493d65b0e5ca657cc90ee08dc3bb1d9d277f9604a028a484d872cf6cba268d4f2f1b51ce59ae4128f6e525ad725c67623be39f792d79eeca125011c3a79c9ce0c32a77f91067d1a7c3611fec3e6ba4368bb47b16b9e21c3bc5e0000021c000000b02e1f3f13a80dd5cb988ce422e488fd111e5542852ca6dd95cad3c9759ac4bf9629a0f2178c6d6b147935f3dde85d2cf0a7465b7b4faf63f29c1f6d304015abcf7b35993c303bb1bf85293e21f22210c3f9323b605c0a24b86b219452425ae460bdfc0ff05fecedeb6cc8c4c19f9fbd7f1b21658bdbfc5e18aac6c95062267825f7cdce5a1dbe8dcab409f2d666cb214505797220126d9f818f5494b6782760f26146698a17fc7b2467a04412a0641726000000b008eecb1b26870ebc4ebd78d6cad9db0a01d2916c7cfa6a923022e9c9bdb6bdd69f7ea76f1366156d74ed71abd9454f297dae78c7124ad82799a863aef0d99f1d0c251dd7c5a4c07d03516579404a160d666bd405f1331e399456b4d3ea75db56f331fd12ada7407a2fd9e9754a843d0d02a490790539e0c46ae382289f425b241ea6e943b9ef3f83dff4943a76edb3250ceacb09a71b7811b5af4895ae5d6f0ffb7cce50a176d75204c146bcdb26a7db000000b00cb816cf65e156ad21741b3545748ab6f7054a3e76ba407c99feb7cbace850769b80aa1485a3ba7a73ec47b0cc31ecf48199cb78afaec1cbf590570e26a4e2977dc78cdbd1ae39b2bfb93dee865543117a738099747ebc823f3535e98f6e7ce160f352e5ca207134bfb69071e510427a027f7b56836d90f8550733c8e87ece7a17562c460cbd4031610859038c5101fb161fc45e111921f2b35477a84e04f421cc892539468b1c2d5bb93788e1bb70b70000021c000000b024f0226bd0a8f04616fd3bb8ea39d5c779fbc33819ac0c52e1ad95dbb541b3dc9f39958827bbc0ad07aadf3e425c6ded1e428ca4a7c370feada41921f94c667502829cdc4ef508744229ef594e874e7a5b974d140248496c43863085dccfeebe31238bf3a8e15fb8619d8511e7b5af2406bf2a72ff3dbd137fdfcb6eb620c44a933eb70f08455837f4865815310029f127fe88b01c6be584983d37b474c01217ea106548bf424147816bcc66c5d2776c000000b0289504bbb966b2ea9a9e97985417e1163bf66ebb553999b797b9a666c104cfa2a60e708240b5f1255db06aa5d4f8b9590f6175fde8f0efb3b802b3b1a56fdbf166fab4f471fb0275d0f6f0dd1295e1b7ef8c94d9b138a537f2711003748eb64338f8db637a32566280d40ac794f011722ddcbac42474409123b24c74b6b0294d0454d78aad1f397fc1edcf9add7e272901871e3abc83b055a88ee8654db73f0bdb452b2349e97f6ca6ae5b67ceb0e424000000b01b242c314448340acd3e074e9bb61eaa7bd7d6aa84c5abe0d35f3c8f2703f2e58a058e6cafe51f0c7697fd904bd7c00ac0f7cc571098627a47c0a6d57c739d0b0418a5e53eb9e1255c58a375fd9871cfc95066ffda6b5721d194d641ba36ccd39e465a58f41ba3c710737195f2908f34060d4d2821d7065686fb7c1eaef787397b8901ee92ca97c65f360dccd622a7d409e4422b6f7fa82f3c4d25f1b47754fd8ec371de49cf6ade45da8ebb49787f800000021c000000b02a4fb7ffdcf66175af106a8424049e851cbb67253db2c8c1476c6c04df9566ce8c718cb6ea76cf23f2d746c671d2868f86a41caf92c793655c495b70c0ba9b8ecc18b4957a7ca9089e33dc37838dab7411ecd1b1b8c9cd51e4bbc3f58666752f8af25fe67e0756f30d0249522108ecfd057fa101051757ff977c2cd1b367407e4fb38c8e138e978610c59b5387c99fee031bf0712a5622644b58485d75ce46b5293211b2c991c8bf04c5bb914703e1b1000000b01f078b5d05b53700c6c0b3b5ca095b03ab0265a74b1eff1d8e66fbffd43666961f2754ddd14abf686c351fcdbd6f6d95de6265fe072f786fee7ed8c6efe8482bd462b5ddf0c729530832813c32ff319fdb86effdbbda3f739f576c7cfd450e62fd77f48c04d738e625b104c010ba7d89246d52a4a6d992d7e21f4cfedaede59766c56f79604ffc43cdbc1e50111e115c1e7c20d46e41f73221c6ce3b1d21d9ce37908517e6cdeb3c526ef9cd4f9afee9000000b02feca7710526ac6b5efada0d634f085ba32ee6aa9c718e0bb9be7261f67ba00a9b7535c8c74befb3e447ff6e34145ecb4432c1fdd9cb6cf6fedbd86e089adfdedb467f66ad457ecf5ec059d336d3dbf275c58d4494c6a9649c5a1d60ff453a5f9118faf0d6458112c911b1ed79a18a9b141ef65eab6db654b5fce30a4f9c0ccf20b44a59927fdd7bde3155bc88798e04154ec0d5201790f5df81061e3b060e943850557d5126546fe92dcdba649f65cf0000021c000000b023ab920a73f39e894fb137beba9c5a0fbf648d6e3fd6ae7224e4949b2d7a70491ba8c7f51a1d738d996a1fa0303a454fb34a2283b0884cad63bd63a9cfe3fa3e7c9fab6c0cb22a6f2378c5b42c1fc9f9b806a778a58f23c02001919bece0d79df01f6987c72daf335b0a7ace54d2c3c113edcf480691699c05a45da6e095d8aa218e65ec0ebd95677ba01949636df39106686840351d81de6d345439763671ed9f2c191e8a5841682e40d180e68ad0fb000000b01b9deb3351f00540d1d77b6e169cb33d388216b73646ce0ff04c29b3354180b239998dab47030d1774f2f70f12d156bbd4db344c1761aedd92d7e33ca2126877b19c5e684365f7307a7e3cbfc8b3f1af28644ca30747f515550c53df14178962e657aa3e7ae345fbe07dc0555e83edc30dc13af2465765e589ef9aee42c7f9ee37af21f5f81d32e973268f6887e386ef0b104933c0bd94320e9b6f79a702a11de13a5fc4cb4b5966b54c9481b908887f000000b02093dbd6a48c3140073a7a5af275aebba8188798d416c3b23a46322007a300078da0e2d278fedfb942e732080fdd15c25e9f920a13052cd1401aa7242cb821722151f19f3454b4da4ff819fbb94803b4c46e73c41c7283bb0718ea5f3d378d3f0eea7e1f7e536a48c36d91741b2ad4e00277c10e0dcd0f93b72c0f3ab1b49205b8a742b144a1fa1a4601645aa0f8f28d2953daed39bd5c1d6fc9287d44a1a4e05de29c8bc75fa3ebeab822a45b0926640000021c000000b02f0f8c175a8de2b12534e8b7151e0a5c92f4bd532071b963ddb1023ad9591a5538da9ff3b52f70166e3c103cb5ed6c82ef007833a053a28316cbc40c4c46df41d162c26d91c5fa937d2b0b2623fd256a705ccadc1bdcb4a5110ce4a3860ec5a6e2d815f3f8dfb73eb46d02b3d32505e92500913aed3a20d877906bac341fbe7d2357b2a83f48362f83468f98aaecafcd022d299e6c35fa3d607000deadfc56078b373b33606ebbc4a7ffde4e617001a1000000b021e3b91a17eb139efbd1824f56b910d13dc32131496fa43ec4f6f3a60e4e9b5c1385e968ecf1e8c38486701d4577322270a9c4b724e3d1bfa1fd03053f2e4dd79eccc52ea23107eb110c039dd70c39547a849583f1d6bb86af5c20376d062c254bbb9985941239ad4abc15db65aa87040c3253a3d0ad30d255e145ac993eecbf701a96e498eb31f0b1910910639da2e20bac6713826e32b4bec9210d4a2c87da351853e7dab73ceef3c5dd4dce6b9622000000b000ed4cf1bd65387926c284a78ba9fc04c2bcdd846baba91daf20c3bfa3b8c4876903617ab1344a95e09938ec470929614cde40cc05276aeae65c8a2bd1d91c30ba193b6eb4e61085a899e08686b8d0d56bd8296094fa10394bc812166a084a141c8719e89319dd450ff003698dd6530f209e04a6c382b22f6091e3609fffc37799810e3c7580cf1ee55a0050639408151a5ea37799d95ce3b540f1968b59031dab023596316c2be3992afcfac61ddabb0000021c000000b00ff1eeae5ee54e1ffc49c38b7d6825f4507f28be8618749a0c05c5336ca393b3749ae4502bdd27723dd767b26cb69b780a374739318cb230b10bddf4ba9358248176494de620aabd205b261dffe5368bc731cc31dfb0e2d3c831ec3f21fb792fdf9661bd9dd57920aafcd0eb656d7a5129f8f9a5a8fc1216fd02cc76107fd96e043c60ec3fdceb65d31188b2651f54e41f6fa18971e1cc8a1ef646b801e0811c860c6dee6467e522f04e8ba9100222ad000000b023375d490b4a98c3e6513eec81b26213c6918920a19a4d389332c9b9ba217a990224306121a3aaec5c6f611fbd293435fd920a876bddc9f6cc2ba4951c70403d7305b7ccb50f1acf555939699106fd659f9ae8f21432d0481d8d373f1d75d487cf361b6783c63bb82f513bb3e5478fd10942bba4054d4e3eea8ce008fa8eb18b84188a7682902a705a28f06cab64460f1a2b8efb8b3b92d13d8af909f7397218c3a385c7575c2db1af02f44f98e5dfa7000000b0019cf1816d117685929e07ad14503053ef4270cbb4d4446c368dc5c7607c35f5f224cbb91c007bfe9c9a07a4f78860b583d4817dc461fa866387d1e1449c60d5446a47c83681dd0dc9f1b32c1bcdc13c0902f89e0e0bc437b961a0f457dd4afafc6beec1e26bc3106c956f2a65100169265bbb5b21176b8bad992d2fa7780698f48070cbf8e552debfed68a9262c19a72b970f379de099c49bf75e9f702aee9807d9d044c9a44c617df04acc22bbb94700000fa400000168000000b000b30d5b35755ac783798eb52b7f50a869b70b1b71853b696a6e0505ab0d7d100549d9af1555712fb330e9ef449781cee6110b5c2d66045dbeea04929c0e06edb9c8ab5d05708dda02b432d79220338723a5fb39a24d5427efd907cef35436fa03d57cf7e26c623c617b0433204e9ef40f292acd1c592802509a76f2443437f9e83e7d5e3ebc2b96122c05ca025aa393093397b1efc8e248a7d2e127819bf57e040c98fef0d648b83f8601e41f4cda1b000000b01fbe0e9102bab263070c219acdd0a46c6e206ad2bc6003d4cacfd4c559b35045a6ddd10c2d1a6667ba643214fda069ac0e7288073593c5a88442e992dad6291ddbe6aae9df6d4822665ce151ca34217163cf305203b6c25d54b754c24b19dbf910deed94f9ac3629fceefa1efb4958c403400a3118d39531a6fdd7e76d719c68aeb1f08a99dd08c0ff80ffe745c033431f2fb5643ccd6d191b1977cff4ea95596203e3811da71cf6891ba4e5fb636c4200000168000000b01c52d3c29184dcd0e9ea4a3e6551bf4d76e72aa9564e9b366a93b856a2dede1462fa76cb2187ef471d9d6ee6c2c4d39145e3486c9bbd5e0cc50649dd34320486ea5fc46e123fe20cf0e66906db8287e62a1257a5248e48fdcf185451e74b267ace7d6fa156157ecee8447f25b58c1dbd04c1c9e1226fbc9410a786c5cc0eaa0cd63d5738ef9cdd8a424d05dc24d5cba013ab399a7f73284144a6188ce5f2f4e8c08e543dd0104ba89c7c1e941ffac752000000b01d11e4a1893378ce82e77f3d33bf865bfbe702f60d96cf9f1ab92a4afb7ea31e9c84d5d12422999a5112dd48dc2d41ff52b340c092d3b782278ac9f7db64cbd843e124cb1ff07baa59a9493aeac5b08b9e1a8461e4f48c928e4cfcd4d0f3b8ec672b686c3a485047f1893b3863741c2311883991445c41488427f4e3ec5e2a952565c7c31de3f0b759f268f9261296fa10b4f9aa01ae2f6cae3323f0a8436d6812c8fc242190e870d8e34464e2337e6900000168000000b0146a1f57600738640c37b823f57d3a5d592183d3dabee60fb0ff26853df41c5eea6b588c5d2c1ed8beb23ba0e225ec3971e46c8154aa1ecc56a42af40ad7cb8cef8bb43cc8c78921dda24dc5dc180e087ec90ace4c7e8cd462482640f5000cd282b1b92d7fb00d42b485416cb07a0023020af04b0be9e3a3b2310443c6c7e3384bbebfcd18fdfd346c28a66d2d02bfde2e7eaa67feb66d9cd889de3b2d62b0f365b0f4c4fb914e3748e4afd53a83863f000000b023165e029b539176f4d8e5e4e9ddfb0a0e9db536435acbdf1e976a3cd421bdbcc438c4091827dd57ff683e655a30cc2b1e79d593581ae4f60b1a613e15baeae600c39d9ec135e6ba0737cd3824ad0b58e08f85b0eb3669cdecaeb76adc44da2626eac019aa2c32f1d9b1707fbf6337ad1c24a00a38379fca9bf7f16574e1de2010f528edb6472107b71e5471bdcf9d201e284d4c9fa137e67dde96eb2747f0ef7729c99f55fa74033ba0bd57c31eb61500000168000000b0254afdd3f0af5ee8e2cad2611b1cb64404fb543c7ede7f745defb68a0befdf517cf8ef71f297685dea21f499db3731b22aed1baadd7d0a41994f23490d404e4089097882f69bf37f69bf6a7011e5df68fa814da62c13befcc4b61cd4428647f467397df2df1646d272e5cecb84bb8d221f3386b725cb62a6e9a0203d56e5be49b8f26927cc7473e7b78aeea2122b18e62b411e197a4d76377188809b9ca8c9ee9463865b9eace8748ccac62b43f8d1e9000000b0030d7fbd2628288fc8099a00a9384a6ddd18cd9520e1b28b9cb2a29797cc373c9c569ae1b8907916fb471c4358d93ab8d4e2d647d862b9060a2cadfe9f6562cc850c935fc627786514b66d6aacebdbf7c966e0bdbc78933dc5ec7a9c54470b5dfe1aa6296e1f0c270581c7a8a0bbf524167d01629d65a5fa698c466034eaf176be6af7e95f6a793237bb08e8a51681ed01f4d9af39e3e8f6f37bebe4d185dcbc4e5d9942c5391120ea071642134fa4dc00000168000000b00a79b91e1dc29d000424c2dd8298334b7f6f58f31ea53a95298c4c2463d8e08c88e992747855cdfabf4970db72403cc410c827a43235408b3a6b6befd4a746a430efe4af1849ee4b110f60ab2d0909b4530e651bce6c9b32a10e04bcaeceabe5f4e2e67752b5601639a2821280a481e01dcd7c7c4b9e1468dbbec639a37cce423e612d988cd7bd60aa722281b993232f1d10dcbe5ae534e4a158b65493a0c26f927418c44d7ea5005a1d07eb4b923285000000b01a3b43b16162e0b24eae1930790502ecb55268bdc5534b01def90616b0b8de936b1540b23f39117aed4f517554644acb48d13fed2a4d2affa1e3421341f69ce85c1a1788a733394134410bf23f312a99b10f65f8510f24f3700eef07a9aaadbe266cec76383b900ce32004efc22c98cd0738d81c4af57b2a3f1d64c5149bc9df14c8083bb1b7338fedc3613af288b0e323b166378a0b3a7388a135bac0cb178e6ef7a2f8c37c056c365818cf064efe3200000168000000b00f036261c1b5ac1092b0004bfc785c077e35d61289987378def95b8c03c2901490cd2073b57caf9fdb699afd6d0bd0ff0cd493f6df3d5d7142b9cc2b16712452fd8eecb9eec6f3b61ffb55e202f144d3a0a3f638a758457065bd6f74ec4cabc6bbf4a4eebe91a598ee3aa37d3bd51562179c6da30d457df37dea700b0bc8c370ae7165b067be704cfd768c2cf28b44310b53c42da172d4ad50cf96ff897589aecab4e64526eda17766330c1214ee0874000000b018f1e557d9e158ca8a24307546e7c61f027048557677e9d09d6366c9cb2065d7422ed341915749b78fc9312ab2c0348a24affcec608c898fb0e37c8f49b5433dc12218e9904e0c58dc2ff1e803cf6105484f11f1851c4d7b4ed1c487d1d70086bbaa7617a0597b527a935c02b488954b0055449a900e72d9db9c547a861b68e081432d124afc0202c692d590ad3d22131df06b1699435de37f114fdab499827890fc1d061b6e7d53134c50cad6d2814c00000168000000b0210c5a93389d2fa217feb61850f7e28aacdbaa05b4c8a90aca4ab40ebabd1da67ca69c0e273cf72c2777e2ba8df171ee5f9297ecda08700aaed3b96c5b86f0f3e5f3720e4bdd075c3e43b9546c7cfd936b4311d7763477fc66bd8bf4a428d8c598d476196879cf4aea766d5f826d847d2e3a747cdf2bb12ce49cc14ac594c501040d107efc067e565020ed3dd530d74e27dd8e51a1588422d88cc678121fa8e87e4008dc7acf437f5ae783388921f3dd000000b010aafc2cc3a9cda74e15696131ed4735e21f80f003077b92b9bea1d914c3c322f23b5ed3dc19926e9fddbec49279cc561945c75973354d475c49c4f1cdf8c34f8bc81258182b69d98d29fe56c8380438b35c6161d8ee904caabc2aa4cbf73b5d1390c9a8807300d741f848876e541aa327411274f62c875c7532e0208458fe0ec52841762461795608a0b44440e4205304b156914be26251a9b4c68b753f3e445e7335fcdc72f43ad7b24d32b79de27800000168000000b001d51e0ca2acbd0290332ed5d82b316602ff5e0797b9926884cbc0ea493b2c6f211db61df01a185e03d249122e8f32a71721b43655f75c39b74aac980e7530cd288c274cd9f5df8a2196a88cd5dae229725cbcb22abbdb4a3beb6ab0d6d80b56b0857576126075a400d664321a6a345b1faed0df57eecbe18e508720453d5b3622311bfbd19a831f9da8d349cb57d8f52bc4f865dd2488b0fef3e46b0fcee21d7fb63d832dea8e9e3c396e6941de4df5000000b0044260357fdbe224f2240d5613b8852cd7fb62b863ba56a003612cdbcadd5b0f0a49ac7ddff87e98f55d1e2e8bc32a046ca91e62647b513c6686169eec3bccc9d8825da0889fe337c9f895ce99dcde77e22022ed7d3e9b05b9dccc31e1ebf13f5642a171a77dd3eecb1ae4ac5ee3133e07f8c319d5ecb3f1319dd61123a054d1b581cffc855f6e2c0733b7215057748d0d5b15ab552d1df74c8f3799665e411535861e82d41b2644c22734a5e28e39c500000168000000b02a8b4fb7c2a8890b03c1382113df217f403c2beaa8f8a27fe78b4df50737e1a465e389622c2d6af28d4bb268cb3afc5908d115813ade929c6cf9ad2ff2cc88a691f37af24659867944621eec542b6add1384d35710969a215e7dd914081223aca9627881a22533f0b2fad6f901bfb34322b6bdae0a11b7abac365ac907aee57618b5e294e035a007efa5c83998e5a41c1215ea74b76242b04226d25f28c759b6e5965f3ba7230eb6c81f0a687d2fb104000000b00fcc1d4d51f4a80cd680d31707f0ed3dbe01bbca843fad00a5bc0be06616af00031536bd92d6ef791eef62c2e9285d231ec58b8a2a3ba148e5ed1bbbf8f85e7d3094b9f18eb78b0685b8ef0fbc600c74e6e29149c60fb2278806b1e32b3fa2740187af28ca68bfb1b9ca9464cda33a3b047492a27a468c3c21d440dbe1c93d18fd5960ef963792bedd4361e9443b39d513386078fe2db6e27aee42fb89b929f1982883d33b30cd7b28d9774a6717698700000168000000b02d5776f4cbcab8c616b71bda27f0d6589135c28113890639521c14dbf341c2aa2147ecc45393dd0520ac0f9fc2e0568103cf8a38de6190fec01c866c0271766766d8bd43af29b10f17fb28f1944c98cd3d2ad7ecfc627b824940ea9a648053fbd89ed7f7f7e3f6f277373aaa47e062a42f4e4ffc5cbcdbc4061d202216ad5716b2010cc752a89dee4ad171a29b37c8c01e534308ff2b32e5b966574b28ef58003d5fe4a0e7eb9f1f074f7d180a011c4f000000b0027d164ad3afb56e09a249c7d4709386ca0ad85a82b085a3de9b563dbb48eab8bcee6c41697539a0b6335562b7a76ac02884cdabef7ac59fd3643af6c0650bc6fbe261a44d7d6edd25791e172993596ba23e93ea915f1f03c7edffab661bb422966d70a5d064129a2b6275adf273130c13a11f6e3d83a477e816cd6a799b39fe0fc6f87e59b6a2084ad53bbf11d36f9720956c17a0445cc6a5c45d9b33a47f6267898fb360642fd7238cd0a93852d98900000168000000b01b4c0a537b5bc8171b383846d764e364de7462aa43db534b2e8fbc50ec5a6adea208a9d30bc803617fabb687074b151c005d9336e9dbfe7960efe26e99739d26ec1d4e53c2ce85d03e1f3fb6f2f847fe1f5455db8640b87587fe3079ea56ddd3576e206805ccaecf968042502b9816521433455bed704a5c40718eef3f7458d877a7c1f34a68d4261a0bd634c3ff97a70971ea9e33503036b6625fe0ab3f43d9a975ae8a126f54c64841eb0a5eee5a45000000b00771dab0d887a4f5ee370ae182c99b40ad06dbc1449ee2515750d11bd83590e2879dfd6f6aca81b341dbaa3b4f20dae0fa56dd891822d7ce07b3e5675fa1711ae9175aec326015762516b149f300309583291767d860ab932656a32f6699d3b2b1b27b98746d44a2be01f380ddf4bdd52e0559795199b00bb649be67695b7700ed6da970485dfdc7745bcd0f594667a02bc240c2513dff137e4ed4cbd0987793c5d8942e72158a3d76b5aa5ddb3847540000000000032dd000380000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f00000000000000000000000000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000331000000000000000000000000000000000000000000000000000000000000033200000000000000000000000000000000000000000000000000000000000003330000000000000000000000000000000000000000000000000000000000000334000000000000000000000000000000000000000000000000000000000000033500000000000000000000000000000000000000000000000000000000000003360000000000000000000000000000000000000000000000000000000000000337370000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f00000000000000000000000000000000000000000000000000000000000004300000000000000000000000000000000000000000000000000000000000000431000000000000000000000000000000000000000000000000000000000000043200000000000000000000000000000000000000000000000000000000000004330000000000000000000000000000000000000000000000000000000000000434000000000000000000000000000000000000000000000000000000000000043500000000000000000000000000000000000000000000000000000000000004360200000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501100000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f0000000000000000000000000000000000000000000000000000000000000719000011000000021c000000b02241129bafea4ef134e29141501722728a26d9e7ce18906ac27da37241e36cc7d53b6034da751f7c78c87b452ea2a639983398baaef96cbe371ab5a1aae7b2b1a30ed3a35e55f1c126d79aa20880baf6092fa05b7d0bb5c8c1bb443b4a626849a0ac3bcb243caff968fa652b19ed8d6b0b671f28e1103466e7cc064037527b34a3f37289a471bcd002600fbb8e695a2d2ef81bf4a7628dc2196f9490dd60f34ee8f283b681fada3016203b1b871974ca000000b009755a726c47a3dcd01945964c3d54c6d9fda9fa132cf3be819cab2d0e5571435fd30ab6de345a65fb75c843d44793a192aec8ae48442de3804753f045baf95c1804dd63a005d46b441f11af26187f413c18f67d62e9bf9f59fca20de8a266a339c7c133437ce08fa8e08396c949a0282cb0d2c63964cff0e4b20a92d6756443f7f461e44ebf7f352e2375f3a322c1be05cf7fa9bc1181207cd9e62a689b8079f3e54bfb74098f6e616e7789af28dfaf000000b02bef1bac96939bd46a4f0b785a9fdf162de89f9f541acb16d50358acaabc9a3ee3c786b526002c49660a633930b538385a298cec25ec611e53b714471bbfb4fdef80c6a5bbf688373ef9ea39880a6a6a42c2f8a9e7ac49cbc71a1a480cd17d04dceb8ab32e1762df584c578e97b4a3ec2fd7fb78c5f569e817fc0cc70ae9a6e1686ca5b3d4c4861d2639eeeeb5a238391ec96202beec86d3584e1ba53596fd9116b1453c73bbe581ef566330bf1eae130000021c000000b0030f95a0feadaf469283b3dac3c45c80ed12b102d21f0726fcecf26ba252c209ae6c0b3a3f1497fed8c4d553eb2d24bb18f4e4b128d032ed9131360ef5cb2654e70f02f2b789b69459b724aecb4876c4d24df11bcedd89635b936403acb10ef2957682e9108316043bbd6acb6eaaa7b51c07c1850f0094bfca4aabf72f83f83eaf5f0b66d3f85178f819f627a220da5705d095be3d11c3004a7542a1be600e7817189ec84f415f8d71d5abcbf8599cce000000b000196a3fa492bfc09612ccdb3d786d7846d4cd326008ee9bbdcb4590bb3696c5849f61878b4f0c9056091c60ceac45f6a48cffa768037588e5da665bdef0af2cb765dc0b1107a2aec868a1443a5d113f61125295162c1b6bb08fb5b27e04faaa360c3c44707b2b7ac9545c747d13cad502867550180005eb2a16ccaa4f3cd50cd511ae3cd15a6126ff73438365f8e75b1b1e859fd51d8d00ad13725fba53dd3d405dbd8b77244a1bb32e752e37b022e6000000b02c829fc6ddc6fc4d98ffb3554e68494efa768a7dafb3e8e3754bb457515339d5f7f1b9a655356e83c8f58ae3bef6c79c1caa39a87d9f60a3ccc7a34ab22281def018064361da98b9f7ab6987e74663ebdf97d8f604a622413f003b63e9617e5a99050d30e03e220cba0ddf3d254e2c9a2737962312d901967b0b4432464b0f4b12889aa1ea9ccd4be46a8a58a46e1edd2484c3c8e120e755a3b2362fd4a9972fe31f911582ee43aebc21121acf3ddce40000021c000000b00e4a1faedf47e6b4641bfcd216b576ecc4b26f631d2b34ce166c91906ae8cf35151b5fbfa3b413581e3307bfad32ced6700ede347520fa436dd9b5c1bac011927b81fdfb9f79e875ec536875f69e2d9c7436c883b56a2ceca08eb5735d0410972c345837e4c071e3ca61e2c6f498c9f7058a52006d4a9bed8241011efb27b0967811af74c402d2989b2dee93bb74ceda2643e58c5119dbb82debb36f60380d40bae93cb88fbb6f0c8c4285125ca388bc000000b0241180192cb582999555cb63ce396c03caa796cdaf08bed228821c7e722c0aea5465c5d3336547e9ed7073ab6b9d0bdd73bef92892075789ae0e63e0a10269a7c9ea39e7ae82d374f325f79657cfdd0f7aaa8b16925d962e01dc7d199f4d0b8fd58fc3997364bcb85bf53f9eeca0c89026b000a330c99ca34d69affd71291de802cbf7a7cb55b5cdc4c89163f668ea3e0d07599c132ced955eac396d815a8ba3d0e76eb80ff70e7f55d6ff074860c282000000b016776dd1591e3045abd0f67c5b5114b7c2b8d0cafa1b8f6cc365955814c3dbf91b9c8dfb23e36ac9927e9c115d0ede1328ed49f39aad5a870fcc758e280843096cf21c885d497eb0980962d0d43db3d5702d34cd7ebeecebe3b26528781533e0bec59d94c51a5c21b18971c066ab22061747535d2891fc0e75bce38eed6be9110bf977e5d6937116dcdf2130e079315a0e2093eb2cf957a2d32be7fe53f4d4ce1032ed7b34770d34a0f4116e5e14c2300000021c000000b029b1a4e3f8848b73e8c6e716595fe129cee53608af92b512cb202f5f5da983b30a1aee1de9e180363ded1795739a3e2ed88b6df2475c56a88e95ef272fe7c163f59489abe89aa1c6147d8a7b21144749d4a361e0ad58e98af5dc30d347cd3e05ca6ded45c94ae9f9b660e9b90de4662606da90f28047e5d129460468541026a52952746691bf3149422e966772200cbd14bc4617ca99bb24a84c77d8c8f262eefad49f1a4cab022865e96b5879716a08000000b02ccf29581931a1a491887dab2eae4d910f618ea6293a8e6ccbc0790b21cd5f60fad4444fcb77a95a3b7a7fca4f185ab4af1acc6da2b3f5a8fd1d68d0c0aedf91823430e840a19852490113439f48544a4aecb5dd5facb146e4bdc5f0bb149a5f59c4c9428fb87a17081c2aa21930d9920b19f59a600a610392c1501a6e81177c65a87016da6f854b5b5d6b28b94d82a92b403a0b964b226dc5c96018d11da2cd36e7d3af199fda8dde81cf54e521d3df000000b001fc9337a045e2812ac31f05c628e64ee89fcfec656235a9216d4b1e462667c79775295214c7904231f4c2696351d794fb3aede9603b7a1562f08345b2ad900ee583f9d480d954f2a57a8a599ad987612803bfce29a013a30384dc6d959ab278b55a8bcf7c69810e70987119af55d4c804b3a78429b30cb5fb2f3561affa8eea99e6864c68f2ca9a2cb3fb4faf30666a182ca796daf59806a17cab3ad761609d7a867958a63b2a8a747e908a8cdd7f940000021c000000b026d9be94ac47df6ca4beb6c0e9d7c528bae7c9672d80ecbe7654beeb54348b49fe8ed59f344d37893b3cbd86833e2e718bcb6c717747c06bcd5f26ea65c46d902377898611257508d1676a49ac3d508ca4c4ab68ff984296978d86ebf9ed9dcf9ed9f4f6c5c6af666463222e282087112305e80d44ca0b5118eade89421c8a4fbc8c0c9029a804e6bb47126c580c41b001359ea649b47080b839d48078f6e8ab253b48692cc0343d40024fc180b7d915000000b00eaa765a22df5e3e5c6e87ed8646c087015b2a772120f60e2a7189fe20dc0813e3d53ee6bcd72864568cc19a48728e5feb1f9071d6bc3aea7ea0d410791639eef3d1a3c72d8a77e075e460304bc2d4a7011a53f6e1179626d756b685e2ea8ef63ccafc8d3410aec123b3e249c569157a25ff6222955df57837d9ca7000e3dde56e40def2e075ff537e5e4cafc44ce6f21908ec90a7d1984933cc4e1453a87854229323d67389d79a16efee01f32a0051000000b0231524dabdc08c5d342df60639369f2014333f6050e80c16cf9d7f252bc52059b5a6a3babc58459308fb7d4e2eb8803da6f4b0acba3293230dbac9eb3580855d5e45bf5ba0a881d8da6624a4402a5b36cd0fa49071899666368d4164752a39bff3dd6770b995a7b2b26ec4da543a83bb088de9b97767a7319fc077092f40dee6f5a4a9a059a8984d49cda145444a080f0729558dfaec0ae1d5e0129846503c9424bd1ea9ae2e259e21b1625e5ef1f5370000021c000000b003ab0638a8b46943cb6077d199949c205048570bb4a134d50ba4ddb791381de07ff4bd855f6c555c106cf1afe62d73daf4a70e6213e07510eae47813f076099be9e54a9a662dd133101a8148c9fcc54dbfab4bbf4df285b9d3ea5a6d561dc8d65420796d060c1dfe73b35077ff3300a71cc47e6460ecd2f6f639f7574f045bb3be96ec90eb5ad8d1bf61cc4a57632dcc113e1b737fbaa6ff4a8540e6d35b0694d35f8269cabddadb703b28f579b212f0000000b005f1b330f988f98271363ed6feafaa5542e73bc0fd1265d710eb55b54e7f5a4c8327843fc09f0bbc64f57166ab492593074dda9676a76f98b8d3fac69692ad0d65fffb619e47249fdeb6c1a9191ffe7357bf55ecbd51616efec6a125428a087f9f3707f6ebd1dadc2cfd6b3d048f292626620dc621cd36ec3cec5ec90117a422eac4e142675528c0cb07efd66df2eaa62b1c9a990e490eac9f3e7971d1af5c76dbe617ed010970d831511e7a1a4fde84000000b02694fcd70b7bd67acae84cd65a01829c88a5311aa682498daca7f062960dffb7be27704f6ccb5773fbaa8e6b5c432a52c2fe7a389a27e49802b1e2010f2bb18457dc2eeb0bb59c045c89abe0398a6d985f441b9ba5da75dd93f2c13031226beb31af8897b270beba4559646063f19e64199127633a94f9e75c82755b23afa2dad1abc5770de3ff2f1a9e01d608056fdf167dabcc3687af8b22964b15dd88deda8f83ed3579479422531b236bd6cd0ee90000021c000000b0212b122c3c51c6d8938b5cbeb54e04ec7d35cfbcea2bbc1e6a49a17dacf610080dffb4cfdda95c0e8acf06d10f65d477339652c26baa3b0c41890e8191fb51d690a7e29182eee41cba041663c6a9e0398295bad313587de506a3128cf5071ae31eb8fbe96b8da784482d8bc03f90d170177b547248a196031dbe921b887ed7052a36f1bd9c59fbe107324a6c2863ac6718cb1295bcfc83bf49372308156fccd333682acf69f8595f9150412266ee3d63000000b02b783cc213d793079bd78e6ecedaa711666b6e2c512e2b2e3414d1c57870b91525c83f0afbe210c43f6aa8f749b6c1e44ccf7f29819013b1532ce97c16e4d225cd91176968b951bd418e3683aaa01d9687554f5614fb81c4fc110da6d620bf4fb66e2e4430c96520eadd678d76595c1d2259f7ff5750110ed08fe211bcc18304a048ab7fa59c9e126477f828b23b620209903cfb7a1a45aa4d8222d2935500511fa865968ef8809f118055b2dc9412a0000000b02e47a457132d740c3359d6bb66eb8fe54ad3293d23bec2414a9e805739c88e02231f96166b8f76eaea52ecb05b0f29bbff714a080938294e5f04268b1edcefd08acedc855fa1d638ab0571a2a7d0a0473cf5d9e71e1e1210f8abfaaa65bdc3fb9da5d27a9005574d6388c1c8aaa2023b0bb3c7eb053bf553f64e81e7c3f85a2fd815d5ff1cc03c35ff06a0cd020a7c7207b5926bf21ab3b6230d4f40d9f563c98c20f087655ed5b269bdd6e40a78fc0e0000021c000000b002744355aa4b99cdd8690e88170dba27092c1acbe241b8fbe0c12bd27fedac5fe1b21a2b92fd318b3367d0c49fd5f94a623c5870e0fc09c5d1392f188357b0898ba3a00afdfa005643954747fd7458d73c2bfd9de16361a61f6c25010badd8c0b8324664092d042cf053c93289f68dde0e98cd40d206bc28839941483d663adcb9091f5212e75652bcbf15f112ac7c8a0d2b464d82e1a348dd37a7bb3f5d413814585bea85cbfac175524353165cb2bc000000b00dafe20bb5d5778c5b8d12ff119087e704778ded5c27a656a0373f6e9c8dffca7e75d6dd647ebf5cfaf90893e91e33299947557f9c538ba44f047c7c12eacbdaaf000460c8f97b36d59c48373d0da0bfd54031281d19cad3bbf0fe3d63e354d0f55d00e09135899f330b29ed09ece4110385b44724ee82b5111c4a4ae21af203f039c406f2e9d6984c9e2eff35268ef82f4b853f20d2ce4b68b6036e22d902f2c78426b7be16f264102165d214594a47000000b01998c3243b4007c00165f92e51453a33e92134a2ce8078960327b12fc4895e7e5785cb08a6831a6ef3896e7bf013eaa7f6bafd448e6e1810cbf714a9b7d29c0e39284750f82c3fbff5174c2084a7de8dfeb977b276d9780c25bb85dee26249aff26dfa704163e2771465abd754fb80e82fc08323e68bce340edac9f0fca2b59acd81999860adc2781af65f14be9191b30ec33e7efe54ac4acebaf2699ce5ca1821090c747dd125b04088ec905eb0d06900000fa400000168000000b01f645728c428b7d882f3cafc80bac9ac1fb35b2b84c36f5cb9881564d9eac2cba28fd9bd3ddd774d21da9592068ed1ca240447f92443c02b31b7fde10905efc3bfb849511ab8b2826050af4b8c13db605e2f85ca4225538213fcacfc7fc1077506b9ca9179ee5ea72223b2028d27cffd1e3e879bb1f32697328e4f049f6dd948a1adfa8941d898cb580526842f59add32ad7f6b6969072a89137311100141baa88954204f14f410061fd8655bfb36741000000b0189b183d2e641813adb8c74d2ac5fcd483f46cd62138c6b999b17026e35e861e065f1f2742eed4e70543d5ac3c062bf959f6c60117cd7017ba7c011dc007edb2f8303fbcf2d5d7be32a980d6be9f83cab71550d51557bc6db13c09c77712829321d627c7c5b29e31ec297de75eb0f6672327a8db81217003269902d81bc39bba4d263fb8825ba9f5782dc25097178d6c0244a104a68fced4ff0c511e7c9dccd8412101ca6b5e112740732f91f40a71f600000168000000b00153f9aa5be4857843d1eefe3a4af08f6df6b2a50c91eec0a76eb312a0478908ed699b6721fdc783cb29c697759ed7fa554c439b922187d97c8de4969eede7b2b6667365f293d0a04a7b414a9e578521bd8a2e941de872ba40b7ba7bf859912350a200857ce3fc2861ff759cc2c741101b76e31b15d3ad71746bd1fdff0f699e20072a821471959772bb6408f0354e441e52a9b4f334b8246f4dce279e8e3aff568cc4c63e3316623de15770961e26e7000000b00bb02ab42b4a0a7c8e070d71fcde80c945d9d8b64849d920d0d5e79216c6361704fe9bbc147a59a1c9abf6ff017118ecd21d3e57949b93a27d53f1fd7dd2f9dcddb95ef22f1a49c44af2b42ffc86c3287b2028fe1aa74915a9e2b1eca8e9e365bb375405d577d669d105e039c592850c14c8937928886576c4b0ef96d860692260a08cd9d55bf87b76994476f973b47c02d9b5e8837b50b76e6da98d0646890f3dbf932c69c4c3f472003e2243d3af3a00000168000000b02659b0ec730b7d02e69c83dacd21bbca22065ef071a9063f70f2712757e9b8d0f6d11946f09d19d3e00191190eab222c93ec796e91e3e3c3fc9ce8c954df349056bc3b8af90ed79c0fa22f0f80a8497f136cdad50490c845fd28022170db9587ca52889eb7472739cca66162bb7e1eb10357b7376e2d3275836277b630e66f88bc5fb20a9e7619df6690fc5df831495e129c6dec88a3fa83c785957db8cd1bcb7922eb2e03494e21cda69a6c1cd62abc000000b01594ab52bbd115a6cabb02e58e7f637739fb67ed551e04730e76b703bea2bdcfba9bb086b999aa28d7cd6ff4fe108f78af7d6f9138d52338f14c783d74a304158ade11878605e5895ab2529d039ce27dd99badb1f9a4329918ddcd749857901530f9feda0a284e874574c9d87ac25bef0d12d2afcc2d5759604fd14d1cf883701316f8c9e03fc12f8f297cc0cbae65ff17f5507c2d298d0fcab583451468aba4a9b1d2186d666fe185ebb1717b394ef900000168000000b00ef5e57d5ea3b1e84699d0bff20d847fa31bb3efe83164e764b8d3a240c2e27c04aa7e828d661c164a594626609a4f7edcafe96aaaa5b1aa939a1f776050be4bc848053dbce2304350a682e54310ff488a1b70c7d01d901c416045b0ba841f0bb6c921311841a5c173dc61322e0785e70ea659079de9411d3e44f96dbb71353e2a29f149a87e66a7f764139b4e7a74c3170616c32e55951d84119667ff7024f66e17703041eea727fd4ad3cd72c43317000000b001b1b70e2b2a1e970c6360c02bad280d58aaf10e442e38e18032fb6a36e779e1be6a7ce77f93340b137a8e5a99bb7306524af2448610c47c9a10521a3c8f74557ae4e4d816d68759f8867784daba6648857e7216314a2140c825bf0f928a9984b503b8982922ecc62f356083636af233094d6e0e89b4d867e0508812206368727b3a644f1d065a2bb4d87adb284c883a07f0de091f1002dec56c7c0a860350a31fbbedae70a6c9cd58d2bd19cb62fc1400000168000000b01ed3cbc00c988b2dd92d8c8a41b80fa7fe5a473a16a50d2fbc0beabc1ef2c12bc50707b9f2cee58afebfd7bee37d52b01020cee170dc3065984672051c49e87270a31d72d0c71d103c42b3a500e30736b763153d76cab9f7fe3e407f3a769d867b6be93cb65b164be012ab4fb8d47a4a140c8ef9bf757b62656bac8232640fea3ea5c7515be0651de69b32dc976f8523050a07a4d4e407cff2200439c205a6692f6cf96674d7b7047390e85caf2224d1000000b009791d5d185c61425647504943a6a3c132bf60e98e975fc730fca5a85138412e676ac5a175a5b027f6b8373cced01715d0d689616b02921c2a39d9cc16c99d56647ac2782831ae692dcfc5dab8461c03d151fd1ddb36d14d687c0a810369c840bb35a0ab922491b9a71d43097e2af3f405c0c13ad7a58b7947e25dd361eb3892035adc2c836e258fc48c86ca3d41d6d124d42b804af4a00f26be49085936923a690df602c30b5690a18a3474149b01cc00000168000000b02b0aaafb24c900d6e275b86ba6ae8166687803edb6435825ea575a7cfb82522bfd5e63b9343f26e27336b0b6a0a964c0d5106ac2bc73153715657fdaed4344d593558175013e36a900ab19927bbb17e86fa3d65b17e8b4aa5cb94385dd3eaf952741dff9eb4956634141307bb1ac41702501ac8a5bb22adf57ed31e167234c22a7d1f32ae4bdd856ac1341a7d97abbe5293df399237612beb368382950524073402ef123a89286977b30e2e399b4eb9a000000b02aa47f7678ee3055cfe625e5860182a93bfb40fef8cbb604b9e3bde7e87b37ab9cd1fc58a73924ef2c07a9556f6a6acaee1ea01dea08ba9663e5be1f8ebed58ab1ceef4f788de43f26d79f93abefc86c5ff14250ada04bcc0cac4d784c85918269f15415f46ecbe719635a86f04b9d6719760ff2bfdc5820c33499cc428428ea319cc7ada67dfe03fccb572d1346ff672336478af6e5c7d0e957b83846db08baa66920569e48d1ac2a9afc4635f9d25f00000168000000b01a2333dcf309eab624bf9caef8bf6e13d3982db992f6c8dcb1aaa7648cffddcb755ac47a51eb467364f83e4d03f658a00ced0efdd1b95c1e89aae4da0699e63e204742e51bde72ed05de50fd8e592aa799e37e47db76a7c286d1c93123df4956d1b6d61fd204a5db5db1b5d6257e35741479e1262d54744b10d213ca143481ffa1892cc9afc613a74c08353ea3cd4f9d21c0d0f0ff750226f910e54666f43e761ecb79ce9fce04726c1a74b6b46832e4000000b000f6246f7d20f794975959ba53f8ab58c42fd253902bd3d98c08db4c3fed87c684708f7459adaf18dbc327e503a7ace70662ff78426f744bf2cb804bd493ed4924feef06d78253eaf2978c9f1d7c2ba77f5ee1e7a19c9ec686bbbeae893b445f94fc18e5bea9f22756d3d81ad2e8c48103b9e7c83018ede19645986a9b030e6c1f7ea10a05c27681cd10cef2a9b21f2113b0327b56037bd152c86358f6232c3493ca5c45685bd9057772bbad6589606100000168000000b0191c08259b0f138f63ed59f5cfcdf3f9396b3aaf68b2c8e3daa82b2b578f9c99c0bb9f40476d41dc9d33a048576fc7136184aee73cce96b6f681cdeccfe9169b5711777fdddf477f6849004aa14ac48bb81373e8587a98b7c4b4cf1660b182db01293d3d6c817fcd0de11918e6c4bf3f017264d2c5daf6adc1afcd3dec77d0a1a2a8e521cc9e4cdf364f126c710020d40d64219386a117d07a887d25b5287d5c20c58305f7f73f66148d1c0862c3f04a000000b0172d8119e2c67ed46565b50beabfaf455a9d9d19e44ab21ed085ef5e166da04f14d0bbd918673e0ab42ed6320218af10772d73651a5c96d778f116c554d137f1e28914331b70b5f6630ec2206772dbd4cdb87fb7a310fdd66e26812177b526ed9e7c1714340fcd9d0831d1e6fc62d58a1b3d372e653ee75c4bfd936da5af99041e7d1be790fae4cda3f7bb697fad6bc00faf515f783a1ce9a748273cb8ba51e18e8dfae332a3c00c2cc4b1d52b25a84f00000168000000b016cdbbd527213fba049df8d4ca428204adcc226373a97ed93ca031a717298ff671ce4daf0a6f82591008d2357f3162507e03f85b7dfe2d099e7da95e2db040880f8b22533915cc58121974dbf0cd192533c3556832c47c6dda600f4e8466a74859eee28bd00ea2ff30b96d279bbb0018045177c0355d2d581b591eb70adf9f32f28dd745c0bd0310d03e0b2499c15c1a0ce42c6f0f6e0fe6cbe54075e964c0d3bd6d01833cf3244d18820d36e5efbbc4000000b020f8bf766799d2271401331ba597b46d8cbac4f0939b886a442dc9dc8fec8a44808a7e750baa1661abd8f2d72fb8f5d13156b54f8140f89aa0691b03b0274deadd9ba22f622965c16275c5a4a952d372e983d217a403f37e465b0e4706cbf25a1060d433e5323e2c5e024d4103810a66018131971ae6382ed2da44089f0161043e09c499a8feb4aabcacdd6013a80c0f0a359cf22dcbbb845f8f5a4ebb2bac7e24be687036e99f90061f3e6260d5a80000000168000000b00ad3a07cd5a0cffe9f39b84e950dbae594554506ed58067010f8f3affd055c2d4e4e786edc9ccfee88d321242fedf9b7be034e647a01ce313b7608a20fdda77373c0fbcc293ac755b6ed3ed8baa819f18703324655ae407e7226d5e61e937cd31fd84b8602aadba33a509719ae06f3730c58ed1b6054a2b1892bb807408f97460b166d5ffba7604fe94df61e028b695029430eb608c4d29a6a6d71de083cfc7c318f3b27649696af3825944d1fc01202000000b00c9e1aaf110335b9832970804beebd3fc02dd3f548638d97aa5e381e95a5c058c535e475fecb69b7e17e721e290826a02d9c72193ea4ee32a51a70262acacf6864e35a932a1e335d9764a2ad93c4aed17452dde98c86b29f325f951b35910be8d6c90ff9e39fc90ea3eb26bcb3f7f0e82683d7afbd9dc57f705b0397aa8e4062a74286bdc2fc1ea9e44532510ba65ec4117e541900f64775276ad94a27c44be1b79817a25c58bad558ca96ca2bb7d1ef00000168000000b026250a22af09509023e4a5484522eafe6ddd1f3d9b33eeac812abdbeb1e355a0eebf37752a06dbbe62f8ba82ecf4be5926d68b05e5c0dfe8da1f2c4fd32e7c34d697d249a9002b5b608804db71d16de03067f260df8931b313f03c3eae044c32f69e56eae6375095e152229d79329c4e054dfa92c7b631980e63ac12db784ac4d3f3a3d42850deeea9695077c5f3097e2c2af098eabb6b1559cb8d57189e2fd539280ed9b1d91c8fd091625b5c663fff000000b01694b8df0dbe33d31245c83ad8eab16ab66836bf58bbc65df178270a6d869f80328ac19b020b4bedb1f97f7c294303f61394ee3b358b9d7981eb170bbc4291be22cfb345c5711331446d98c57db35f1fba9b1fbd6ae1ea8f79e620a549c25a5ca2140f7c091a749aec36aff8d7fcf3d22c0bd1df0a2ff39af15fdaaf1c21d993a4cd43ae2563069d0ca8f663a69efe540d32737b90c77d5b17d595810ba4abcff94e9c862a65a2ff046f0d80e855f81a", + "txsEffectsHash": "0x007df6df708ff0c7d75196b41c90121eacec8b5e243d13bcb1b2423d695a3ce7", "decodedHeader": { "contentCommitment": { "inHash": "0x00212ff46db74e06c26240f9a92fb6fea84709380935d657361bbd5bcb891937", "outHash": "0x00a5a7c9f331ce6832a69dc81873ed87de7ceeaaed2af1d595cb14ca9616eddd", "txTreeHeight": 2, - "txsEffectsHash": "0x008aa79a60dae1c619fb444fdd7ca7abf423f96d7bcd650a3282c5267d3a8faa" + "txsEffectsHash": "0x007df6df708ff0c7d75196b41c90121eacec8b5e243d13bcb1b2423d695a3ce7" }, "globalVariables": { "blockNumber": 2, "chainId": 31337, - "timestamp": 1711036016, + "timestamp": 1711569751, "version": 1, - "coinbase": "0x9ede22c45cae1d9aba3dc43ca9a4014868dd9416", - "feeRecipient": "0x1db11c308c86c9548e554e8ea4ab6a0e7c0715098a8e50d016c9a7d2cf3af8b0" + "coinbase": "0x42fd238db78c124f0b0bbf535c6bec496bd9beca", + "feeRecipient": "0x246fe145f7750ab24b5954b702c8903e8e6462e050fedc2e2e51cc7f9e184e3e" }, "lastArchive": { "nextAvailableLeafIndex": 2, - "root": "0x1ddfa79462a8e2beea5cca8199d5ce0f9b0412d561d4a35c8905b8e8b2beb7ca" + "root": "0x0727971373f9bfb1fa99e58976394be2f7f18ad7a8f70d6731081a35cee038c6" }, "stateReference": { "l1ToL2MessageTree": { @@ -77,7 +77,7 @@ } } }, - "header": "0x1ddfa79462a8e2beea5cca8199d5ce0f9b0412d561d4a35c8905b8e8b2beb7ca000000020000000000000000000000000000000000000000000000000000000000000002008aa79a60dae1c619fb444fdd7ca7abf423f96d7bcd650a3282c5267d3a8faa00212ff46db74e06c26240f9a92fb6fea84709380935d657361bbd5bcb89193700a5a7c9f331ce6832a69dc81873ed87de7ceeaaed2af1d595cb14ca9616eddd2e0232573b292e99cb24c082c3ef340d619341ab76aa1e9dff1ab1914963452d00000020023ef973dbaa366409f7a01a4ced696227685ce75e57b510d0e7015ebfa72c5000000200231b77b7e0311a71fae5cec0f0281816950f94a24bfc2e67c5ae8619c6ed4c88000002802ae3a1bf2752c8c8bd6741bb3fd0d9e3811dbf7681454436125ccb7afeca31c9000001400000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065fc56709ede22c45cae1d9aba3dc43ca9a4014868dd94161db11c308c86c9548e554e8ea4ab6a0e7c0715098a8e50d016c9a7d2cf3af8b0", - "publicInputsHash": "0x00c7f2d2d6b9addbb841799014778f84a8ddf77d35513a0bb2a22e417d3ed4b4" + "header": "0x0727971373f9bfb1fa99e58976394be2f7f18ad7a8f70d6731081a35cee038c6000000020000000000000000000000000000000000000000000000000000000000000002007df6df708ff0c7d75196b41c90121eacec8b5e243d13bcb1b2423d695a3ce700212ff46db74e06c26240f9a92fb6fea84709380935d657361bbd5bcb89193700a5a7c9f331ce6832a69dc81873ed87de7ceeaaed2af1d595cb14ca9616eddd2e0232573b292e99cb24c082c3ef340d619341ab76aa1e9dff1ab1914963452d00000020023ef973dbaa366409f7a01a4ced696227685ce75e57b510d0e7015ebfa72c5000000200231b77b7e0311a71fae5cec0f0281816950f94a24bfc2e67c5ae8619c6ed4c88000002802ae3a1bf2752c8c8bd6741bb3fd0d9e3811dbf7681454436125ccb7afeca31c9000001400000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000066047b5742fd238db78c124f0b0bbf535c6bec496bd9beca246fe145f7750ab24b5954b702c8903e8e6462e050fedc2e2e51cc7f9e184e3e", + "publicInputsHash": "0x00766b1a0577081163a5422f3733605048eade1f05f1344cb66496181656901d" } } \ No newline at end of file diff --git a/noir-projects/noir-protocol-circuits/crates/public-kernel-lib/src/common.nr b/noir-projects/noir-protocol-circuits/crates/public-kernel-lib/src/common.nr index 9f47aa645f1e..c11a68f6ffad 100644 --- a/noir-projects/noir-protocol-circuits/crates/public-kernel-lib/src/common.nr +++ b/noir-projects/noir-protocol-circuits/crates/public-kernel-lib/src/common.nr @@ -72,6 +72,7 @@ pub fn initialize_emitted_end_values( } let start_non_revertible = previous_kernel.public_inputs.end_non_revertible; + circuit_outputs.end_non_revertible.da_gas_used = start_non_revertible.da_gas_used; circuit_outputs.end_non_revertible.new_note_hashes = array_to_bounded_vec(start_non_revertible.new_note_hashes); circuit_outputs.end_non_revertible.new_nullifiers = array_to_bounded_vec(start_non_revertible.new_nullifiers); circuit_outputs.end_non_revertible.public_data_update_requests = array_to_bounded_vec(start_non_revertible.public_data_update_requests); @@ -92,18 +93,19 @@ pub fn initialize_end_values( initialize_emitted_end_values(previous_kernel, circuit_outputs); if circuit_outputs.end_non_revertible.revert_code == 0 { - let start = previous_kernel.public_inputs.end; + let prev_end = previous_kernel.public_inputs.end; // circuit_outputs.end.private_call_stack = array_to_bounded_vec(start.private_call_stack); // This is enforced in the private tail to always be empty. - circuit_outputs.end.public_call_stack = array_to_bounded_vec(start.public_call_stack); + circuit_outputs.end.public_call_stack = array_to_bounded_vec(prev_end.public_call_stack); } - let start_non_revertible = previous_kernel.public_inputs.end_non_revertible; - circuit_outputs.end_non_revertible.public_call_stack = array_to_bounded_vec(start_non_revertible.public_call_stack); + let prev_non_revertible = previous_kernel.public_inputs.end_non_revertible; + circuit_outputs.end_non_revertible.public_call_stack = array_to_bounded_vec(prev_non_revertible.public_call_stack); + circuit_outputs.end_non_revertible.da_gas_used = prev_non_revertible.da_gas_used; - let start = previous_kernel.public_inputs.validation_requests; - circuit_outputs.validation_requests.max_block_number = previous_kernel.public_inputs.validation_requests.for_rollup.max_block_number; - circuit_outputs.validation_requests.nullifier_read_requests = array_to_bounded_vec(start.nullifier_read_requests); - circuit_outputs.validation_requests.nullifier_non_existent_read_requests = array_to_bounded_vec(start.nullifier_non_existent_read_requests); + let prev_validation_requests = previous_kernel.public_inputs.validation_requests; + circuit_outputs.validation_requests.max_block_number = prev_validation_requests.for_rollup.max_block_number; + circuit_outputs.validation_requests.nullifier_read_requests = array_to_bounded_vec(prev_validation_requests.nullifier_read_requests); + circuit_outputs.validation_requests.nullifier_non_existent_read_requests = array_to_bounded_vec(prev_validation_requests.nullifier_non_existent_read_requests); } fn perform_static_call_checks(public_call: PublicCallData) { diff --git a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/components.nr b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/components.nr index 04f172053ab6..27b5c87f15f3 100644 --- a/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/components.nr +++ b/noir-projects/noir-protocol-circuits/crates/rollup-lib/src/components.nr @@ -124,7 +124,7 @@ pub fn compute_txs_effects_hash(previous_rollup_data: [PreviousRollupData; 2]) - ) } -global TX_EFFECTS_HASH_INPUT_FIELDS = 197; +global TX_EFFECTS_HASH_INPUT_FIELDS = 198; // Computes the tx effects hash for a base rollup (a single transaction) // TODO(Alvaro): This is too slow for brillig without the array optimization @@ -140,6 +140,7 @@ pub fn compute_tx_effects_hash(combined: CombinedAccumulatedData) -> Field { // 1 unencrypted logs hash --> 1 sha256 hash -> 31 bytes -> 1 fields | Beware when populating bytes that we fill (prepend) to 32! let mut txs_effects_hash_input = [0; TX_EFFECTS_HASH_INPUT_FIELDS]; + let da_gas_used = combined.da_gas_used; let revert_code = combined.revert_code; let new_note_hashes = combined.new_note_hashes; let new_nullifiers = combined.new_nullifiers; @@ -151,6 +152,8 @@ pub fn compute_tx_effects_hash(combined: CombinedAccumulatedData) -> Field { let mut offset = 0; // upcast to Field to have the same size for the purposes of the hash + txs_effects_hash_input[offset] = da_gas_used as Field; + offset += 1; txs_effects_hash_input[offset] = revert_code as Field; offset += 1; @@ -200,8 +203,10 @@ pub fn compute_tx_effects_hash(combined: CombinedAccumulatedData) -> Field { #[test] fn consistent_TX_EFFECTS_HASH_INPUT_FIELDS() { + // 1 for da_gas_used // 1 for revert_code let expected_size = 1 + + 1 + MAX_NEW_NOTE_HASHES_PER_TX + MAX_NEW_NULLIFIERS_PER_TX + MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX * 2 diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/accumulated_non_revertible_data_builder.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/accumulated_non_revertible_data_builder.nr index ad363eff5f1a..18ed5fb4ff19 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/accumulated_non_revertible_data_builder.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/accumulated_non_revertible_data_builder.nr @@ -6,15 +6,19 @@ use crate::{ }, call_request::CallRequest, public_data_update_request::PublicDataUpdateRequest, side_effect::{SideEffect, SideEffectLinkedToNoteHash} -} +}, + traits::is_empty }; + use crate::constants::{ MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, MAX_NON_REVERTIBLE_PUBLIC_CALL_STACK_LENGTH_PER_TX, - MAX_NON_REVERTIBLE_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX + MAX_NON_REVERTIBLE_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, DA_GAS_PER_BYTE, FIXED_DA_GAS, + DA_BYTES_PER_FIELD }; struct AccumulatedNonRevertibleDataBuilder { + da_gas_used: u64, revert_code: u8, new_note_hashes: BoundedVec, @@ -25,16 +29,42 @@ struct AccumulatedNonRevertibleDataBuilder { } impl AccumulatedNonRevertibleDataBuilder { + pub fn compute_da_gas(self) -> u64 { + let mut non_zero_bytes:u64 = 0; + + for i in 0..self.new_note_hashes.storage.len() { + if !is_empty(self.new_note_hashes.get_unchecked(i)) { + non_zero_bytes += DA_BYTES_PER_FIELD; + } + } + + for i in 0..self.new_nullifiers.storage.len() { + if !is_empty(self.new_nullifiers.get_unchecked(i)) { + non_zero_bytes += DA_BYTES_PER_FIELD; + } + } + + for i in 0..self.public_data_update_requests.storage.len() { + if !is_empty(self.public_data_update_requests.get_unchecked(i)) { + non_zero_bytes += DA_BYTES_PER_FIELD * 2; + } + } + non_zero_bytes * DA_GAS_PER_BYTE + FIXED_DA_GAS + } + pub fn to_private(self) -> PrivateAccumulatedNonRevertibleData { PrivateAccumulatedNonRevertibleData { + da_gas_used: self.compute_da_gas(), revert_code: self.revert_code, new_note_hashes: self.new_note_hashes.storage, new_nullifiers: self.new_nullifiers.storage, public_call_stack: self.public_call_stack.storage } } + pub fn to_public(self) -> PublicAccumulatedNonRevertibleData { PublicAccumulatedNonRevertibleData { + da_gas_used: self.compute_da_gas(), revert_code: self.revert_code, new_note_hashes: self.new_note_hashes.storage, new_nullifiers: self.new_nullifiers.storage, @@ -43,3 +73,51 @@ impl AccumulatedNonRevertibleDataBuilder { } } } + +mod tests { + use crate::constants::{FIXED_DA_GAS, DA_GAS_PER_BYTE, DA_BYTES_PER_FIELD}; + use crate::abis::{ + accumulated_data::accumulated_non_revertible_data_builder::AccumulatedNonRevertibleDataBuilder, + side_effect::{SideEffect, SideEffectLinkedToNoteHash}, + public_data_update_request::PublicDataUpdateRequest + }; + + #[test] + fn test_empty_compute_da_gas() { + let builder = AccumulatedNonRevertibleDataBuilder { + da_gas_used: 0, + revert_code: 0, + new_note_hashes: BoundedVec::new(), + new_nullifiers: BoundedVec::new(), + public_call_stack: BoundedVec::new(), + public_data_update_requests: BoundedVec::new() + }; + + assert_eq(builder.compute_da_gas(), FIXED_DA_GAS); + } + + #[test] + fn test_non_empty_compute_da_gas() { + let mut builder = AccumulatedNonRevertibleDataBuilder { + da_gas_used: 0, + revert_code: 0, + new_note_hashes: BoundedVec::new(), + new_nullifiers: BoundedVec::new(), + public_call_stack: BoundedVec::new(), + public_data_update_requests: BoundedVec::new() + }; + + // each of these count as 1 field + builder.new_note_hashes.push(SideEffect { value: 1, counter: 1 }); + builder.new_note_hashes.push(SideEffect { value: 2, counter: 2 }); + builder.new_nullifiers.push(SideEffectLinkedToNoteHash { value: 1, counter: 1, note_hash: 1 }); + builder.new_nullifiers.push(SideEffectLinkedToNoteHash { value: 2, counter: 2, note_hash: 2 }); + builder.new_nullifiers.push(SideEffectLinkedToNoteHash { value: 3, counter: 3, note_hash: 3 }); + + // each of these count as 2 fields + builder.public_data_update_requests.push(PublicDataUpdateRequest { leaf_slot: 1, new_value: 1 }); + builder.public_data_update_requests.push(PublicDataUpdateRequest { leaf_slot: 2, new_value: 2 }); + + assert_eq(builder.compute_da_gas(), FIXED_DA_GAS + 9 * DA_GAS_PER_BYTE * DA_BYTES_PER_FIELD); + } +} diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/combined_accumulated_data.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/combined_accumulated_data.nr index 76f7e00531f8..36602f8168f8 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/combined_accumulated_data.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/combined_accumulated_data.nr @@ -7,7 +7,8 @@ use crate::{ call_request::CallRequest, caller_context::CallerContext, public_data_update_request::PublicDataUpdateRequest, side_effect::{SideEffect, SideEffectLinkedToNoteHash} -} +}, + traits::Empty }; use crate::constants::{ MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX, @@ -21,6 +22,8 @@ use crate::traits::is_empty; use crate::utils::arrays::{array_cp, array_concat, array_to_bounded_vec}; struct CombinedAccumulatedData { + da_gas_used: u64, + revert_code: u8, new_note_hashes: [SideEffect; MAX_NEW_NOTE_HASHES_PER_TX], @@ -47,11 +50,13 @@ impl CombinedAccumulatedData { !self.public_call_stack[0].is_empty() } + // Note: at present this function is not used. recombine happens in TS. See #5013 pub fn recombine( non_revertible: PublicAccumulatedNonRevertibleData, revertible: PublicAccumulatedRevertibleData ) -> CombinedAccumulatedData { CombinedAccumulatedData { + da_gas_used: non_revertible.da_gas_used, revert_code: non_revertible.revert_code, new_note_hashes: array_concat(non_revertible.new_note_hashes, revertible.new_note_hashes), new_nullifiers: array_concat(non_revertible.new_nullifiers, revertible.new_nullifiers), diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/combined_accumulated_data_builder.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/combined_accumulated_data_builder.nr index f72d34c9565a..ca6ae222fad7 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/combined_accumulated_data_builder.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/combined_accumulated_data_builder.nr @@ -77,6 +77,7 @@ impl CombinedAccumulatedDataBuilder { pub fn finish(self) -> CombinedAccumulatedData { CombinedAccumulatedData { + da_gas_used: 0, revert_code: self.revert_code, new_note_hashes: self.new_note_hashes.storage, new_nullifiers: self.new_nullifiers.storage, diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/private_accumulated_non_revertible_data.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/private_accumulated_non_revertible_data.nr index 57ea42b6faa4..e28c3bf44c31 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/private_accumulated_non_revertible_data.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/private_accumulated_non_revertible_data.nr @@ -5,6 +5,7 @@ use crate::constants::{ }; struct PrivateAccumulatedNonRevertibleData { + da_gas_used: u64, revert_code: u8, new_note_hashes: [SideEffect; MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX], new_nullifiers: [SideEffectLinkedToNoteHash; MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX], diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/public_accumulated_non_revertible_data.nr b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/public_accumulated_non_revertible_data.nr index 265466c99595..1213f7cad649 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/public_accumulated_non_revertible_data.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/abis/accumulated_data/public_accumulated_non_revertible_data.nr @@ -16,6 +16,7 @@ use crate::traits::is_empty; use crate::utils::arrays::{array_cp, array_concat, array_to_bounded_vec}; struct PublicAccumulatedNonRevertibleData { + da_gas_used: u64, revert_code: u8, new_note_hashes: [SideEffect; MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX], new_nullifiers: [SideEffectLinkedToNoteHash; MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX], diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr index 2fec9bce466f..2bde26019f9a 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/constants.nr @@ -65,6 +65,13 @@ global NUM_ENCRYPTED_LOGS_HASHES_PER_TX: u64 = 1; global NUM_UNENCRYPTED_LOGS_HASHES_PER_TX: u64 = 1; // docs:end:constants +// Gas and metering +global DA_GAS_PER_BYTE: u64 = 16; +// TODO(@just-mitch) need to update constants.in.ts to do math +// 17 * 16; 8 for da_gas_used, 8 for compute_gas_used, 1 for revert_code, times DA_GAS_PER_BYTE +global FIXED_DA_GAS: u64 = 272; +global DA_BYTES_PER_FIELD: u64 = 32; + // ROLLUP CONTRACT CONSTANTS - constants used only in l1-contracts global NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP: u64 = 16; diff --git a/yarn-project/archiver/src/archiver/kv_archiver_store/block_store.ts b/yarn-project/archiver/src/archiver/kv_archiver_store/block_store.ts index 233089080d63..9d6d6b004127 100644 --- a/yarn-project/archiver/src/archiver/kv_archiver_store/block_store.ts +++ b/yarn-project/archiver/src/archiver/kv_archiver_store/block_store.ts @@ -1,4 +1,4 @@ -import { L2Block, TxEffect, TxHash, TxReceipt, TxStatus } from '@aztec/circuit-types'; +import { L2Block, TxEffect, TxHash, TxReceipt, revertCodeToStatus } from '@aztec/circuit-types'; import { AppendOnlyTreeSnapshot, AztecAddress, Header, INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js'; import { createDebugLogger } from '@aztec/foundation/log'; import { AztecKVStore, AztecMap, AztecSingleton, Range } from '@aztec/kv-store'; @@ -138,8 +138,9 @@ export class BlockStore { return new TxReceipt( txHash, - tx.revertCode.isOK() ? TxStatus.MINED : TxStatus.REVERTED, + revertCodeToStatus(tx.revertCode), '', + tx.daGasUsed, block.hash().toBuffer(), block.number, ); diff --git a/yarn-project/archiver/src/archiver/memory_archiver_store/memory_archiver_store.ts b/yarn-project/archiver/src/archiver/memory_archiver_store/memory_archiver_store.ts index 43d197cc576c..ab7f54f31c4a 100644 --- a/yarn-project/archiver/src/archiver/memory_archiver_store/memory_archiver_store.ts +++ b/yarn-project/archiver/src/archiver/memory_archiver_store/memory_archiver_store.ts @@ -14,8 +14,8 @@ import { TxEffect, TxHash, TxReceipt, - TxStatus, UnencryptedL2BlockL2Logs, + revertCodeToStatus, } from '@aztec/circuit-types'; import { Fr, INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js'; import { AztecAddress } from '@aztec/foundation/aztec-address'; @@ -267,10 +267,17 @@ export class MemoryArchiverStore implements ArchiverDataStore { */ public getSettledTxReceipt(txHash: TxHash): Promise { for (const blockContext of this.l2BlockContexts) { - for (const currentTxHash of blockContext.getTxHashes()) { - if (currentTxHash.equals(txHash)) { + for (const currentTx of blockContext.block.getTxs()) { + if (currentTx.txHash.equals(txHash)) { return Promise.resolve( - new TxReceipt(txHash, TxStatus.MINED, '', blockContext.block.hash().toBuffer(), blockContext.block.number), + new TxReceipt( + txHash, + revertCodeToStatus(currentTx.revertCode), + '', + currentTx.daGasUsed, + blockContext.block.hash().toBuffer(), + blockContext.block.number, + ), ); } } diff --git a/yarn-project/circuit-types/jest.config.ts b/yarn-project/circuit-types/jest.config.ts new file mode 100644 index 000000000000..83d85d85f9b7 --- /dev/null +++ b/yarn-project/circuit-types/jest.config.ts @@ -0,0 +1,12 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest/presets/default-esm', + moduleNameMapper: { + '^(\\.{1,2}/.*)\\.[cm]?js$': '$1', + }, + testRegex: './src/.*\\.test\\.(js|mjs|ts)$', + rootDir: './src', +}; + +export default config; diff --git a/yarn-project/circuit-types/package.json b/yarn-project/circuit-types/package.json index fbf2b25be3b5..96f082fe9618 100644 --- a/yarn-project/circuit-types/package.json +++ b/yarn-project/circuit-types/package.json @@ -25,17 +25,6 @@ "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src", "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --passWithNoTests" }, - "inherits": [ - "../package.common.json" - ], - "jest": { - "preset": "ts-jest/presets/default-esm", - "moduleNameMapper": { - "^(\\.{1,2}/.*)\\.[cm]?js$": "$1" - }, - "testRegex": "./src/.*\\.test\\.(js|mjs|ts)$", - "rootDir": "./src" - }, "dependencies": { "@aztec/circuits.js": "workspace:^", "@aztec/ethereum": "workspace:^", diff --git a/yarn-project/circuit-types/src/index.ts b/yarn-project/circuit-types/src/index.ts index 31213c9cb9bb..babe7f2295e8 100644 --- a/yarn-project/circuit-types/src/index.ts +++ b/yarn-project/circuit-types/src/index.ts @@ -1,23 +1,23 @@ +export { CompleteAddress, GrumpkinPrivateKey, PartialAddress, PublicKey } from '@aztec/circuits.js'; +export * from './auth_witness.js'; +export * from './aztec_node/rpc/index.js'; +export * from './body.js'; export * from './function_call.js'; +export * from './interfaces/index.js'; export * from './keys/index.js'; -export * from './notes/index.js'; -export * from './messaging/index.js'; export * from './l2_block.js'; -export * from './body.js'; export * from './l2_block_context.js'; export * from './l2_block_downloader/index.js'; export * from './l2_block_source.js'; -export * from './tx_effect.js'; export * from './logs/index.js'; export * from './merkle_tree_id.js'; +export * from './messaging/index.js'; export * from './mocks.js'; +export * from './notes/index.js'; +export * from './packed_arguments.js'; export * from './public_data_write.js'; -export * from './simulation_error.js'; export * from './sibling_path/index.js'; +export * from './simulation_error.js'; export * from './tx/index.js'; +export * from './tx_effect.js'; export * from './tx_execution_request.js'; -export * from './packed_arguments.js'; -export * from './interfaces/index.js'; -export * from './auth_witness.js'; -export * from './aztec_node/rpc/index.js'; -export { CompleteAddress, PublicKey, PartialAddress, GrumpkinPrivateKey } from '@aztec/circuits.js'; diff --git a/yarn-project/circuit-types/src/interfaces/block-prover.ts b/yarn-project/circuit-types/src/interfaces/block-prover.ts index 9e02a117b22b..bbfe2654b69e 100644 --- a/yarn-project/circuit-types/src/interfaces/block-prover.ts +++ b/yarn-project/circuit-types/src/interfaces/block-prover.ts @@ -25,6 +25,10 @@ export type ProvingTicket = { provingPromise: Promise; }; +export const isProvingSuccess = (result: ProvingResult): result is ProvingSuccess => { + return result.status === PROVING_STATUS.SUCCESS; +}; + /** * The interface to the block prover. * Provides the ability to generate proofs and build rollups. diff --git a/yarn-project/circuit-types/src/mocks.ts b/yarn-project/circuit-types/src/mocks.ts index 18700c91c163..a94eee3e076f 100644 --- a/yarn-project/circuit-types/src/mocks.ts +++ b/yarn-project/circuit-types/src/mocks.ts @@ -1,6 +1,7 @@ import { AztecAddress, CallRequest, + CombinedAccumulatedData, MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_REVERTIBLE_PUBLIC_CALL_STACK_LENGTH_PER_TX, Proof, @@ -19,7 +20,9 @@ import { EncryptedL2Log } from './logs/encrypted_l2_log.js'; import { EncryptedFunctionL2Logs, EncryptedTxL2Logs, Note, UnencryptedTxL2Logs } from './logs/index.js'; import { makePrivateKernelTailCircuitPublicInputs, makePublicCallRequest } from './mocks_to_purge.js'; import { ExtendedNote } from './notes/index.js'; -import { Tx, TxHash } from './tx/index.js'; +import { ProcessedTx } from './tx/processed_tx.js'; +import { Tx } from './tx/tx.js'; +import { TxHash } from './tx/tx_hash.js'; /** * Testing utility to create empty logs composed from a single empty log. @@ -54,6 +57,11 @@ export const mockTx = (seed = 1, logs = true) => { return tx; }; +export const getMockTxGasUsed = (tx: ProcessedTx) => { + const combined = CombinedAccumulatedData.recombine(tx.data.endNonRevertibleData, tx.data.end); + return combined.daGasUsed; +}; + export const randomContractArtifact = (): ContractArtifact => ({ name: randomBytes(4).toString('hex'), functions: [], diff --git a/yarn-project/circuit-types/src/mocks_to_purge.ts b/yarn-project/circuit-types/src/mocks_to_purge.ts index 60708226bd31..5300a0883a10 100644 --- a/yarn-project/circuit-types/src/mocks_to_purge.ts +++ b/yarn-project/circuit-types/src/mocks_to_purge.ts @@ -12,6 +12,7 @@ import { FunctionData, FunctionSelector, G1AffineElement, + GasUsed, MAX_NEW_L2_TO_L1_MSGS_PER_TX, MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, @@ -85,6 +86,7 @@ export function makeAccumulatedNonRevertibleData(seed = 1, full = false): Privat const tupleGenerator = full ? makeTuple : makeHalfFullTuple; return new PrivateAccumulatedNonRevertibleData( + new GasUsed(BigInt(seed + 0x100)), RevertCode.OK, tupleGenerator(MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, sideEffectFromNumber, seed + 0x101), tupleGenerator(MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, sideEffectLinkedFromNumber, seed + 0x201), diff --git a/yarn-project/circuit-types/src/tx/processed_tx.ts b/yarn-project/circuit-types/src/tx/processed_tx.ts index 410052f705a1..05a64bff2107 100644 --- a/yarn-project/circuit-types/src/tx/processed_tx.ts +++ b/yarn-project/circuit-types/src/tx/processed_tx.ts @@ -13,6 +13,7 @@ import { MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, + MIN_DA_GAS_USED, Proof, PublicAccumulatedNonRevertibleData, PublicAccumulatedRevertibleData, @@ -167,6 +168,7 @@ export function makeEmptyProcessedTx(header: Header, chainId: Fr, version: Fr): emptyKernelOutput.constants.historicalHeader = header; emptyKernelOutput.constants.txContext.chainId = chainId; emptyKernelOutput.constants.txContext.version = version; + emptyKernelOutput.endNonRevertibleData.daGasUsed = MIN_DA_GAS_USED; const emptyProof = makeEmptyProof(); const hash = new TxHash(Fr.ZERO.toBuffer()); @@ -183,6 +185,7 @@ export function makeEmptyProcessedTx(header: Header, chainId: Fr, version: Fr): export function toTxEffect(tx: ProcessedTx): TxEffect { return new TxEffect( + tx.data.combinedData.daGasUsed, tx.data.combinedData.revertCode, tx.data.combinedData.newNoteHashes.map((c: SideEffect) => c.value) as Tuple, tx.data.combinedData.newNullifiers.map((n: SideEffectLinkedToNoteHash) => n.value) as Tuple< diff --git a/yarn-project/circuit-types/src/tx/tx_receipt.ts b/yarn-project/circuit-types/src/tx/tx_receipt.ts index 997e1b5ef7ef..232c6fdd0d22 100644 --- a/yarn-project/circuit-types/src/tx/tx_receipt.ts +++ b/yarn-project/circuit-types/src/tx/tx_receipt.ts @@ -1,3 +1,4 @@ +import { GasUsed, RevertCode } from '@aztec/circuits.js'; import { Fr } from '@aztec/foundation/fields'; import { ExtendedNote } from '../notes/extended_note.js'; @@ -14,6 +15,13 @@ export enum TxStatus { REVERTED = 'reverted', } +export function revertCodeToStatus(revertCode: RevertCode): TxStatus { + if (revertCode.isOK()) { + return TxStatus.MINED; + } + return TxStatus.REVERTED; +} + /** * Represents a transaction receipt in the Aztec network. * Contains essential information about the transaction including its status, origin, and associated addresses. @@ -32,6 +40,10 @@ export class TxReceipt { * Description of transaction error, if any. */ public error: string, + /** + * The DA gas used by the transaction + */ + public daGasUsed?: GasUsed, /** * The hash of the block containing the transaction. */ @@ -55,6 +67,7 @@ export class TxReceipt { txHash: this.txHash.toString(), status: this.status.toString(), error: this.error, + daGasUsed: this.daGasUsed, blockHash: this.blockHash?.toString('hex'), blockNumber: this.blockNumber, }; @@ -69,9 +82,10 @@ export class TxReceipt { const txHash = TxHash.fromString(obj.txHash); const status = obj.status as TxStatus; const error = obj.error; + const daGasUsed = obj.daGasUsed; const blockHash = obj.blockHash ? Buffer.from(obj.blockHash, 'hex') : undefined; const blockNumber = obj.blockNumber ? Number(obj.blockNumber) : undefined; - return new TxReceipt(txHash, status, error, blockHash, blockNumber); + return new TxReceipt(txHash, status, error, daGasUsed, blockHash, blockNumber); } } diff --git a/yarn-project/circuit-types/src/tx_effect.ts b/yarn-project/circuit-types/src/tx_effect.ts index 5814843f147c..450efc22c728 100644 --- a/yarn-project/circuit-types/src/tx_effect.ts +++ b/yarn-project/circuit-types/src/tx_effect.ts @@ -1,6 +1,7 @@ import { EncryptedTxL2Logs, PublicDataWrite, TxHash, UnencryptedTxL2Logs } from '@aztec/circuit-types'; import { Fr, + GasUsed, MAX_NEW_L2_TO_L1_MSGS_PER_TX, MAX_NEW_NOTE_HASHES_PER_TX, MAX_NEW_NULLIFIERS_PER_TX, @@ -22,31 +23,35 @@ import { inspect } from 'util'; export class TxEffect { constructor( + /** + * The amount of da gas used during the transaction. + */ + public readonly daGasUsed: GasUsed, /** * Whether the transaction reverted during public app logic. */ - public revertCode: RevertCode, + public readonly revertCode: RevertCode, /** * The note hashes to be inserted into the note hash tree. */ - public noteHashes: Tuple, + public readonly noteHashes: Tuple, /** * The nullifiers to be inserted into the nullifier tree. */ - public nullifiers: Tuple, + public readonly nullifiers: Tuple, /** * The L2 to L1 messages to be inserted into the messagebox on L1. */ - public l2ToL1Msgs: Tuple, + public readonly l2ToL1Msgs: Tuple, /** * The public data writes to be inserted into the public data tree. */ - public publicDataWrites: Tuple, + public readonly publicDataWrites: Tuple, /** * The logs of the txEffect */ - public encryptedLogs: EncryptedTxL2Logs, - public unencryptedLogs: UnencryptedTxL2Logs, + public readonly encryptedLogs: EncryptedTxL2Logs, + public readonly unencryptedLogs: UnencryptedTxL2Logs, ) {} toBuffer(): Buffer { @@ -56,6 +61,7 @@ export class TxEffect { const nonZeroPublicDataWrites = this.publicDataWrites.filter(h => !h.isEmpty()); return Buffer.concat([ + this.daGasUsed.toBuffer(), this.revertCode.toBuffer(), serializeArrayOfBufferableToVector(nonZeroNoteHashes, 1), serializeArrayOfBufferableToVector(nonZeroNullifiers, 1), @@ -74,6 +80,7 @@ export class TxEffect { static fromBuffer(buffer: Buffer | BufferReader): TxEffect { const reader = BufferReader.asReader(buffer); + const daGasUsed = GasUsed.fromBuffer(reader); const revertCode = RevertCode.fromBuffer(reader); const nonZeroNoteHashes = reader.readVectorUint8Prefix(Fr); const nonZeroNullifiers = reader.readVectorUint8Prefix(Fr); @@ -81,6 +88,7 @@ export class TxEffect { const nonZeroPublicDataWrites = reader.readVectorUint8Prefix(PublicDataWrite); return new TxEffect( + daGasUsed, revertCode, padArrayEnd(nonZeroNoteHashes, Fr.ZERO, MAX_NEW_NOTE_HASHES_PER_TX), padArrayEnd(nonZeroNullifiers, Fr.ZERO, MAX_NEW_NULLIFIERS_PER_TX), @@ -113,6 +121,7 @@ export class TxEffect { const unencryptedLogsHashKernel0 = this.unencryptedLogs.hash(); const inputValue = Buffer.concat([ + this.daGasUsed.toHashPreimage(), this.revertCode.toHashPreimage(), noteHashesBuffer, nullifiersBuffer, @@ -132,6 +141,7 @@ export class TxEffect { numUnencryptedLogsPerCall = 1, ): TxEffect { return new TxEffect( + GasUsed.random(), RevertCode.random(), makeTuple(MAX_NEW_NOTE_HASHES_PER_TX, Fr.random), makeTuple(MAX_NEW_NULLIFIERS_PER_TX, Fr.random), @@ -144,6 +154,7 @@ export class TxEffect { static empty(): TxEffect { return new TxEffect( + GasUsed.empty(), RevertCode.OK, makeTuple(MAX_NEW_NOTE_HASHES_PER_TX, Fr.zero), makeTuple(MAX_NEW_NULLIFIERS_PER_TX, Fr.zero), @@ -165,7 +176,8 @@ export class TxEffect { // print out the non-empty fields return `TxEffect { - revertCode: ${this.revertCode}, + daGasUsed: ${inspect(this.daGasUsed)}, + revertCode: ${inspect(this.revertCode)}, note hashes: [${this.noteHashes.map(h => h.toString()).join(', ')}], nullifiers: [${this.nullifiers.map(h => h.toString()).join(', ')}], l2ToL1Msgs: [${this.l2ToL1Msgs.map(h => h.toString()).join(', ')}], diff --git a/yarn-project/circuits.js/src/constants.gen.ts b/yarn-project/circuits.js/src/constants.gen.ts index e2144817194e..97a4f9be89e0 100644 --- a/yarn-project/circuits.js/src/constants.gen.ts +++ b/yarn-project/circuits.js/src/constants.gen.ts @@ -34,6 +34,9 @@ export const MAX_NULLIFIER_NON_EXISTENT_READ_REQUESTS_PER_TX = 8; export const MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX = 4; export const NUM_ENCRYPTED_LOGS_HASHES_PER_TX = 1; export const NUM_UNENCRYPTED_LOGS_HASHES_PER_TX = 1; +export const DA_GAS_PER_BYTE = 16; +export const FIXED_DA_GAS = 272; +export const DA_BYTES_PER_FIELD = 32; export const NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP = 16; export const VK_TREE_HEIGHT = 3; export const FUNCTION_TREE_HEIGHT = 5; diff --git a/yarn-project/circuits.js/src/gas/get_da_gas_used.test.ts b/yarn-project/circuits.js/src/gas/get_da_gas_used.test.ts new file mode 100644 index 000000000000..29300353ab1f --- /dev/null +++ b/yarn-project/circuits.js/src/gas/get_da_gas_used.test.ts @@ -0,0 +1,30 @@ +import { + Fr, + MAX_NEW_L2_TO_L1_MSGS_PER_TX, + MAX_NEW_NOTE_HASHES_PER_TX, + MAX_NEW_NULLIFIERS_PER_TX, + MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, + PublicDataUpdateRequest, + SideEffect, + SideEffectLinkedToNoteHash, +} from '@aztec/circuits.js'; +import { makeTuple } from '@aztec/foundation/array'; + +import { MIN_DA_GAS_USED, getDAGasUsed } from './get_da_gas_used.js'; + +describe('get_da_gas_used', () => { + it('correctly calculates DA gas for empty TxEffect', () => { + const gasUsed = getDAGasUsed({ + noteHashes: makeTuple(MAX_NEW_NOTE_HASHES_PER_TX, SideEffect.empty), + nullifiers: makeTuple(MAX_NEW_NULLIFIERS_PER_TX, SideEffectLinkedToNoteHash.empty), + l2ToL1Msgs: makeTuple(MAX_NEW_L2_TO_L1_MSGS_PER_TX, Fr.zero), + publicDataUpdateRequests: makeTuple(MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataUpdateRequest.empty), + encryptedLogPreimagesLength: 4, // 4 bytes for storing the length of the empty logs + unencryptedLogPreimagesLength: 4, // 4 bytes for storing the length of the empty logs + }); + + expect(gasUsed).toEqual(MIN_DA_GAS_USED); + }); + + // TODO(@just-mitch) more tests please +}); diff --git a/yarn-project/circuits.js/src/gas/get_da_gas_used.ts b/yarn-project/circuits.js/src/gas/get_da_gas_used.ts new file mode 100644 index 000000000000..cf9f94051870 --- /dev/null +++ b/yarn-project/circuits.js/src/gas/get_da_gas_used.ts @@ -0,0 +1,62 @@ +import { arrayNonEmptyLength } from '@aztec/foundation/collection'; +import { Fr } from '@aztec/foundation/fields'; +import { Tuple } from '@aztec/foundation/serialize'; + +import { + DA_BYTES_PER_FIELD, + DA_GAS_PER_BYTE, + FIXED_DA_GAS, + MAX_NEW_L2_TO_L1_MSGS_PER_TX, + MAX_NEW_NOTE_HASHES_PER_TX, + MAX_NEW_NULLIFIERS_PER_TX, + MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, +} from '../constants.gen.js'; +import { GasUsed } from '../structs/gas_used.js'; +import { PublicDataUpdateRequest } from '../structs/public_data_update_request.js'; +import { SideEffect, SideEffectLinkedToNoteHash } from '../structs/side_effects.js'; + +// Equals 400. +// The additional 4 and 4 are for the serialized lengths of empty logs, +// since we need to store the length of both encrypted and unencrypted logs. +export const MIN_DA_GAS_USED = new GasUsed(BigInt(FIXED_DA_GAS + 4 * DA_GAS_PER_BYTE + 4 * DA_GAS_PER_BYTE)); + +/** + * Note. This does not exactly match ethereum calldata cost. + * It is correlated, but simplified to ease circuit calculations: + * We don't want to bitwise deconstruct the calldata to count the non-zero bytes in the circuit. + * + * We overcompensate by + * - assuming our FIXED_BYTE "header" is always non-zero. + * - assuming there is no zero byte in any non-zero field + * + * We undercompensate by + * - not counting the bytes used to store the lengths of the various arrays + * + * @param effect the TxEffect to calculate the DA gas used for + * @returns our interpretation of the DA gas used + */ +export function getDAGasUsed(effect: { + noteHashes: Tuple; + nullifiers: Tuple; + l2ToL1Msgs: Tuple; + publicDataUpdateRequests: Tuple; + encryptedLogPreimagesLength: number; + unencryptedLogPreimagesLength: number; +}): GasUsed { + const nonEmptyFields = + arrayNonEmptyLength(effect.noteHashes, SideEffect.isEmpty) + + arrayNonEmptyLength(effect.nullifiers, SideEffectLinkedToNoteHash.isEmpty) + + arrayNonEmptyLength(effect.l2ToL1Msgs, Fr.isZero) + + 2 * arrayNonEmptyLength(effect.publicDataUpdateRequests, PublicDataUpdateRequest.isEmpty); + + const gasUsed = + BigInt(FIXED_DA_GAS) + + BigInt(DA_GAS_PER_BYTE) * + BigInt( + DA_BYTES_PER_FIELD * nonEmptyFields + effect.encryptedLogPreimagesLength + effect.unencryptedLogPreimagesLength, + ); + + return new GasUsed(gasUsed); +} + +export const FixedDAGasUsed = new GasUsed(BigInt(FIXED_DA_GAS)); diff --git a/yarn-project/circuits.js/src/gas/index.ts b/yarn-project/circuits.js/src/gas/index.ts new file mode 100644 index 000000000000..67d1e6fb99b9 --- /dev/null +++ b/yarn-project/circuits.js/src/gas/index.ts @@ -0,0 +1 @@ +export * from './get_da_gas_used.js'; diff --git a/yarn-project/circuits.js/src/index.ts b/yarn-project/circuits.js/src/index.ts index 1fafc4e3bf56..6ef0c5383729 100644 --- a/yarn-project/circuits.js/src/index.ts +++ b/yarn-project/circuits.js/src/index.ts @@ -1,5 +1,6 @@ export * from './constants.gen.js'; export * from './contract/index.js'; +export * from './gas/index.js'; export * from './hints/index.js'; export * from './keys/index.js'; export * from './structs/index.js'; diff --git a/yarn-project/circuits.js/src/structs/__snapshots__/gas_used.test.ts.snap b/yarn-project/circuits.js/src/structs/__snapshots__/gas_used.test.ts.snap new file mode 100644 index 000000000000..b932c7782cc7 --- /dev/null +++ b/yarn-project/circuits.js/src/structs/__snapshots__/gas_used.test.ts.snap @@ -0,0 +1,393 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`gas_used accepts valid values 1`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 2`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 3`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 4`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 5`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 6`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 7`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 8`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 9`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 42, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 10`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 42, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 11`] = ` +{ + "data": [ + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 12`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 13`] = ` +{ + "data": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + ], + "type": "Buffer", +} +`; + +exports[`gas_used accepts valid values 14`] = ` +{ + "data": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255, + ], + "type": "Buffer", +} +`; diff --git a/yarn-project/circuits.js/src/structs/gas_used.test.ts b/yarn-project/circuits.js/src/structs/gas_used.test.ts new file mode 100644 index 000000000000..4b970277040b --- /dev/null +++ b/yarn-project/circuits.js/src/structs/gas_used.test.ts @@ -0,0 +1,38 @@ +import { GasUsed } from './gas_used.js'; + +describe('gas_used', () => { + it.each([0n, 1n, 2n, 3n, 42n, 2n ** 32n, 2n ** 64n - 1n])('accepts valid values', value => { + const gasUsed = new GasUsed(value); + expect(gasUsed.value).toEqual(BigInt(value)); + + const b = gasUsed.toBuffer(); + expect(b).toMatchSnapshot(); + expect(GasUsed.fromBuffer(b)).toEqual(gasUsed); + + expect(gasUsed.toHashPreimage()).toMatchSnapshot(); + }); + + it.each([-1n, -2n, -42n])('rejects negative values', value => { + expect(() => new GasUsed(value)).toThrow(); + }); + + it('rejects too large values', () => { + expect(() => new GasUsed(2n ** 64n)).toThrow(); + }); + + it('serde retains value', () => { + const a = GasUsed.fromBuffer(new GasUsed(42n).toBuffer()); + const b = GasUsed.fromBuffer(new GasUsed(43n).toBuffer()); + + expect(a.value).toEqual(42n); + expect(b.value).toEqual(43n); + + expect(a.equals(a)).toBeTruthy(); + expect(a.equals(b)).toBeFalsy(); + }); + + it('random', () => { + const g = GasUsed.random(); + expect(g.value).toBeLessThanOrEqual(GasUsed.MAX_VALUE); + }); +}); diff --git a/yarn-project/circuits.js/src/structs/gas_used.ts b/yarn-project/circuits.js/src/structs/gas_used.ts new file mode 100644 index 000000000000..73ab99a07d95 --- /dev/null +++ b/yarn-project/circuits.js/src/structs/gas_used.ts @@ -0,0 +1,72 @@ +import { BufferReader } from '@aztec/foundation/serialize'; + +import { inspect } from 'util'; + +export class GasUsed { + public static readonly PACKED_SIZE_IN_BYTES = 8n; + public static readonly MAX_VALUE = 2n ** (GasUsed.PACKED_SIZE_IN_BYTES * 8n) - 1n; + private static readonly PREIMAGE_SIZE_IN_BYTES = 32n; + + public readonly value: bigint; + + constructor(gas: bigint) { + if (gas < 0) { + throw new Error('Gas used cannot be negative'); + } else if (gas > GasUsed.MAX_VALUE) { + throw new Error(`Gas used is too large: [${gas}] does not fit in a ${GasUsed.PACKED_SIZE_IN_BYTES} byte field`); + } + + this.value = BigInt(gas); + } + + public add(other: bigint | number | GasUsed): GasUsed { + if (typeof other === 'bigint') { + return new GasUsed(this.value + other); + } else if (typeof other === 'number') { + return new GasUsed(this.value + BigInt(other)); + } else { + return new GasUsed(this.value + other.value); + } + } + + public toHashPreimage(): Buffer { + const padding = Buffer.alloc(Number(GasUsed.PREIMAGE_SIZE_IN_BYTES - GasUsed.PACKED_SIZE_IN_BYTES)); + return Buffer.concat([padding, this.toBuffer()]); + } + + public toBuffer(): Buffer { + const b = Buffer.alloc(Number(GasUsed.PACKED_SIZE_IN_BYTES)); + b.writeBigUInt64BE(this.value); + return b; + } + + public equals(other: GasUsed): boolean { + return this.value === other.value; + } + + static empty(): GasUsed { + return new GasUsed(0n); + } + + static fromBuffer(buffer: Buffer | BufferReader): GasUsed { + const reader = BufferReader.asReader(buffer); + const gas = reader.readBytes(Number(GasUsed.PACKED_SIZE_IN_BYTES)).readBigUInt64BE(); + return new GasUsed(gas); + } + + /** + * + * @returns A barely random instance of GasUsed. Not suitable for cryptographic use. + */ + static random(): GasUsed { + let g = GasUsed.MAX_VALUE + 1n; + while (g > GasUsed.MAX_VALUE) { + g = BigInt(Math.floor(Math.random() * Number(GasUsed.MAX_VALUE))); + } + return new GasUsed(g); + } + + [inspect.custom]() { + return `GasUsed<${this.value}>`; + } +} diff --git a/yarn-project/circuits.js/src/structs/index.ts b/yarn-project/circuits.js/src/structs/index.ts index 029847920908..9f69f5fc324c 100644 --- a/yarn-project/circuits.js/src/structs/index.ts +++ b/yarn-project/circuits.js/src/structs/index.ts @@ -7,6 +7,7 @@ export * from './content_commitment.js'; export * from './contract_storage_read.js'; export * from './contract_storage_update_request.js'; export * from './function_data.js'; +export * from './gas_used.js'; export * from './global_variables.js'; export * from './header.js'; export * from './kernel/combined_accumulated_data.js'; diff --git a/yarn-project/circuits.js/src/structs/kernel/combined_accumulated_data.ts b/yarn-project/circuits.js/src/structs/kernel/combined_accumulated_data.ts index 326e410a257e..c8675ac148bc 100644 --- a/yarn-project/circuits.js/src/structs/kernel/combined_accumulated_data.ts +++ b/yarn-project/circuits.js/src/structs/kernel/combined_accumulated_data.ts @@ -23,7 +23,9 @@ import { MAX_REVERTIBLE_PUBLIC_CALL_STACK_LENGTH_PER_TX, MAX_REVERTIBLE_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, } from '../../constants.gen.js'; +import { getDAGasUsed } from '../../gas/get_da_gas_used.js'; import { CallRequest } from '../call_request.js'; +import { GasUsed } from '../gas_used.js'; import { PublicDataUpdateRequest } from '../public_data_update_request.js'; import { RevertCode } from '../revert_code.js'; import { SideEffect, SideEffectLinkedToNoteHash, sideEffectCmp } from '../side_effects.js'; @@ -35,6 +37,11 @@ const log = createDebugOnlyLogger('aztec:combined_accumulated_data'); */ export class CombinedAccumulatedData { constructor( + /** + * The amount of da gas used at the end of private execution. + * Includes FIXED_DA_GAS. + */ + public daGasUsed: GasUsed, /** * Flag indicating whether the transaction reverted. */ @@ -85,6 +92,7 @@ export class CombinedAccumulatedData { toBuffer() { return serializeToBuffer( + this.daGasUsed, this.revertCode, this.newNoteHashes, this.newNullifiers, @@ -111,6 +119,7 @@ export class CombinedAccumulatedData { static fromBuffer(buffer: Buffer | BufferReader): CombinedAccumulatedData { const reader = BufferReader.asReader(buffer); return new CombinedAccumulatedData( + GasUsed.fromBuffer(reader), RevertCode.fromBuffer(reader), reader.readArray(MAX_NEW_NOTE_HASHES_PER_TX, SideEffect), reader.readArray(MAX_NEW_NULLIFIERS_PER_TX, SideEffectLinkedToNoteHash), @@ -136,6 +145,7 @@ export class CombinedAccumulatedData { static empty() { return new CombinedAccumulatedData( + GasUsed.empty(), RevertCode.OK, makeTuple(MAX_NEW_NOTE_HASHES_PER_TX, SideEffect.empty), makeTuple(MAX_NEW_NULLIFIERS_PER_TX, SideEffectLinkedToNoteHash.empty), @@ -203,7 +213,17 @@ export class CombinedAccumulatedData { MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, ); + const gasUsed = getDAGasUsed({ + noteHashes: newNoteHashes, + nullifiers: newNullifiers, + l2ToL1Msgs: revertible.newL2ToL1Msgs, + publicDataUpdateRequests, + encryptedLogPreimagesLength: revertible.encryptedLogPreimagesLength.toNumber(), + unencryptedLogPreimagesLength: revertible.unencryptedLogPreimagesLength.toNumber(), + }); + return new CombinedAccumulatedData( + gasUsed, nonRevertible.revertCode, newNoteHashes, newNullifiers, @@ -490,6 +510,11 @@ export class PrivateAccumulatedRevertibleData { export class PrivateAccumulatedNonRevertibleData { constructor( + /** + * The amount of non-revertible da gas used at the end of private execution. + * Includes FIXED_DA_GAS. + */ + public daGasUsed: GasUsed, /** * Flag indicating whether the transaction reverted. */ @@ -509,12 +534,19 @@ export class PrivateAccumulatedNonRevertibleData { ) {} toBuffer() { - return serializeToBuffer(this.revertCode.toBuffer(), this.newNoteHashes, this.newNullifiers, this.publicCallStack); + return serializeToBuffer( + this.daGasUsed.toBuffer(), + this.revertCode.toBuffer(), + this.newNoteHashes, + this.newNullifiers, + this.publicCallStack, + ); } static fromBuffer(buffer: Buffer | BufferReader): PrivateAccumulatedNonRevertibleData { const reader = BufferReader.asReader(buffer); return new PrivateAccumulatedNonRevertibleData( + GasUsed.fromBuffer(reader), RevertCode.fromBuffer(reader), reader.readArray(MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, SideEffect), reader.readArray(MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, SideEffectLinkedToNoteHash), @@ -532,6 +564,7 @@ export class PrivateAccumulatedNonRevertibleData { static empty() { return new PrivateAccumulatedNonRevertibleData( + GasUsed.empty(), RevertCode.OK, makeTuple(MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, SideEffect.empty), makeTuple(MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, SideEffectLinkedToNoteHash.empty), @@ -542,6 +575,11 @@ export class PrivateAccumulatedNonRevertibleData { export class PublicAccumulatedNonRevertibleData { constructor( + /** + * The amount of non-revertible da gas used at the end of private execution. + * Includes FIXED_DA_GAS. + */ + public daGasUsed: GasUsed, /** * Flag indicating whether the transaction reverted. */ @@ -569,6 +607,7 @@ export class PublicAccumulatedNonRevertibleData { toBuffer() { return serializeToBuffer( + this.daGasUsed, this.revertCode, this.newNoteHashes, this.newNullifiers, @@ -580,6 +619,7 @@ export class PublicAccumulatedNonRevertibleData { static fromBuffer(buffer: Buffer | BufferReader) { const reader = BufferReader.asReader(buffer); return new this( + GasUsed.fromBuffer(reader), RevertCode.fromBuffer(reader), reader.readArray(MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, SideEffect), reader.readArray(MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, SideEffectLinkedToNoteHash), @@ -598,6 +638,7 @@ export class PublicAccumulatedNonRevertibleData { static empty() { return new this( + GasUsed.empty(), RevertCode.OK, makeTuple(MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, SideEffect.empty), makeTuple(MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, SideEffectLinkedToNoteHash.empty), @@ -608,6 +649,7 @@ export class PublicAccumulatedNonRevertibleData { static fromPrivateAccumulatedNonRevertibleData(data: PrivateAccumulatedNonRevertibleData) { return new this( + data.daGasUsed, data.revertCode, data.newNoteHashes, data.newNullifiers, @@ -618,6 +660,7 @@ export class PublicAccumulatedNonRevertibleData { [inspect.custom]() { return `PublicAccumulatedNonRevertibleData { + gasUsed: ${this.daGasUsed}, revertCode: ${this.revertCode}, newNoteHashes: [${this.newNoteHashes.map(h => h.toString()).join(', ')}], newNullifiers: [${this.newNullifiers.map(h => h.toString()).join(', ')}], diff --git a/yarn-project/circuits.js/src/structs/kernel/private_kernel_tail_circuit_private_inputs.ts b/yarn-project/circuits.js/src/structs/kernel/private_kernel_tail_circuit_private_inputs.ts index 2f90462d3bd5..556a2c0ec572 100644 --- a/yarn-project/circuits.js/src/structs/kernel/private_kernel_tail_circuit_private_inputs.ts +++ b/yarn-project/circuits.js/src/structs/kernel/private_kernel_tail_circuit_private_inputs.ts @@ -1,3 +1,4 @@ +import { Fr, GrumpkinScalar } from '@aztec/foundation/fields'; import { BufferReader, Tuple, serializeToBuffer } from '@aztec/foundation/serialize'; import { @@ -6,8 +7,7 @@ import { MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX, } from '../../constants.gen.js'; -import { GrumpkinPrivateKey } from '../../index.js'; -import { Fr, GrumpkinScalar } from '../index.js'; +import { GrumpkinPrivateKey } from '../../types/grumpkin_private_key.js'; import { NullifierReadRequestHints, nullifierReadRequestHintsFromBuffer } from '../read_request_hints.js'; import { SideEffect, SideEffectLinkedToNoteHash } from '../side_effects.js'; import { PrivateKernelInnerData } from './private_kernel_inner_data.js'; diff --git a/yarn-project/circuits.js/src/structs/revert_code.ts b/yarn-project/circuits.js/src/structs/revert_code.ts index f88cd1f0c53d..38f1b2859800 100644 --- a/yarn-project/circuits.js/src/structs/revert_code.ts +++ b/yarn-project/circuits.js/src/structs/revert_code.ts @@ -16,6 +16,9 @@ function isRevertCodeEnum(value: number): value is RevertCodeEnum { * Wrapper class over a field to safely represent a revert code. */ export class RevertCode { + public static readonly PACKED_SIZE_IN_BYTES = 1n; + private static readonly PREIMAGE_SIZE_IN_BYTES = 32n; + private code: number; private constructor(e: RevertCodeEnum) { this.code = e.valueOf(); @@ -38,15 +41,13 @@ export class RevertCode { * from serialization for transmitting the data. */ - private static readonly PREIMAGE_SIZE_IN_BYTES = 32; public toHashPreimage(): Buffer { - const padding = Buffer.alloc(RevertCode.PREIMAGE_SIZE_IN_BYTES - RevertCode.PACKED_SIZE_IN_BYTES); + const padding = Buffer.alloc(Number(RevertCode.PREIMAGE_SIZE_IN_BYTES - RevertCode.PACKED_SIZE_IN_BYTES)); return Buffer.concat([padding, this.toBuffer()]); } - private static readonly PACKED_SIZE_IN_BYTES = 1; public toBuffer(): Buffer { - const b = Buffer.alloc(RevertCode.PACKED_SIZE_IN_BYTES); + const b = Buffer.alloc(Number(RevertCode.PACKED_SIZE_IN_BYTES)); b.writeUInt8(this.code, 0); return b; } @@ -73,7 +74,7 @@ export class RevertCode { public static fromBuffer(buffer: Buffer | BufferReader): RevertCode { const reader = BufferReader.asReader(buffer); - const code = reader.readBytes(RevertCode.PACKED_SIZE_IN_BYTES).readUInt8(0); + const code = reader.readBytes(Number(RevertCode.PACKED_SIZE_IN_BYTES)).readUInt8(0); if (!isRevertCodeEnum(code)) { throw new Error(`Invalid RevertCode: ${code}`); } diff --git a/yarn-project/circuits.js/src/tests/factories.ts b/yarn-project/circuits.js/src/tests/factories.ts index aeec6e1ef038..75729710f4db 100644 --- a/yarn-project/circuits.js/src/tests/factories.ts +++ b/yarn-project/circuits.js/src/tests/factories.ts @@ -35,6 +35,7 @@ import { FunctionData, FunctionSelector, G1AffineElement, + GasUsed, GrumpkinPrivateKey, GrumpkinScalar, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, @@ -295,6 +296,7 @@ export function makeCombinedAccumulatedData(seed = 1, full = false): CombinedAcc const tupleGenerator = full ? makeTuple : makeHalfFullTuple; return new CombinedAccumulatedData( + new GasUsed(BigInt(seed)), RevertCode.OK, tupleGenerator(MAX_NEW_NOTE_HASHES_PER_TX, sideEffectFromNumber, seed + 0x120), tupleGenerator(MAX_NEW_NULLIFIERS_PER_TX, sideEffectLinkedFromNumber, seed + 0x200), @@ -361,6 +363,7 @@ export function makeAccumulatedNonRevertibleData(seed = 1, full = false): Privat const tupleGenerator = full ? makeTuple : makeHalfFullTuple; return new PrivateAccumulatedNonRevertibleData( + new GasUsed(BigInt(seed)), RevertCode.OK, tupleGenerator(MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, sideEffectFromNumber, seed + 0x101), tupleGenerator(MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, sideEffectLinkedFromNumber, seed + 0x201), @@ -372,6 +375,7 @@ export function makeCombinedAccumulatedNonRevertibleData(seed = 1, full = false) const tupleGenerator = full ? makeTuple : makeHalfFullTuple; return new PublicAccumulatedNonRevertibleData( + new GasUsed(BigInt(seed)), RevertCode.OK, tupleGenerator(MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, sideEffectFromNumber, seed + 0x101), tupleGenerator(MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, sideEffectLinkedFromNumber, seed + 0x201), diff --git a/yarn-project/end-to-end/src/e2e_token_contract.test.ts b/yarn-project/end-to-end/src/e2e_token_contract.test.ts index d1f01897e01a..ed1903519655 100644 --- a/yarn-project/end-to-end/src/e2e_token_contract.test.ts +++ b/yarn-project/end-to-end/src/e2e_token_contract.test.ts @@ -10,6 +10,7 @@ import { computeAuthWitMessageHash, computeMessageSecretHash, } from '@aztec/aztec.js'; +import { GasUsed } from '@aztec/circuits.js'; import { decodeFunctionSignature } from '@aztec/foundation/abi'; import { DocsExampleContract, ReaderContract, TokenContract } from '@aztec/noir-contracts.js'; @@ -312,7 +313,11 @@ describe('e2e_token_contract', () => { const balance0 = await asset.methods.balance_of_public(accounts[0].address).view(); const amount = balance0 / 2n; expect(amount).toBeGreaterThan(0n); - await asset.methods.transfer_public(accounts[0].address, accounts[1].address, amount, 0).send().wait(); + const receipt = await asset.methods + .transfer_public(accounts[0].address, accounts[1].address, amount, 0) + .send() + .wait(); + expect(receipt.daGasUsed?.equals(new GasUsed(3024n))).toBeTruthy(); tokenSim.transferPublic(accounts[0].address, accounts[1].address, amount); }); diff --git a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts index 050cf0da6bf7..c3e29c2f8287 100644 --- a/yarn-project/end-to-end/src/integration_l1_publisher.test.ts +++ b/yarn-project/end-to-end/src/integration_l1_publisher.test.ts @@ -5,6 +5,7 @@ import { AztecAddress, Body, Fr, GlobalVariables, L2Actor, L2Block, createDebugL import { ProcessedTx, ProvingSuccess, + getMockTxGasUsed, makeEmptyProcessedTx as makeEmptyProcessedTxFromHistoricalTreeRoots, makeProcessedTx, } from '@aztec/circuit-types'; @@ -183,6 +184,8 @@ describe('L1Publisher integration', () => { processedTx.data.end.encryptedLogsHash = Fr.fromBuffer(processedTx.encryptedLogs.hash()); processedTx.data.end.unencryptedLogsHash = Fr.fromBuffer(processedTx.unencryptedLogs.hash()); + processedTx.data.endNonRevertibleData.daGasUsed = getMockTxGasUsed(processedTx); + return processedTx; }; diff --git a/yarn-project/noir-protocol-circuits-types/src/__snapshots__/index.test.ts.snap b/yarn-project/noir-protocol-circuits-types/src/__snapshots__/index.test.ts.snap index a408a9bedd3d..9abd070ced40 100644 --- a/yarn-project/noir-protocol-circuits-types/src/__snapshots__/index.test.ts.snap +++ b/yarn-project/noir-protocol-circuits-types/src/__snapshots__/index.test.ts.snap @@ -38,19 +38,19 @@ PrivateKernelInnerCircuitPublicInputs { "inHash": Buffer<0x00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c>, "outHash": Buffer<0x0007638bb56b6dda2b64b8f76841114ac3a87a1820030e2e16772c4d294879c3>, "txTreeHeight": Fr<0x0000000000000000000000000000000000000000000000000000000000000001>, - "txsEffectsHash": Buffer<0x001070b95a463cd3e0c1eec74d545327d35f036fa6270ff9ee4ae4fd248e4b8c>, + "txsEffectsHash": Buffer<0x008a24561c9e975ee8fd094ec596a6929472573f0fab00452128e9a9324dccb1>, }, "globalVariables": { "blockNumber": "0x0000000000000000000000000000000000000000000000000000000000000003", "chainId": "0x0000000000000000000000000000000000000000000000000000000000007a69", "coinbase": "0x0000000000000000000000000000000000000000", "feeRecipient": "0x0000000000000000000000000000000000000000000000000000000000000000", - "timestamp": "0x000000000000000000000000000000000000000000000000000000006601bb64", + "timestamp": "0x00000000000000000000000000000000000000000000000000000000660581a2", "version": "0x0000000000000000000000000000000000000000000000000000000000000001", }, "lastArchive": AppendOnlyTreeSnapshot { "nextAvailableLeafIndex": 3, - "root": Fr<0x12323626efdb913d8d0e878df766c402fbb5b61c87826363fa9cde7ba5e1ab8b>, + "root": Fr<0x0f1fdf8d2a18630c8ec30f6c9d5fab1ccf07e4adf912793a8509d4210a768fdf>, }, "state": StateReference { "l1ToL2MessageTree": AppendOnlyTreeSnapshot { @@ -60,11 +60,11 @@ PrivateKernelInnerCircuitPublicInputs { "partial": PartialStateReference { "noteHashTree": AppendOnlyTreeSnapshot { "nextAvailableLeafIndex": 384, - "root": Fr<0x1b64454c8b6f9ef03956bec11fe831358f8fe47a3593534790f822b35324ceef>, + "root": Fr<0x1c3aa2dc4a14168702ce6a56f08fd4eab7669a3cad0236920964a7dbac50c028>, }, "nullifierTree": AppendOnlyTreeSnapshot { "nextAvailableLeafIndex": 512, - "root": Fr<0x1798310a7303baf83b94523073876af0682377b02f648d6368d4b750297a8008>, + "root": Fr<0x2345fb004785a1326976c57e97162e8c829ca35e66234f0412ddcdfc82c776b8>, }, "publicDataTree": AppendOnlyTreeSnapshot { "nextAvailableLeafIndex": 256, @@ -81,6 +81,9 @@ PrivateKernelInnerCircuitPublicInputs { }, }, "end": CombinedAccumulatedData { + "daGasUsed": GasUsed { + "value": 0n, + }, "encryptedLogPreimagesLength": Fr<0x000000000000000000000000000000000000000000000000000000000000000c>, "encryptedLogsHash": Fr<0x00f33ae280239814c4dfaaafc16fc138a8d3eae52bb962af6576cbb61c2af246>, "newL2ToL1Msgs": [ @@ -349,7 +352,7 @@ PrivateKernelInnerCircuitPublicInputs { SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, "noteHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, - "value": Fr<0x1882c9614901f1f1b248a220cfca811c12c5fdd88c61804824a9319d9c308981>, + "value": Fr<0x2a48b2f97865daedad9fd80b9ce1ce3d96864a2f41f43ce515e3a8a2bc362e3e>, }, SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -1892,7 +1895,7 @@ PrivateKernelTailCircuitPublicInputs { }, "end": PrivateAccumulatedRevertibleData { "encryptedLogPreimagesLength": Fr<0x0000000000000000000000000000000000000000000000000000000000000138>, - "encryptedLogsHash": Fr<0x0082cb025a081337054f138f2d4708d3ae2a35c1c024041344b5f55c6ed3ee83>, + "encryptedLogsHash": Fr<0x00fa4f11a45c1189645ac774ee2f76cb583bb6ebe54287d279e9f7dd3a694dae>, "newL2ToL1Msgs": [ Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -1900,7 +1903,7 @@ PrivateKernelTailCircuitPublicInputs { "newNoteHashes": [ SideEffect { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000002>, - "value": Fr<0x12d57be1320db2f84e9ee09f4cb6d2845d5a813c7dc5be06779a58820db51183>, + "value": Fr<0x17037723da6a7a0227e6fb3b5fd24a1f00766e832000410029d7f1ca0da4a42d>, }, SideEffect { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -2127,12 +2130,12 @@ PrivateKernelTailCircuitPublicInputs { SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000001>, "noteHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, - "value": Fr<0x028d5f9670104b5af44b1ae3ea44a5bbdc97f37425dc07a9acbfd6902e8fc3af>, + "value": Fr<0x262528185abdbecbba2aeb3e4dc1255ce7134c8a420b3a72ec4e4db594d745f0>, }, SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000003>, "noteHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, - "value": Fr<0x2905d10baaf69765d2b2f1e03ded36e2b50a91489515aa91d277a9658999cd51>, + "value": Fr<0x179a32bbf30a4665bdaf22b7456cc2096d078ff7c8ac193a0353761c85131fc0>, }, SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -2543,6 +2546,9 @@ PrivateKernelTailCircuitPublicInputs { "unencryptedLogsHash": Fr<0x006003947a07e21c81ce2062539d6d6864fe999b58b03fc46f6c190d9eac9b39>, }, "endNonRevertibleData": PrivateAccumulatedNonRevertibleData { + "daGasUsed": GasUsed { + "value": 784n, + }, "newNoteHashes": [ SideEffect { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, @@ -2581,7 +2587,7 @@ PrivateKernelTailCircuitPublicInputs { SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, "noteHash": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, - "value": Fr<0x1ae0435114bcd3eab4c8994725a1b5a21e63c1ed26db53f0ec26af423562c07e>, + "value": Fr<0x244efb0f191f32c59ee92c75d8251738c991a35339497955f6d4bd9c692c5061>, }, SideEffectLinkedToNoteHash { "counter": Fr<0x0000000000000000000000000000000000000000000000000000000000000000>, diff --git a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-init.hex b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-init.hex index b429f7a21ee2..0674a1be8c32 100644 --- a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-init.hex +++ b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-init.hex @@ -1 +1 @@ -1cd5ad4b3a2730bb3e21d5483c7cba30278b7e86de666f712758642e58f9f23aaf9f8c4401000864ba282583f7e8885cd95c99d5b94e8e4e7e90f960f7d1f744d4e1a3d1184600000000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000011cd5ad4b3a2730bb3e21d5483c7cba30278b7e86de666f712758642e58f9f23aaf9f8c44010000000000000000000000000000000000000000000000000000000000000000001cd5ad4b3a2730bb3e21d5483c7cba30278b7e86de666f712758642e58f9f23a0000000000000000000000000000000000000000af9f8c440000000000010864ba282583f7e8885cd95c99d5b94e8e4e7e90f960f7d1f744d4e1a3d11846000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000276ccc1f739a2f32e67e0a69d000e0f24549e2daf7ba4ab92d0c396c749ef708000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003579f468b2283611cc4d7adfbb93b8a4815d93ac0b1e1d11dace012cf73c7aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011cd5ad4b3a2730bb3e21d5483c7cba30278b7e86de666f712758642e58f9f23a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000040073ced0da546b196db6081a63207dd54a4471baa30273e0b81f7ca1896331ab00e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b80000000000000000000000000000000000000000000000000000000000000138000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f16100cde5c5b63f50c24f425289b93fb6719b045e905e9dcb9c281c79f8a10700e749f3a31cc27ed4aa1c105c023e78dbd20f922114e47d92d044fefc24e355f13f925dcd83bf6054ea0cce12d21a0b9d3be109d26fa9c333bae17b82becf29f188d5acf2ca79a04d6e2db7589ff5543f53308a162c360a65c80261e28f6768200000000000000000000000000000000000000000000000000000000000000022b09ad2b1765e61b2203cd359f9b833c9c611271e5c80df92c35ef522d3731e42706fc59cda1c448173c4a7739dca4fd4325c970e6f035ed9929fd84719533bb0bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file +14ba22793ff2f94d2f368acb96bfd571758c3a1a1b6b34d72dd3dce93c77bd7faf9f8c4401001afab12719ef6f47d4f6822ba78ca3fbb50514fd070a3849165cf3c9cf60b7a000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000114ba22793ff2f94d2f368acb96bfd571758c3a1a1b6b34d72dd3dce93c77bd7faf9f8c440100000000000000000000000000000000000000000000000000000000000000000014ba22793ff2f94d2f368acb96bfd571758c3a1a1b6b34d72dd3dce93c77bd7f0000000000000000000000000000000000000000af9f8c440000000000011afab12719ef6f47d4f6822ba78ca3fbb50514fd070a3849165cf3c9cf60b7a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002317dbaa6255b372cc71359e033cb4581c2548de4484c9cc469678a7afb7bb46000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003579f468b2283611cc4d7adfbb93b8a4815d93ac0b1e1d11dace012cf73c7aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000114ba22793ff2f94d2f368acb96bfd571758c3a1a1b6b34d72dd3dce93c77bd7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004001d066f98da2d20d559de03a00bcfa7d01c7baec4c1b4c0bec27cbf3d21171c00e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b80000000000000000000000000000000000000000000000000000000000000138000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f1a64d25777857ae998c59ef898ab6b36ff568bfb7cb2ec9d10ea7f329c1a31e9036ec8bea95ab16fd6d4414d7662e80d05847c88627c9136cd896a1e52111f060ccca11f1f1b3f41560f67156127cca25dbd9c810bf553c218239d54d298ad48174182d2617a3541ffec510639f62f1041c3a203d6c8e40ce847200145fd5bb600000000000000000000000000000000000000000000000000000000000000022b09ad2b1765e61b2203cd359f9b833c9c611271e5c80df92c35ef522d3731e42706fc59cda1c448173c4a7739dca4fd4325c970e6f035ed9929fd84719533bb0bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-inner.hex b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-inner.hex index cd0999705548..60bf99c6a064 100644 --- a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-inner.hex +++ b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-inner.hex @@ -1 +1 @@ -0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be2000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001882c9614901f1f1b248a220cfca811c12c5fdd88c61804824a9319d9c30898100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028e0cd51c331bac85a0b3e3ec688d034ab7eb5e75ab085dfd3aa200343d23460ed08e599e5db578d1fc18d29c1eded075b92ccd489624367e8852bc807861ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008d4d695766a616808caa331119da14269ac3271c251dec3a11df896131ba2c008d4d695766a616808caa331119da14269ac3271c251dec3a11df896131ba2c00000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012323626efdb913d8d0e878df766c402fbb5b61c87826363fa9cde7ba5e1ab8b000000030000000000000000000000000000000000000000000000000000000000000001001070b95a463cd3e0c1eec74d545327d35f036fa6270ff9ee4ae4fd248e4b8c00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c0007638bb56b6dda2b64b8f76841114ac3a87a1820030e2e16772c4d294879c31864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000301b64454c8b6f9ef03956bec11fe831358f8fe47a3593534790f822b35324ceef000001801798310a7303baf83b94523073876af0682377b02f648d6368d4b750297a8008000002000572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001000000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000006601bb640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001010000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000000025ac0f8793721f4bed5541b84ac1b3d3a7979d2d5c367b7752fc0ee13db1aa9109b10c924d7b8ea453aa111249a391832ed60e771536c5f7496bea3d6e921d9502cb42d99fc18dfd0b7faebcbc4b04cac72deeaa804c2f881c734253b239915d25d4a020c2e9dd66895268ad6890d394df1b7bba1b5f68c5482f32502bfe7eda0906bca101000ed08e599e5db578d1fc18d29c1eded075b92ccd489624367e8852bc807861ed25d4a020c2e9dd66895268ad6890d394df1b7bba1b5f68c5482f32502bfe7eda00000000000000000000000000000000000000000906bca10000000000032898402da2fa95f47c47763fe5b171ff3155bd31e5af88d9823bccb26b6701540000000000000000000000000000000000000000000000000000000000007a6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b800e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b80000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000412323626efdb913d8d0e878df766c402fbb5b61c87826363fa9cde7ba5e1ab8b000000030000000000000000000000000000000000000000000000000000000000000001001070b95a463cd3e0c1eec74d545327d35f036fa6270ff9ee4ae4fd248e4b8c00089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c0007638bb56b6dda2b64b8f76841114ac3a87a1820030e2e16772c4d294879c31864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000301b64454c8b6f9ef03956bec11fe831358f8fe47a3593534790f822b35324ceef000001801798310a7303baf83b94523073876af0682377b02f648d6368d4b750297a8008000002000572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001000000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000006601bb64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0943e0d2a4e58238525bf3e5f2b00d44ebfd6d27463767fce64425c1c95ca1a60ce0972a4958e5b11c7d51f6f803f78799b28bd1c2df941f869ef6c553d6941b27b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed2665e9a78f03a58e48cb92a31a243d9906c13eb556d8feed67ea831230d9d8c900000000000000000000000000000000000000000000000000000000000000002452a14c748981acff167dba9088770b6c2c2dc34677295a1974f2c247236ba11e904e4d0a67667f8faaa89198f5e89684e213bc99a83c3b20888d5854d3dd320bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file +0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be20000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a48b2f97865daedad9fd80b9ce1ce3d96864a2f41f43ce515e3a8a2bc362e3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c9a9e1f151b0f715ccb754c13f7b0c27ddb2da8b9d42e278c094cd5253836ce13181c7ac6520aa7f51f6b611bebdc729adb70278fbde77b6e5b4d69ce57dddc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008d4d695766a616808caa331119da14269ac3271c251dec3a11df896131ba2c008d4d695766a616808caa331119da14269ac3271c251dec3a11df896131ba2c0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1fdf8d2a18630c8ec30f6c9d5fab1ccf07e4adf912793a8509d4210a768fdf000000030000000000000000000000000000000000000000000000000000000000000001008a24561c9e975ee8fd094ec596a6929472573f0fab00452128e9a9324dccb100089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c0007638bb56b6dda2b64b8f76841114ac3a87a1820030e2e16772c4d294879c31864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000301c3aa2dc4a14168702ce6a56f08fd4eab7669a3cad0236920964a7dbac50c028000001802345fb004785a1326976c57e97162e8c829ca35e66234f0412ddcdfc82c776b8000002000572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000660581a20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001010000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000000279d5d672e40f3abdd8f9ddc4a4d3768803b5a4a0beb98e8e8f0f181b91f2d340c41a8ac927cd19853fe2d351bc1d7ac144788e4e4c473d8c5ad1ac28facb6cc238eed23a61549ba6cd1ddd1207842b53e25d068aedddfc7d6b5b00b712b1791204560e5b5a3175f39fb3b1593642b40fe48db609c166f7d97ffb61e61eef7980906bca1010013181c7ac6520aa7f51f6b611bebdc729adb70278fbde77b6e5b4d69ce57dddc204560e5b5a3175f39fb3b1593642b40fe48db609c166f7d97ffb61e61eef79800000000000000000000000000000000000000000906bca10000000000032898402da2fa95f47c47763fe5b171ff3155bd31e5af88d9823bccb26b6701540000000000000000000000000000000000000000000000000000000000007a6a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b800e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040f1fdf8d2a18630c8ec30f6c9d5fab1ccf07e4adf912793a8509d4210a768fdf000000030000000000000000000000000000000000000000000000000000000000000001008a24561c9e975ee8fd094ec596a6929472573f0fab00452128e9a9324dccb100089a9d421a82c4a25f7acbebe69e638d5b064fa8a60e018793dcb0be53752c0007638bb56b6dda2b64b8f76841114ac3a87a1820030e2e16772c4d294879c31864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000301c3aa2dc4a14168702ce6a56f08fd4eab7669a3cad0236920964a7dbac50c028000001802345fb004785a1326976c57e97162e8c829ca35e66234f0412ddcdfc82c776b8000002000572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b000001000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000660581a2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a6900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0352653513ff35b9d2dd87aa21e64944aabe7cb39f9b3b4fd279a1dae8a36ab624fa95eaf440380e3156f9e315bb2aa19f5d2c8a7e954dba136c2e9c9c6eb5f127b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed07acfe800b6e12ec7fa6e3b5655b01e3b5c3ec1689557c214f5c63b85256c43000000000000000000000000000000000000000000000000000000000000000002452a14c748981acff167dba9088770b6c2c2dc34677295a1974f2c247236ba11e904e4d0a67667f8faaa89198f5e89684e213bc99a83c3b20888d5854d3dd320bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-ordering.hex b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-ordering.hex index 73a2d6e1f99a..b5310f0567b8 100644 --- a/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-ordering.hex +++ b/yarn-project/noir-protocol-circuits-types/src/fixtures/nested-call-private-kernel-ordering.hex @@ -1 +1 @@ -0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be20000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002df6f1bebea79e7109e9a05d46eb4f3cbcd2ab2f1deddf1ee404519d06f6db4100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ae0435114bcd3eab4c8994725a1b5a21e63c1ed26db53f0ec26af423562c07e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028d5f9670104b5af44b1ae3ea44a5bbdc97f37425dc07a9acbfd6902e8fc3af000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012905d10baaf69765d2b2f1e03ded36e2b50a91489515aa91d277a9658999cd5100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082cb025a081337054f138f2d4708d3ae2a35c1c024041344b5f55c6ed3ee83006003947a07e21c81ce2062539d6d6864fe999b58b03fc46f6c190d9eac9b3900000000000000000000000000000000000000000000000000000000000001380000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b0000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001010000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000001922b5761a51e19b5cb4d8b6bb2ee8268771782838b138bcbca98b4ac18627890bce5a69119854406c06308ba266813d1c29cf462591d0d9fcec48977c449a7a19d92aa77bbcd9971855e260da442e61407d51011a2f83479a5663c018aa933d2df6f1bebea79e7109e9a05d46eb4f3cbcd2ab2f1deddf1ee404519d06f6db410000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ae0435114bcd3eab4c8994725a1b5a21e63c1ed26db53f0ec26af423562c07e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028d5f9670104b5af44b1ae3ea44a5bbdc97f37425dc07a9acbfd6902e8fc3af000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012905d10baaf69765d2b2f1e03ded36e2b50a91489515aa91d277a9658999cd5100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000800000000000000080000000000000008000000000000000800000000000000080000000000000008000000000000000800000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file +0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be20000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012f438b6a6d2c5a470ad5356c43d8abdaa61f94615641af2bdee2fcf39a53a30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000244efb0f191f32c59ee92c75d8251738c991a35339497955f6d4bd9c692c506100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000262528185abdbecbba2aeb3e4dc1255ce7134c8a420b3a72ec4e4db594d745f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001179a32bbf30a4665bdaf22b7456cc2096d078ff7c8ac193a0353761c85131fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa4f11a45c1189645ac774ee2f76cb583bb6ebe54287d279e9f7dd3a694dae006003947a07e21c81ce2062539d6d6864fe999b58b03fc46f6c190d9eac9b3900000000000000000000000000000000000000000000000000000000000001380000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000000000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000000800572c8db882674dd026b8877fbba1b700a4407da3ae9ce5fa43215a28163362b0000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001010000002a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000001455da7135338727a21339a7201a0363434ede2123afa7952447eddc709f780c2ecd3eafadcfc4da671857e623a9a81e3a6259683c138ff2312f767a2e69f24d04f9711fad7207dedfb856deaae0a39362c4e8b5f6fb1b54998c820399961f20012f438b6a6d2c5a470ad5356c43d8abdaa61f94615641af2bdee2fcf39a53a30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000244efb0f191f32c59ee92c75d8251738c991a35339497955f6d4bd9c692c506100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000262528185abdbecbba2aeb3e4dc1255ce7134c8a420b3a72ec4e4db594d745f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001179a32bbf30a4665bdaf22b7456cc2096d078ff7c8ac193a0353761c85131fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000800000000000000080000000000000008000000000000000800000000000000080000000000000008000000000000000800000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits-types/src/type_conversion.ts b/yarn-project/noir-protocol-circuits-types/src/type_conversion.ts index f0c35c664377..731e7446c1e1 100644 --- a/yarn-project/noir-protocol-circuits-types/src/type_conversion.ts +++ b/yarn-project/noir-protocol-circuits-types/src/type_conversion.ts @@ -20,6 +20,7 @@ import { Fr, FunctionData, FunctionSelector, + GasUsed, GlobalVariables, GrumpkinPrivateKey, GrumpkinScalar, @@ -795,6 +796,14 @@ export function mapRevertCodeToNoir(revertCode: RevertCode): NoirField { return mapFieldToNoir(revertCode.toField()); } +export function mapGasUsedFromNoir(gasUsed: NoirField): GasUsed { + return new GasUsed(BigInt(mapNumberFromNoir(gasUsed))); +} + +export function mapGasUsedToNoir(gasUsed: GasUsed): NoirField { + return mapFieldToNoir(new Fr(gasUsed.value)); +} + /** * Maps an array from noir types to a tuple of parsed types. * @param noirArray - The noir array. @@ -1008,6 +1017,7 @@ export function mapCombinedAccumulatedDataFromNoir( combinedAccumulatedData: CombinedAccumulatedDataNoir, ): CombinedAccumulatedData { return new CombinedAccumulatedData( + mapGasUsedFromNoir(combinedAccumulatedData.da_gas_used), mapRevertCodeFromNoir(combinedAccumulatedData.revert_code), mapTupleFromNoir(combinedAccumulatedData.new_note_hashes, MAX_NEW_NOTE_HASHES_PER_TX, mapSideEffectFromNoir), mapTupleFromNoir(combinedAccumulatedData.new_nullifiers, MAX_NEW_NULLIFIERS_PER_TX, mapSideEffectLinkedFromNoir), @@ -1076,6 +1086,7 @@ export function mapAccumulatedNonRevertibleDataFromNoir( accumulatedMetaData: PrivateAccumulatedNonRevertibleDataNoir, ): PrivateAccumulatedNonRevertibleData { return new PrivateAccumulatedNonRevertibleData( + mapGasUsedFromNoir(accumulatedMetaData.da_gas_used), mapRevertCodeFromNoir(accumulatedMetaData.revert_code), mapTupleFromNoir(accumulatedMetaData.new_note_hashes, MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, mapSideEffectFromNoir), mapTupleFromNoir( @@ -1091,22 +1102,6 @@ export function mapAccumulatedNonRevertibleDataFromNoir( ); } -/** - * Maps accumulated data in the Tx's meta phase to the parsed type. - * @param accumulatedMetaData - The noir accumulated meta data. - * @returns The parsed accumulated meta data. - */ -export function mapAccumulatedNonRevertibleDataToNoir( - accumulatedMetaData: PrivateAccumulatedNonRevertibleData, -): PrivateAccumulatedNonRevertibleDataNoir { - return { - revert_code: mapRevertCodeToNoir(accumulatedMetaData.revertCode), - new_note_hashes: mapTuple(accumulatedMetaData.newNoteHashes, mapSideEffectToNoir), - new_nullifiers: mapTuple(accumulatedMetaData.newNullifiers, mapSideEffectLinkedToNoir), - public_call_stack: mapTuple(accumulatedMetaData.publicCallStack, mapCallRequestToNoir), - }; -} - export function mapPrivateAccumulatedRevertibleDataToNoir( data: PrivateAccumulatedRevertibleData, ): PrivateAccumulatedRevertibleDataNoir { @@ -1132,6 +1127,7 @@ export function mapCombinedAccumulatedDataToNoir( combinedAccumulatedData: CombinedAccumulatedData, ): CombinedAccumulatedDataNoir { return { + da_gas_used: mapGasUsedToNoir(combinedAccumulatedData.daGasUsed), revert_code: mapRevertCodeToNoir(combinedAccumulatedData.revertCode), new_note_hashes: mapTuple(combinedAccumulatedData.newNoteHashes, mapSideEffectToNoir), new_nullifiers: mapTuple(combinedAccumulatedData.newNullifiers, mapSideEffectLinkedToNoir), @@ -1235,6 +1231,7 @@ export function mapPublicAccumulatedNonRevertibleDataToNoir( data: PublicAccumulatedNonRevertibleData, ): PublicAccumulatedNonRevertibleDataNoir { return { + da_gas_used: mapGasUsedToNoir(data.daGasUsed), revert_code: mapRevertCodeToNoir(data.revertCode), new_note_hashes: mapTuple(data.newNoteHashes, mapSideEffectToNoir), new_nullifiers: mapTuple(data.newNullifiers, mapSideEffectLinkedToNoir), @@ -1347,21 +1344,6 @@ export function mapPrivateKernelTailCircuitPublicInputsFromNoir( ); } -export function mapPrivateKernelTailCircuitPublicInputsToNoir( - inputs: PrivateKernelTailCircuitPublicInputs, -): PrivateKernelTailCircuitPublicInputsNoir { - return { - aggregation_object: {}, - rollup_validation_requests: mapRollupValidationRequestsToNoir(inputs.rollupValidationRequests), - constants: mapCombinedConstantDataToNoir(inputs.constants), - end: mapFinalAccumulatedDataToNoir(inputs.end), - end_non_revertible: mapAccumulatedNonRevertibleDataToNoir(inputs.endNonRevertibleData), - needs_setup: inputs.needsSetup, - needs_app_logic: inputs.needsAppLogic, - needs_teardown: inputs.needsTeardown, - }; -} - /** * Maps the private inputs to the private kernel inner to the noir representation. * @param privateKernelInnerCircuitPrivateInputs - The private inputs to the private kernel inner. @@ -1438,6 +1420,7 @@ export function mapPublicAccumulatedNonRevertibleDataFromNoir( data: PublicAccumulatedNonRevertibleDataNoir, ): PublicAccumulatedNonRevertibleData { return new PublicAccumulatedNonRevertibleData( + mapGasUsedFromNoir(data.da_gas_used), mapRevertCodeFromNoir(data.revert_code), mapTupleFromNoir(data.new_note_hashes, MAX_NON_REVERTIBLE_NOTE_HASHES_PER_TX, mapSideEffectFromNoir), mapTupleFromNoir(data.new_nullifiers, MAX_NON_REVERTIBLE_NULLIFIERS_PER_TX, mapSideEffectLinkedFromNoir), diff --git a/yarn-project/p2p/src/client/mocks.ts b/yarn-project/p2p/src/client/mocks.ts index 1b2134ac45d3..c634e0150165 100644 --- a/yarn-project/p2p/src/client/mocks.ts +++ b/yarn-project/p2p/src/client/mocks.ts @@ -1,4 +1,4 @@ -import { L2Block, L2BlockSource, TxEffect, TxHash, TxReceipt, TxStatus } from '@aztec/circuit-types'; +import { L2Block, L2BlockSource, TxEffect, TxHash, TxReceipt, revertCodeToStatus } from '@aztec/circuit-types'; import { EthAddress } from '@aztec/circuits.js'; /** @@ -78,7 +78,16 @@ export class MockBlockSource implements L2BlockSource { for (const block of this.l2Blocks) { for (const txEffect of block.body.txEffects) { if (txEffect.txHash.equals(txHash)) { - return Promise.resolve(new TxReceipt(txHash, TxStatus.MINED, '', block.hash().toBuffer(), block.number)); + return Promise.resolve( + new TxReceipt( + txHash, + revertCodeToStatus(txEffect.revertCode), + '', + txEffect.daGasUsed, + block.hash().toBuffer(), + block.number, + ), + ); } } } diff --git a/yarn-project/prover-client/jest.config.ts b/yarn-project/prover-client/jest.config.ts new file mode 100644 index 000000000000..83d85d85f9b7 --- /dev/null +++ b/yarn-project/prover-client/jest.config.ts @@ -0,0 +1,12 @@ +import type { Config } from 'jest'; + +const config: Config = { + preset: 'ts-jest/presets/default-esm', + moduleNameMapper: { + '^(\\.{1,2}/.*)\\.[cm]?js$': '$1', + }, + testRegex: './src/.*\\.test\\.(js|mjs|ts)$', + rootDir: './src', +}; + +export default config; diff --git a/yarn-project/prover-client/package.json b/yarn-project/prover-client/package.json index a1b03a697752..9d25669db558 100644 --- a/yarn-project/prover-client/package.json +++ b/yarn-project/prover-client/package.json @@ -18,17 +18,6 @@ "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src", "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --passWithNoTests" }, - "inherits": [ - "../package.common.json" - ], - "jest": { - "preset": "ts-jest/presets/default-esm", - "moduleNameMapper": { - "^(\\.{1,2}/.*)\\.[cm]?js$": "$1" - }, - "testRegex": "./src/.*\\.test\\.(js|mjs|ts)$", - "rootDir": "./src" - }, "dependencies": { "@aztec/circuit-types": "workspace:^", "@aztec/circuits.js": "workspace:^", diff --git a/yarn-project/prover-client/src/orchestrator/block-building-helpers.ts b/yarn-project/prover-client/src/orchestrator/block-building-helpers.ts index 5156edd63015..ff89bc803fef 100644 --- a/yarn-project/prover-client/src/orchestrator/block-building-helpers.ts +++ b/yarn-project/prover-client/src/orchestrator/block-building-helpers.ts @@ -1,4 +1,4 @@ -import { MerkleTreeId, ProcessedTx } from '@aztec/circuit-types'; +import { MerkleTreeId, ProcessedTx, toTxEffect } from '@aztec/circuit-types'; import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot, @@ -48,6 +48,8 @@ import { DebugLogger } from '@aztec/foundation/log'; import { Tuple, assertLength, toFriendlyJSON } from '@aztec/foundation/serialize'; import { MerkleTreeOperations } from '@aztec/world-state'; +import { inspect } from 'util'; + import { VerificationKeys, getVerificationKeys } from '../mocks/verification_keys.js'; import { RollupProver } from '../prover/index.js'; import { RollupSimulator } from '../simulator/rollup.js'; @@ -515,6 +517,15 @@ export async function executeBaseRollupCircuit( ): Promise<[BaseOrMergeRollupPublicInputs, Proof]> { logger?.(`Running base rollup for ${tx.hash}`); const rollupOutput = await simulator.baseRollupCircuit(inputs); + const txEffect = toTxEffect(tx); + const txEffectHash = txEffect.hash(); + if (!rollupOutput.txsEffectsHash.toBuffer().equals(txEffectHash)) { + throw new Error( + `Tx with hash ${tx.hash} had effects mismatch (tx ${new Fr(txEffectHash)}, rollup ${ + rollupOutput.txsEffectsHash + }). (tx ${inspect(txEffect.daGasUsed)}, rollup ${inspect(inputs.kernelData.publicInputs.end.daGasUsed)})`, + ); + } validatePartialState(rollupOutput.end, treeSnapshots); const proof = await prover.getBaseRollupProof(inputs, rollupOutput); return [rollupOutput, proof]; diff --git a/yarn-project/prover-client/src/orchestrator/orchestrator.test.ts b/yarn-project/prover-client/src/orchestrator/orchestrator.test.ts index c4af9a479dc6..5bed7dd10fab 100644 --- a/yarn-project/prover-client/src/orchestrator/orchestrator.test.ts +++ b/yarn-project/prover-client/src/orchestrator/orchestrator.test.ts @@ -3,6 +3,8 @@ import { PROVING_STATUS, ProcessedTx, ProvingSuccess, + getMockTxGasUsed, + isProvingSuccess, makeEmptyProcessedTx as makeEmptyProcessedTxFromHistoricalTreeRoots, makeProcessedTx, mockTx, @@ -367,6 +369,8 @@ describe('prover/tx-prover', () => { processedTx.data.end.encryptedLogsHash = Fr.fromBuffer(processedTx.encryptedLogs.hash()); processedTx.data.end.unencryptedLogsHash = Fr.fromBuffer(processedTx.unencryptedLogs.hash()); + processedTx.data.endNonRevertibleData.daGasUsed = getMockTxGasUsed(processedTx); + return processedTx; }; @@ -429,6 +433,9 @@ describe('prover/tx-prover', () => { } const result = await blockTicket.provingPromise; + if (!isProvingSuccess(result)) { + throw `Failed to prove due to ${result.reason}`; + } expect(result.status).toBe(PROVING_STATUS.SUCCESS); expect((result as ProvingSuccess).block.number).toEqual(blockNumber); }, 30_000); diff --git a/yarn-project/pxe/src/note_processor/note_processor.test.ts b/yarn-project/pxe/src/note_processor/note_processor.test.ts index 3f026ce3a9d0..e0a2ac70b9fd 100644 --- a/yarn-project/pxe/src/note_processor/note_processor.test.ts +++ b/yarn-project/pxe/src/note_processor/note_processor.test.ts @@ -10,6 +10,7 @@ import { L2Block, L2BlockContext, TaggedNote, + TxEffect, } from '@aztec/circuit-types'; import { Fr, INITIAL_L2_BLOCK_NUM, MAX_NEW_NOTE_HASHES_PER_TX } from '@aztec/circuits.js'; import { Grumpkin } from '@aztec/circuits.js/barretenberg'; @@ -105,16 +106,38 @@ describe('Note Processor', () => { } = createEncryptedLogsAndOwnedL1NotePayloads(isTargetBlock ? ownedData : [], isTargetBlock ? ownedNotes : []); encryptedLogsArr.push(encryptedLogs); ownedL1NotePayloads.push(...payloads); + const noteHashesList: Tuple[] = []; for (let i = 0; i < TXS_PER_BLOCK; i++) { - block.body.txEffects[i].noteHashes = newNotes + const noteHashes = newNotes .map(n => pedersenHash(n.notePayload.note.items)) .slice(i * MAX_NEW_NOTE_HASHES_PER_TX, (i + 1) * MAX_NEW_NOTE_HASHES_PER_TX) as Tuple< Fr, typeof MAX_NEW_NOTE_HASHES_PER_TX >; + noteHashesList.push(noteHashes); } + // Reconstruct TxEffects because their fields are readonly + const txEffects: TxEffect[] = noteHashesList.map((noteHashes, index) => { + // Create a new TxEffect instance with the correct noteHashes + const existingTxEffect = block.body.txEffects[index]; + return new TxEffect( + existingTxEffect.daGasUsed, + // existingTxEffect.computeGasUsed, + existingTxEffect.revertCode, + noteHashes, + existingTxEffect.nullifiers, + existingTxEffect.l2ToL1Msgs, + existingTxEffect.publicDataWrites, + existingTxEffect.encryptedLogs, + existingTxEffect.unencryptedLogs, + ); + }); + + block.body.txEffects = txEffects; + const randomBlockContext = new L2BlockContext(block); + blockContexts.push(randomBlockContext); } return { blockContexts, encryptedLogsArr, ownedL1NotePayloads }; diff --git a/yellow-paper/docs/data-publication-and-availability/published-data.md b/yellow-paper/docs/data-publication-and-availability/published-data.md index 098f4b5695c1..1c7f2f9913bf 100644 --- a/yellow-paper/docs/data-publication-and-availability/published-data.md +++ b/yellow-paper/docs/data-publication-and-availability/published-data.md @@ -2,10 +2,17 @@ title: Published Data Format --- -The "Effects" of a transaction are the collection of state changes and metadata that resulted from executing a transaction. These include: +# Publishing TxEffects + +The `TxEffect` of a transaction is the collection of state changes and metadata that resulted from executing a transaction. + +`TxEffect`s are published to DA. + +These include: | Field | Type | Description | | -------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | +| `daGasUsed` | `GasUsed` | Total DA gas used in this transaction. | | `revertCode` | `RevertCode` | Indicates the reason for reverting in public application logic. 0 indicates success. | | `note_hashes` | `Tuple` | The note hashes to be inserted into the note hash tree. | | `nullifiers` | `Tuple` | The nullifiers to be inserted into the nullifier tree. | @@ -14,32 +21,53 @@ The "Effects" of a transaction are the collection of state changes and metadata | `encrypted_logs` | `TxL2Logs` | Buffers containing the emitted encrypted logs. | | `unencrypted_logs` | `TxL2Logs` | Buffers containing the emitted unencrypted logs. | -Each can have several transactions. Thus, an block is presently encoded as: - -| byte start | num bytes | name | -| -------------------------------------------------------------------------------------------------------- | --------- | --------------------------------------- | -| 0x0 | 0x4 | len(newL1ToL2Msgs) (denoted a) | -| 0x4 | a \* 0x20 | newL1ToL2Msgs | -| 0x4 + a \* 0x20 = tx0Start | 0x4 | len(numTxs) (denoted t) | -| | | TxEffect 0 { | -| tx0Start | 0x20 | revertCode | -| tx0Start + 0x20 | 0x1 | len(newNoteHashes) (denoted b) | -| tx0Start + 0x20 + 0x1 | b \* 0x20 | newNoteHashes | -| tx0Start + 0x20 + 0x1 + b \* 0x20 | 0x1 | len(newNullifiers) (denoted c) | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 | c \* 0x20 | newNullifiers | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 + c \* 0x20 | 0x1 | len(newL2ToL1Msgs) (denoted d) | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 + c \* 0x20 + 0x1 | d \* 0x20 | newL2ToL1Msgs | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 + c \* 0x20 + 0x1 + d \* 0x20 | 0x1 | len(newPublicDataWrites) (denoted e) | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 + c \* 0x20 + 0x1 + d \* 0x20 + 0x01 | e \* 0x40 | newPublicDataWrites | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 + c \* 0x20 + 0x1 + d \* 0x20 + 0x01 + e \* 0x40 | 0x04 | byteLen(newEncryptedLogs) (denoted f) | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 + c \* 0x20 + 0x1 + d \* 0x20 + 0x01 + e \* 0x40 + 0x4 | f | newEncryptedLogs | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 + c \* 0x20 + 0x1 + d \* 0x20 + 0x01 + e \* 0x40 + 0x4 + f | 0x04 | byteLen(newUnencryptedLogs) (denoted g) | -| tx0Start + 0x20 + 0x1 + b \* 0x20 + 0x1 + c \* 0x20 + 0x1 + d \* 0x20 + 0x01 + e \* 0x40 + 0x4 + f + 0x4 | g | newUnencryptedLogs | -| | | }, | -| | | TxEffect 1 { | -| | | ... | -| | | }, | -| | | ... | -| | | TxEffect (t - 1) { | -| | | ... | -| | | }, | +`GasUsed` is a 64-bit unsigned integer when serialized, and a 256-bit unsigned integer when hashed. +Similarly, `RevertCode` is a 8-bit unsigned integer when serialized, and a 256-bit unsigned integer when hashed. + +The discrepancy is due to the fact that the content commitment for a transaction is computed by the base rollup, which treats each of its inputs as Field elements. + +Each can have several transactions. Thus, an block is encoded as: +| byte start | num bytes | name | +| ---------------------------------------------------------------------------------------------------- | --------- | --------------------------------------- | +| 0x0 | 0x4 | len(numTxs) (denoted t) | +| | | TxEffect 0 { | +| 0x4 | 0x8 | daGasUsed | +| 0x4 + 0x8 | 0x1 | revertCode | +| 0x4 + 0x8 + 0x1 | 0x1 | len(newNoteHashes) (denoted b) | +| 0x4 + 0x8 + 0x1 + 0x1 | b * 0x20 | newNoteHashes | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 | 0x1 | len(newNullifiers) (denoted c) | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 | c * 0x20 | newNullifiers | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 | 0x1 | len(newL2ToL1Msgs) (denoted d) | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 | d * 0x20 | newL2ToL1Msgs | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 | 0x1 | len(newPublicDataWrites) (denoted e) | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 | e * 0x40 | newPublicDataWrites | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 | 0x04 | byteLen(newEncryptedLogs) (denoted f) | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 | f | newEncryptedLogs | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 + f | 0x04 | byteLen(newUnencryptedLogs) (denoted g) | +| 0x4 + 0x8 + 0x1 + 0x1 + b * 0x20 + 0x1 + c * 0x20 + 0x1 + d * 0x20 + 0x01 + e * 0x40 + 0x4 + f + 0x4 | g | newUnencryptedLogs | +| | | }, | +| | | TxEffect 1 { | +| | | ... | +| | | }, | +| | | ... | +| | | TxEffect (t - 1) { | +| | | ... | +| | | }, | + + +# Reading TxReceipts + +A client can query an Aztec node for a particular transaction hash to get the `TxReceipt` of the transaction. + +The `TxReceipt` includes: + +| Field | Type | Description | +| ------------- | ------------- | -------------------------------------------------------------- | +| `daGasUsed` | `GasUsed` | Total DA gas used in this transaction. | +| `txHash` | `TxHash` | A unique identifier for a transaction. | +| `status` | `TxStatus` | "pending", "success", "reverted", or "dropped" | +| `error` | `String` | An explanation for reverted, if any | +| `blockHash` | `BlockHash` | The hash of the block in which the transaction was included. | +| `blockNumber` | `BlockNumber` | The number of the block in which the transaction was included. | +| `debugInfo` | `DebugInfo` | Information useful for testing/debugging | + diff --git a/yellow-paper/docs/gas-and-fees/da-metering.md b/yellow-paper/docs/gas-and-fees/da-metering.md new file mode 100644 index 000000000000..3f122cb60c02 --- /dev/null +++ b/yellow-paper/docs/gas-and-fees/da-metering.md @@ -0,0 +1,209 @@ +--- +title: DA Metering +--- + +:::note +This page reflects the implementation of the Aztec protocol as of 2024-03-22. +::: + +# Multivariate Fee Mechanism + +We charge transactions based on their "compute" and "DA" costs. Each transaction is published with: + +- `da_gas_used` + + +`*_gas_used` is used in this document to refer to either `da_gas_used` or any other gas used in the future. + +# DA Layer + +The DA solution in use is ethereum call data. A moderate effort has been made to design a system that can transition to a different solution in the future, e.g. blobs. + +# DA Costs per Transaction + +A transaction consumes a variable amount of DA gas, calculated as: + +``` +da_gas_used = FIXED_DA_GAS + + note_hash_gas + + nullifier_gas + + l2_to_l1_message_gas + + public_data_writes_gas + + log_gas +``` + +where + +``` +DA_GAS_PER_BYTE = 16 + +// 17 * 16; 8 for da_gas_used, 8 for compute_gas_used, 1 for revert_code, times DA_GAS_PER_BYTE +FIXED_DA_GAS = 272 + +DA_BYTES_PER_FIELD = 32 +``` + +and + +``` +note_hash_gas = da_gas_per_field * (number of notes) +nullifier_gas = da_gas_per_field * (number of nullifiers) +l2_to_l1_message_gas = da_gas_per_field * (number of l2_to_l1_messages) +public_data_writes_gas = 2 * da_gas_per_field * (number of public_data_writes) + +DA_BYTES_PER_FIELD = 32 +da_gas_per_field = DA_BYTES_PER_FIELD * DA_GAS_PER_BYTE +``` + +finally + +``` +log_gas = DA_GAS_PER_BYTE * (unencrypted_log_preimages_length + encrypted_log_preimages_length) +``` + +## Deviation from ethereum calldata pricing + +Our `da_gas_used` will be correlated with the actual ethereum gas consumed by the published call, but not equal. + +This is because calculating the exact cost requires us to know how many non-zero bytes are in the calldata, which includes the `da_gas_used` itself. Since the `da_gas_used` must be produced in our kernel circuits, such a recursive calculation would unnecessarily complicate the circuit design. + +Instead, using a fixed cost plus scaling on actual resources consumed dramatically simplifies calculations, is a reasonable approximation, and affords abstraction if/when we transition to a different DA solution. + +## Inclusion in published transactions + +The `*_gas_used` values are included in the [published transaction data](../data-publication-and-availability/published-data.md). + +# Proving + +## Tracking in kernels + +In the private kernel tail, we split side effects into `revertible` and `non-revertible` sets. + +Since the revertible set may be dropped, we must track `da_gas_used` for each set. + +Thus, we have `*_gas_used: u64` in all the "accumulated data" structs throughout the kernel: + +- `PrivateAccumulatedRevertibleData` +- `PrivateAccumulatedNonRevertibleData` +- `PublicAccumulatedRevertibleData` +- `PublicAccumulatedNonRevertibleData` +- `CombinedAccumulatedData` + +## DA metering for private + +We compute the `da_gas_used` for both the `revertible` and `non-revertible` sets in the private kernel tail, according to the formula above. + +## No public metering at present + +It is unknown how the public kernel and public VM will interact on DA gas. Ideally, the public VM would meter DA gas and publish results/reverts to the kernel. + +For the present, the `*_gas_used` fields will be forwarded through the public kernel. + + + +## Recombining for base rollup + +Presently we recombine the `PublicAccumulatedRevertibleData` and `PublicAccumulatedNonRevertibleData` into `CombinedAccumulatedData` in TypeScript (issue [#5013](https://github.com/AztecProtocol/aztec-packages/issues/5013)). + +This recombination includes `da_gas_used` and `compute_gas_used`, computed as + +``` +combined.da_gas_used = non_revertible.da_gas_used + + non_revertible.revert_code == 0 ? revertible.da_gas_used : 0 +``` + +## Content commitment + +The `*_gas_used` values are included in the content commitment for the base rollup. + +The values are up-casted from `u64` to `Field` for the content commitment. + +This is matched when + +## Current state diagram + +The current state diagram is as follows: + +```mermaid + +stateDiagram-v2 + ar1 : AccumulatedRevertibleData + ar2 : AccumulatedRevertibleData + + an1 : AccumulatedNonRevertibleData + an2 : AccumulatedNonRevertibleData + + c: CombinedAccumulatedData + + + state Kernel { + [*] --> PrivateKernelTail + note left of PrivateKernelTail : compute *_gas_used for each set + PrivateKernelTail --> ar1: contains *_gas_used + PrivateKernelTail --> an1: contains *_gas_used + + ar1 --> PublicKernel + an1 --> PublicKernel + PublicKernel --> ar2 + PublicKernel --> an2 + note left of PublicKernel : PublicKernel forwards *_gas_used + } + + state TypeScript { + + ar2 --> c + an2 --> c + c --> BaseRollup: contains *_gas_used + note left of c : sum *_gas_used + } + + state Kernel { + BaseRollup --> [*] + } + +``` + +## Future work + +After [#5013](https://github.com/AztecProtocol/aztec-packages/issues/5013) is fixed, a possible configuration is: + +```mermaid +stateDiagram-v2 + state has_public <> + + ar1 : AccumulatedRevertibleData + ar2 : AccumulatedRevertibleData + + an1 : AccumulatedNonRevertibleData + an2 : AccumulatedNonRevertibleData + + + state Kernel { + [*] --> PrivateKernelInner + PrivateKernelInner --> has_public + has_public --> PrivateKernelTailToRollup : no public component + has_public --> PrivateKernelTailToPublic : has public component + note left of PrivateKernelTailToPublic : partition sets and compute *_gas_used for each + PrivateKernelTailToPublic --> ar1: contains *_gas_used + PrivateKernelTailToPublic --> an1: contains *_gas_used + + ar1 --> PublicKernel + an1 --> PublicKernel + PublicKernel --> ar2 + PublicKernel --> an2 + note left of PublicKernel : PublicKernel accumulates *_gas_used + + ar2 --> PublicKernelTail + an2 --> PublicKernelTail + note left of PublicKernelTail : recombine and sum *_gas_used + PublicKernelTail --> BaseRollup: contains *_gas_used + + PrivateKernelTailToRollup --> BaseRollup: contains *_gas_used + + + BaseRollup --> [*] + } + +``` + + diff --git a/yellow-paper/sidebars.js b/yellow-paper/sidebars.js index a3d758a1ffee..a61ec808c9f2 100644 --- a/yellow-paper/sidebars.js +++ b/yellow-paper/sidebars.js @@ -152,6 +152,7 @@ const sidebars = { type: "category", link: { type: "doc", id: "gas-and-fees/index" }, items: [ + "gas-and-fees/da-metering", "gas-and-fees/fee-payments-and-metering", "gas-and-fees/fee-schedule", ],