- # engine\_getPayloadV5
-
+ # engine\_getPayloadV5
- Obtains execution payload from payload build process
-
- ## Parameters (by position)
+ Obtains execution payload from payload build process
- **Payload id** `string` *required*
+ ## Parameters (by position)
- ***
-
- ## Examples
+ -38005
+ * **message**
-
-
- engine\_getPayloadV5 example
-
+ Unsupported fork
+
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- "0x0000000038fa5dd"
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "executionPayload": {
- "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
- "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
- "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14",
- "blockNumber": "0x112720f",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0xbad2e8",
- "timestamp": "0x64e7785b",
- "extraData": "0x",
- "baseFeePerGas": "0x7",
- "blockHash": "0x1256f99fb899c2de0aeac0c5aa6aad69de188b6a0f4ac29f2d075a53aa3ed0e4",
- "transactions": [
- "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90",
- "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee",
- "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d"
- ],
- "withdrawals": [
- {
- "index": "0xf0",
- "validatorIndex": "0xf0",
- "address": "0x00000000000000000000000000000000000010f0",
- "amount": "0x1"
- },
- {
- "index": "0xf1",
- "validatorIndex": "0xf1",
- "address": "0x00000000000000000000000000000000000010f1",
- "amount": "0x1"
- }
- ],
- "blobGasUsed": "0x60000",
- "excessBlobGas": "0x0"
- },
- "blockValue": "0x10a741a46278014d",
- "blobsBundle": {
- "commitments": [
- "0x85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d0"
- ],
- "proofs": [
- "0x86e25aa4267f8b11aded591be91fed683d2a708b7c77a910ed9e18ab6a2f976429811ea034319321eb06d99f270137f0",
- "0xb0e21a34db02b2dc360e448c6a7315cae1c455cb234fe6c4a9d74a8ee45b8fadc1012b1b3d07912c692782cc642ad200",
- "0xae7b2bba4d5c6e90609182319d5182c4a9bf194420cfcd88b71ca35f5c56e94849510a39afef43234562dd604657fe27",
- "0x87aa48a6e5e3bc244c78f61d73d6c56981e691aae27976af87161d606eeb6ef530be60b4e47906b29cce6c38287e3f9a",
- "0x80aa73320798ba8e5eb4dda65d644566baef3d8ed6b044aa9f8b2847912f48f0b6f347a2a420e7988e08d9602fb7f000",
- "0xa51680ed2b9df881a450dec27afdfebbf413449b1add1615e91df7e4724dca791bc4840a67fdf1362e14d537c1849ea8",
- "0xb71f1b3cd9ee0a04950f49db099260f8955f780bdb13681804b0a5c4c3f7600ed228b06bc26ef47c0cd3281229888491",
- "0x8e199f56faf53b3e409eb337133ab166eb340e450597e36bed68bdae1903fb7dd6e94abffcc439a1f0e230eade7b4e3e",
- "0xa493d99eef20f8ae68f21de7485b35241a04bfc869fda00433ec8d29472dd431f876a40e5452f37f54c5dcad084d1d06",
- "0xa85b29f2f1284d8fb9dcac7ee5b2b0722c3152a0206f670d661bf05aaa958851554799a4c77ccb0d26d6afda7a777a35",
- "0x8c8765ef425e827627772a4788fecd657e2f49b10b21b67bd045b0b7f4bc8dd16fe1f24d1165e6d17355188970d3be02",
- "0x825f8cb054b614692fe329a99f6c796458210876b928e453e337438fc3e3ea149a0f8a748587014e7bd61fdf0c67fe53",
- "0xb4a020ce8a9b5446e327f312bba666e7ac64b721a49d0729c7a64de70150a4b6285445e3510bb159cc3727dffdad80dc",
- "0xadfaa120ef4beb34e3e63aafbc2e278a2298712d45da0076ea453a94424b2418b0f3e32d56f5b55f40cf4060ef0300e3",
- "0x85739b3691d1792aea016ae28920ad0a536cedc29c7970a38312a697c2af76ecb6d6a9b1c324a92e4a474eb97fbc2e10",
- "0x9182bd44f5eeb8b68defdec6fff4306b1e4163e936ea201511125163355d5847fcac3452896de4edf2820b651dc556f3",
- "0xa3fb3d89a5bf575cfd441984b7c43d416f0f37f7120438d43b07907bd114d7421dd7b09bb72aa93e2a3efbeed2e463b8",
- "0x9954d156dfb402a786659b38f97b95e20dd7e3d9863ba8c00e24e0005869f6cadfb642ff53b36aa9d177963af1a3ccb8",
- "0x9362481e998dedf85e71e91be5a69612356f0fa6f4412c6e0135bcc5acd11c8ec293c4de7b732feb1012cc5966c66b35",
- "0xb82561f0a3c9e27af7818876606b5fa7336b68942b0d8828785088e5ac3262af10a27c2a8173bffca5e1b2e226846fb4",
- "0x8cca55ee5bf0cf40d203dcf638324818edc236d4362d44300e62b384ef63a60979616acc11190caeb54fcf6e7fc6dada",
- "0x869b905cdf5f8011910a4a1f51cd807f78a99af6e7c8c49f89cfb44c0b98192815a6fabaa5f37213f7e7b328deb761f6",
- "0x99de2955902ffbcaebe1597675971a7c2379997b1837eb108725b892190fd69ebab76579a33b6511553027d533c37a87",
- "0xaf3a70699c8b8f56ffb9a5162fd5db927aa5181fdfb1a0f34bd3a56a1eebec2551577407d4c2dd559ef448ee43b5601e",
- "0xa094da1fdb7087b566948b0f7b341b22789ac3b68f52f59a8f2c37aa8bc668bcc9cb2c3ec3c34b2d176c17d76910b65a",
- "0xb6dfd926d2d34b7c18a72720e149f376bcfe0a1ce3046db3a62023b0a322631f44f0e60707b47e378d7a6d1b0a0f3b90",
- "0x84397d78f9cdf3664cdf632be52221bd85126455f0fad51b7c16d8ce20907d208c3e525a0eceb73826ec1c2b7f0fad7e",
- "0xb1c728e3e0800896b6ab33fe5c7bf2242387b19883e982fbb27499c6bd160c253f03249a69ba208af7141f714836d226",
- "0xb39027b971f1a9883d0e32d5fa1b78e848c70ef303fa3a1dfa4602d1ba021b4fe09ff88952c2daff5922a5b40c5f9cf4",
- "0xa226dac589e35af5f046bf9b5e4d5c9b20d490de45d7529d7d71767f8adf2c65a7ad0699d3e3c1bf25f6a1518107affe",
- "0x828a0c058a389cdadff01663ea7dc13eed1ee5b0c98b578558b27479ca79b31849103d0fd037f074e4769b66f4f92d39",
- "0xac60270bec8e7d94f50ac2ceaaf146328717144810983e47a8e2e9b56d8e222a478da5c3f9b9cbd37822141b2d153cc7",
- "0x89130390f58756df6d968d0c5603adf16e4f91b2d1be5496c8f9fc4097b07132986ca38bbc30001523a0cab497d4686d",
- "0x9793e67eb7497c13f29cfdc71ed41afc8dc32030e2cd9022472e19d4f546218c698d98419a4ae87dd9cf7706b8482a21",
- "0x8874f9a46848d5125c7ec6364238517f6c4a92871af95d20df06c09296fda06d70d4d580714f0612473264b41491ca1a",
- "0x957c13c871e1e933e4b6dcd271903c2832a1adedd9943b5ab20208974f23902cd5d042dce5f57283287c5d4aa684a5bb",
- "0xb4485bc545f2cb2ed1dadd336cceff81f60b6bfddfcaee2552c62c55451a753087a732275ce1a255ad5e17dd4f474a53",
- "0xa1ca4f7bdb69cee6d3b1606a1039b1153e2f337aa1c9d9159c5837421b60d6d5816df853d7e626c09ca65bf3038d73fc",
- "0x825d5addbabfd84e3e2193ecc6c404c5b98e9cc362759963e1dede1b8df1a34fad93e5d21c8ddb881532aaf1c43377df",
- "0x88726caa7caf5e3ad676b0a19a131d8ce312706004350e822114d4a38fd460176db6b839ccc6b206d89a39a42cf421b4",
- "0xb867bfedd4b880d7534634be08eb2bd5b123c630ff66048d14e5eb14de5598163c535b2441821cc0ab430e9cbd19edb0",
- "0x81a16249eba683ff215056b0ef3b36f35ad94e7108fed53bd2bc41f8365b974540d93d650b5e92bb4e3574105b20f690",
- "0xa34202c988aa23dc3b956d968d686659fc54804b81e2ea9dab17b5b34daa27c6c6b93fd7787683bd926ad9d7c0189838",
- "0x97410ecdad067ba2c45a6bb02a600cf53ca5adf197c79a4f7d753d367615ca84a6fcf761cd22b735294da7f1436a8029",
- "0xa65339363cdf8ec79a17798b856749576c8f227e2a01b88b68acf8681e0b0ea1d7948467f6e37b7da8e0d2a6a940ee92",
- "0xb05c41255daff039227a868b0ea367cdc98391d15cd6c7b2283f7d6f8a34e43605df614cf54e08cb03d398bd0ee01451",
- "0xa3b9f379860c066366a25eb19e4eebc07d7c0aaedf604e119c58e922cb415e01d1a4a6c7aa31d298b185ba17eed0d386",
- "0xb1e233985ca29d71672924b59f128533ccc18c0a4277848922bce2a2192724e49c3eb092acda033982da73390deb8386",
- "0x994b88ae88c4258609131215527d8627d78e0cac281154a078480f82c23c53b3af85edde00e91e28586f0344653b0e07",
- "0x8d7c5faffb81b211d8e5b5504813cba99112a2c7ffb98354590c3751512aebfb6766f0a31470b9a3a3ad437eb63daf6b",
- "0x92f884d9aaace95a7245f9e9e4d2b13583ee9d2a1319ab1144e7f7609043825b6c90e11b28e3231e894294abe3bd9757",
- "0x89fda17e02325a9efd7e9eeb58806a06108a9e3e8cfc88f154181b12ef86f8acd7578446f440eb9084bbfce19f5845ce",
- "0x84e4766c08d0cc41e064d70b1eb6795794171fda12f18d1b5bed92da9be8d6942e8bd2252b62190b7ac8fa2a2463de08",
- "0xa82bc246b1ab17b5c1c0cf4b094e6360f3c45c011b58f42ed67cf5315ee21e9240f95c6cb1575708dd6f4e2ddf910415",
- "0xb25a0ec2b3665d6d9b6c2624ec78238a9b509bfa7e8f8dd5950215544a5dcde5eafb94bcbd808f3fa42eecf7a7cb9042",
- "0xa26ca2b8ec55fdd008f9bcbd9544e6bb207fd7d53cc20f3c999cd172e87624e0fbcf17aa877d525728ce3b3466771f40",
- "0x8149be780972f66e77f04d2a13e45e261ca524f8b606e89acce87b239e7271303d564061eaceff906647859d2d42e5eb",
- "0x84b7449c4c0eeeee21faa9322ab6ca1867f5750b3a131c53a99253ced17f38952ac4354b6803992447d982f4d78c5725",
- "0x88ff8542284eb2ab763f0f7a8575bf3e8df70486f77f2a4e0586ddbc868be3ab55b5de40266a27728f33c6a3d65ef021",
- "0xa41974b8af2300f4bbe5a6c216a43ea843e73e1f5fbe75af4889b839ec4efe526afe135f6eab6527f6259265bcc5960c",
- "0xa46b0c84874f8c68332f0e84a0a79faafc388fdeb042ec594ee791f404593e351c81d99250fbf89d7f546c8723d93e54",
- "0x8941103d53775af3471041e919d2b04381c7b784bb09162d9b5769a1eaf31ef841a8d644acfec115f31aa365390bcd56",
- "0x9407270997a076920807ddbf649989d4f23995e50737e1ec59b0f5c6872e4b00ea9cea6e0db518412c07dc9ab8cfff32",
- "0xacf78c7277eca2556a7a02bf073e263dd76cc893ef34e2a9bf6d863d1f31380d6aa3aaf84be391b7ee67851e7e3e2a51",
- "0xb35739e637e29da4fd97f3ab2f533d6552dc4ebee0b524acd50df904e859e277e30af51c03ea25c334cf1fdd1fe6b7ff",
- "0xadbe185db253b31833ce4c90beae4680cb5f2aaa7e9bed5ffbf70c7802f7cd225e9bf4e1f981606ddbbd7bfd0d8d47d5",
- "0x8760da810a8bc4a541e1510a8aee88ed68ffaeadf78f845e2ca81140baa9825b113b737e785c17466804be37a9087dd0",
- "0xa5f7b22a49b72be48c58fac7f6fe16ce1cd460e6b099ac8332376f0848d9708f51ef5ebca969f88bafc5c0c269bfab7b",
- "0x93fa76c091c53668ab655f95df513ca9ae396d401e87550fb8f0d12a99093837c0d56b263424145ac151d01aa508c561",
- "0xaa98b749610a2ae84e90e439baf19941649bf6ecd95e33bb9f5869e4eab11e545f7d18819fa258b082aacdd90ff2cca8",
- "0x943b478c84fa90232dac1489c55595d3ef58f3f5c2a251752faaf5da156da1bb904894eeacdf4738d92a77f20f47a3e7",
- "0xb23af40d862c4737ccf4f6e5d306562a0f2630f6090eab77fbbafc467801ddcce31226c24bce3e1093f8e4a40c13f61a",
- "0x894be76919ef1a047d420c8711d2b006bd7b74214e8793eeb72dc007ad8051750a06b06cb44567e0e9aaebfe03d7a6d8",
- "0xb5656897119fc6fc298ae89cd6ff817aa5db9f5bc9ddfa2c38efb0f8e63e7821f29a5b5b2f9cb4ad1dba0f42166636fc",
- "0x972a25868d4d3b197c0d1957a112859fa67a582f755d106e4376e90386ce0ecaa671236e92c23361c01d11fbed4ed009",
- "0xa7357c970d0b930186f73e098307d3ff229fee5d7c4349797ff4fa81dbee3e03bc01228d37d9f4d7510083bf094bcc5b",
- "0x8e0b35320d5434438d7a538d5d30212c234b1d7a6e757c8cfc0988122f01d7307635641fed9b8853d58b7a33e5a5c9bd",
- "0x99b2b7659be9eea782d0662db7246ba6ff4926efe58d04061b39d5ed38fbfc17a195e68a879448c931e5a1d9ea07deaa",
- "0xa185a1182223e3b8d325ea70986007697b742f3af0093bf5691aa12ab85cae941bc83f27bd6ffeb669f244011e00e85c",
- "0xb70b9416f6b9593ace7393eb51a732a05b6e4b4a104ed1860746740ba3776f5ac7242c3bb74e07c89abc637ddfe42434",
- "0xad88a5cf5f7c5384a219cfb4c574177cae1beb0b53ed9e3a4664425b0dadf089eb8c1fdb5cccaf53f568c7cbcbccfb7d",
- "0xa54c98768bf964f1c70212a3c00899c915639af499a5013adf751e3d66cfa467eaea8cba94b5d18e77750ad15560b46f",
- "0xa6bf8d0fb3423977a524325f8acde7076c17176a9ee34d0d8450f765bce1fa09a77c6c98dfba566d4c5bbe4e6051537f",
- "0x86423129a9e19c09d3038eb463ca4400d1d0b13085b98fc5ada3eced6ade97a1aa691ba34109dc91573544fb58445d8e",
- "0x80210e5daf4f5404cc1c7f9c06f76a1419b327f5f5535f461a71d133ca8041c76c8fb03069cb588b2481c8715ddebe0b",
- "0xaa4d389bb1ecad854eef5991a1bd7b12c6b36db9636fa7804b2331309c6505cf0580e1a52e9c337e9713f1889ef5536e",
- "0x8c0b9b02a47c690b61671d06acc0e392b735e66c427b2d79cee4b334af5427005e0c93f9c752baa61724a499dfba1457",
- "0xa57bdf53fef5336958a0adb043a76d575bee2403b62782b63725312a1b63ed5b4623133c8dad9409ce8c228146ddfe46",
- "0x98ce0ae4b80e7fb67603c1d6b131aecf14c2b9604b2976f042c5cff8ebaaa949ecda365cfdb0b610eecf92ae395f05c6",
- "0xab41735f9a3822f8b3a8fb0d996b0a5c644d6ebb31802b9cd953b3b25ef85fe183be8ebc8b8165d41a3ced8964bc576e",
- "0x99b63f76d140709975e97e391ecf8c6deb1d3e2fda082bb384cebc431f9d092b443f9cbecd3796d6e6cb0f44bd4fa778",
- "0x88eeb51124121fe5417d1f95fa26d462d1f519507cc9735f60f99e172bd7cec218c391cc962e2bc6175412e3b007f405",
- "0xa098aeb8434774ef374d8caa7e49fd05a5997994f55238521208d04b11315a6de3a41bb49a471a786b8d6fed49fb9779",
- "0xa9107964fba3b866072373f725bdb484c754d74369bebd152cd0e5d6a90ed4ac6a9cc2475eea5cdcaaecfa645df5a8f4",
- "0x9473d4fc231ee8b7d0b92632628cd409fa99fb45f09014b0657fd7c4572e272bfbfeb9261d3d202d560db00dced3a3ae",
- "0xabbf636726c15d26ecdb15c926d269ad09b49f17b1245dcf5d0e2879ca2d7f35169e6e960d540644afe2df8c2ec37e9a",
- "0x8f17d77e20c608736a6a1982029db24b85d1dde720e5c5de218fbddc762e44b02b1a265e6767a672981abc570aab2d2f",
- "0x92b28a50b05b98c8c53d87a3a91207fe1445a81dfeed0f7dd1a4e447982fdd7f1ddd61dd3a8e93906f89de44c07323a8",
- "0xb93f1d97f20d8c05f3893b884af69590322a2d58d26150d34c3f259a391f74f58172a2bd64839aee0465bb186fec88b7",
- "0xa3945b0163af9aee9d180a48716b0950af084f778539ac54834b7f0359b7c905740a26a2612d25b87916fecc3f0d2d5b",
- "0x8e8055ace63ce48067a6aa357a420af43f90bf92acf0819642d9995e77879433ed9459bdb6a9c6a04d13b04fdd5aadbc",
- "0x96375a653966f5490dddbfabff9a1935e7142b3bd1733d2faec596b8da13cd6b612f692733386b73f38c7b3df3bc6385",
- "0x9771793f29aa9d6739771f560798fa64859a50079d6d3dcd8af9c8b1cab281cb8f3dfa08427c2bc07859dc8b1ada4b66",
- "0xad416f02650ddddab08b951cd11e817b5a17b2a9c738daabc279595524fd218fbd4a6d1217f1d6817f9b30ec8c8a570f",
- "0x95fbec142a418f83b71546f9a74039c44c6e508b92b230ee27d335fd3980ac4304c40b11d7aef0844a161c15063ade2a",
- "0xb4496464f1f32954ea8aa4e8dc51befb9610839637e71017c384128d1edf7e58a96f5bd222fdaa6e3e637525a70d7057",
- "0x962c66d4cb46c20d58cbf1ecf9722cf5488c2ec3c60e7f62beaaffb9b3608353d55b7b60ff51fcc08c41d49079d52866",
- "0x8a4ea659e3fc3ff10f3459d80431cf08524310c708680340fdd387b4edbc49feccc9e30a38dac3022ab754992ac8a261",
- "0x904d9bcd5d95f09669c3d65fbd502a3207c95e20b4d03d8daa07d552dd532136f01d298b0cf63a06ae70a01bb7cc0e70",
- "0xa0bcefc936b44761ab6ef3f9d0561fd7c1cc855ed8ffc3e332a73e8d097dff4ab6b0c1ea1d9b93611ceadfad2fb0e320",
- "0x88c34e561a3f14f85322c39d226c8f6cfb80a76476a3b7b4af696b96898c1ef74517871bf1ef44f59ae0f561ff1fdf49",
- "0xafaebecdfd7dc1bf000ca63fb44f417b83990581fd14c9f4104301e5fb2627a174d8c210669d35701d28b909b3e6d86d",
- "0xb5b74e00d55316907bac4cd1785499681a6bcf1c96e380ffa769ec2b524423d85ada7db69081042b1eb848641c4b7f77",
- "0x8ec69c81f7dff09c7d1fc2df4dc4033b71c9b0acb807e75ab325a6827f30f3bbaeafb1f924c394d11d4d9898dc89742a",
- "0xad52b8054a2e1bf2a2dc54cad73e6b067cbd26e2d5744e5f52c4954e0b5f1b6be37c05017f2c54b72529a20be0b0935b",
- "0xa89c96b81b6faaccc75881e7cf4b43e38f57a9e307460838b03805b67c2ea4ce63f93bafeed84e740acfeb9e26c4e456",
- "0x91f7617ae30f94d5120f750013160afcc557b693974af5f73ddfcff4f710097fc35101452036ad858a58fa5bdcb8d5d2",
- "0x99a86af83c6d80c6954d20e1d81c4eb7641d8cfb3096f08de08d742643d6b52494d10a9b9a331b80964d5ac631775a0f",
- "0x858906ff0d1bb8049435918dd3edcbcd7b411ebc5b3a43b0b0feb5f9700f6187fe49fe56d815bbe8cc90db2abe50ffd8",
- "0x9123f13d935e3e7f8f36c8d0bc2849dccd66c1c901fa2ac355ef15c0263ed5cbe837504aff243dc4bdf5857f37fb581e",
- "0xb2aa42127d768c2b2f75a06348ecd9e6507e85e187e56e05c5b936f196bda26284dc297e3e51757613450e0b0a8bd838",
- "0xb62b0cc41bc69077189e67d46a6c4fdd1d579d54e2d397bd8423fb2338ae1b439bf667994ff721f3eb07f7cfe7c24a84",
- "0xa8dbbeb5cf9d40195498c30584c82087b15e9a77ce6d9ac5d9d64c97b14e20642f3a00ba5814d17dfb54554140f4ee5e",
- "0x949b01bb91ad323059a48cb61598b94539582319de819fe7f8466db951bbff241679583f86b116832315aecb6fa84afc",
- "0x8eebdb57fe0d9d2ff92425b2242ad8af84a0fc3227f85d691f64bb3afb38ec83a34b944dc7c34234fd4dc059199d8b6e",
- "0x8652984af3236117a81e12a7b7d877812b992de376c9b0b2397ed72257a555c8aa523b5851b2bebdd581e36514307f4f",
- "0x80e00be2fca9d29605932b05de490903f7e51b825322adf9ce8b34b75d8582fff75558dd5d7f2740955f893d7b064538",
- "0xa31a83633febff3721892795974d2a4770707b4b28ddd1145489b5b1bd478f5b05ea5020b0f7c17adf6226eeb1bf3870"
- ],
- "blobs": [
- "0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc6092c566b31415be66313fbfb2f13fd56212dfe8000d200800000007fffffff84d37e37a3c8aae349928a7775c40a7a570681bcd001be41100000010ffffffef26821fa14f77df20ff1776e6aedf77458d12939700396c2300000022ffffffdd4d043f429eefbe41fe2eedcd5dbeee8b1a25272e0072d84600000045ffffffba261ad7321441ff3bc9240392b1dc0510e08caa5900e7548d0000008cffffff734c35ae642883fe779248072563b80a21c11954b201cea91a00000119fffffee6247db575276a7fa6f1563642bdce3c3e2e750561039ef63500000234fffffdcb48fb6aea4ed4ff4de2ac6c857b9c787c5cea0ac2073dec6a00000469fffffb961e092e81740c8153921f0102ed9718f3661671810e7d7cd5000008d4fffff72b3c125d02e81902a7243e0205db2e31e6cc2ce3021cfaf9aa000011a9ffffee56043712b2a694880615422c03acba8bc8449c220139f7975500002354ffffdcab086e25654d29100c2a845807597517908938440273ef2eaa000046a9ffffb95610dc4aca9a5220185508b00eb2ea2f2112708804e7de5d5400008d53ffff72ac21b8959534a44030aa11601d65d45e4224e11009cfbcbaa800011aa7fffee55843712b2a694880615422c03acba8bc8449c220139f7975500002354ffffdcab012f4af01a8f3837a750ba86d8dafa1033fc69c243ef48ea100046aa0fffb955f25e95e0351e706f4ea1750db1b5f42067f8d38487de91d420008d541fff72abe4bd2bc06a3ce0de9d42ea1b636be840cff1a7090fbd23a840011aa83ffee557c23b7d0ba1dfe9e8b75236b6463db3014aa773d1ef7a6190900235508ffdcaaf7476fa1743bfd3d16ea46d6c8c7b6602954ee7a3def4c32120046aa11ffb955ee1af19b954e5cfce5a153d58985cae84d561f5078de9a0825008d5424ff72abdb35e3372a9cb9f9cb42a7ab130b95d09aac3ea0f1bd34104a011aa849fee557b66bc66e553973f396854f5626172ba135587d41e37a68209402355093fdcaaf6c639f3557494a69e4d764d44424b56a655d3cdfc3f4d1e529046aa128fb955ed75350c35b68f756817b8fd0803fc8fcc566bc1b84e9a56e5308d54252f72abdad32b3df63a8512fbac3e5c8f875f0218579ba9306d34c80a711aa84a6ee557b596567bec750a25f7587cb91f0ebe0430af375260da699014e2355094ddcaaf6b256e1d63b77a741a2dc5d4bd9ce1eae10932ca8184d33a69d46aa129cb955ed6339d60523c5b105fd8580bfab929b841bd29bac2d9a68f13b8d54253a72abdac573ac0a478b620bfb0b017f5725370837a537585b34d1e2771aa84a74e557b58a736a6d3bed269aade2c926a640cc3869f6b10cb369a568ef355094eacaaf6b1372e73324b0afb8139258754477f698ce99a47563d34c75df6aa129d6955ed62571e0bef637c1f2def1771280e64b5997df8b46c4a69a8fbfd54253ae2abdac496fd3d69945e66875afb44cf9c2f4db2a6b58e9864d36c380aa84a75d557b58916bba05df622f53a32c2ec1eb7c47de4f82f42f099a6f2b0255094ebbaaf6b1216386646b9ac129fe2523abceeeede499b22aba1034dffa05aa129d7855ed6241531f21840be4d6b4170d7f95d439f12e1097d01d69c1980c54253af1abdac48132509bb4ee2c301ffae127239ed20a56cd71fc37d384d419a84a75e457b5890164a13769dc58603ff5c24e473da414ad9ae3f86fa709a8335094ebc8af6b12025554c7808f134337b84ac48671a65155e20a4cdc4e14f467a129d7925ed6240336bbe7adf48909273d5bb104d9aacaa67056f5b59c2b8cd04253af25bdac48056d77cf5be912124e7ab76209b355954ce0adeb6b385719a084a75e4b7b58900a6701f764a886a754c234ec0b5d0952946d9e32d370afd742094ebc97f6b120135a164776276fd1615130000eb070cd23877ec1a3e1615285129d7930ed624025403ee7992542257a6f262815573fc241bb3fdf44c2c4490b253af262dac480490c9027df20e6cdacab127822a4ddac7e22c21a86858a36174a75e4c6b589009119204fbe41cd9b595624f04549bb58fc4584350d0b146c2e94ebc98d6b12012232409f7c839b36b2ac49e08a9376b1f88b086a1a1628d85d29d7931ad624024464813ef907366d655893c11526ed63f11610d4342c51b0ba53af2635ac4804885514d69ee4cf5d827dedaa224438efdcd864046558a50575a75e4c6c5890090f363c05eaa0013dbcc8a17c3c7ed007b45d0a64c7b14baeec4ebc98d9b120121d6c780bd540027b799142f878fda00f68ba14c98f62975dd89d7931b36240243a65027057566779aaef4c18e9f19e46cc206bef1bc5305fb23af26367c48048735617395b8331760dab5e59cbd99ab592ed1a3a348a62636575e4c6d0890090e53840cb63dcc56ed32382db8fa99393208676d06614c66acbebc98da2120121c9708196c7b98adda64705b71f532726410ceda0cc298cd597d7931b44240243926d15863c49783e045ad196369cac747cc61d9d95531b4f30af26368948048723663d65256952fec0826954652fb710f4387d9727a63842625e4c6d1390090e45588d22f7a9088038d198d0c255cc49e31d3d8a4c4c7228c5bc98da2820121c893d2c9e9c287383296ff7c97ca1f6bbc0e6bd709598e5f58c7931b45140243911066b95e52749890aacb5baf13a4b9f7c79bd3d2831cd8f19f26368a3804872210cd72bca4e931215596b75e274973ef8f37a7a50639b1e33e4c6d1470090e44219ae57949d26242ab2d6ebc4e92e7df1e6f4f4a0c7363c67c98da28e0121c884335caf293a4c485565add789d25cfbe3cde9e9418e6c78cf931b451c0243910866b95e52749890aacb5baf13a4b9f7c79bd3d2831cd8f19f26368a380487221059851551bf93a40d637d861f3fd21789e3ea010339b3873f4c6d1471090e441f3f1c83505589cad293c134367602570e74165e037368b27f98da28e3121c883d0a4b5f4d8176185cf4489064e262d617946f1803e6d3090031b451c7243910791496be9b02ec30b9e89120c9c4c5ac2f28de3007cda612006368a38e487220f2292d7d3605d86173d1224193898b585e51bc600f9b4c2400c6d1471c90e441e4525afa6c0bb0c2e7a24483271316b0bca378c01f369848018da28e3921c883c830c84d84edc40887114f2e461c8b8973f333dc3b6d3234041b451c734391078f61909b09db88110e229e5c8c391712e7e667b876da646808368a38e687220f1e4f338ec08d72a4d41202e110688c4dca7911cceab4ca74116d1471ce0e441e3b2a79762df147cc5ff0cbea18c776c38f9e65f5d269968c23da28e39d1c883c7554f2ec5be28f98bfe197d4318eed871f3ccbeba4d32d1847b451c73a391078ea35f831649b81b4378ff5d05b1439363925da3346a65bd49068a38e757220f1d36bf062c93703686f1feba0b628726c724bb4668d4cb7a920d1471ceae441e3a663f31e3f446953960c9d6964474300df43ab29179970f642a28e39d6c883c74b53f8952b5f3529e3e600fac084e429b93398ae2c32e39086451c73ae91078e953403830394ccd67f98c81d7900267b6d1373b85565c8c50d8a38e75e220f1d29680706072999acff31903af2004cf6da26e770aacb918a1b1471cebc441e3a525c2064bb2995dcb62fe69ddbf6f815aefa113d529724b83728e39d79883c74a344532223298e3c242c9363afe44e5358a064d6a22e4b146f51c73af41078e94514b89cf3297efb0025ecef57befaceabed0c09415c97ccdfa38e75e920f1d289297139e652fdf6004bd9deaf7df59d57da181282b92f99bf471cebd241e3a51252e273cca5fbec0097b3bd5efbeb3aafb4302505725f337e8e39d7a483c74a2431d74046225a5ab8fc2da2b5ee349d5a14a2a607e4c00afe1c73af4a078e944763ae808c44b4b571f85b456bdc693ab429454c0fc98015fc38e75e940f1d288e536f59c55fcbed9bbd7cb2cfaf309d62feccf41c9301cff971cebd291e3a511b32f10c3795fa5def47bf8d9754bf62c0a9dc4436260543f3e39d7a533c74a23565e2186f2bf4bbde8f7f1b2ea97ec58153b8886c4c0a87e7c73af4a678e9446a57d6898b2e4bfa74ebc45e55495bb2fd53b36cd59816b3d08e75e94df1d288d33bbf6bc332fa77a1a44ee4a289158df553a935a8302f0ba21cebd29ce3a511a5039130333c5771fb1563f13d088943e55394c74d605fbb4539d7a53ac74a23490722606678aee3f62ac7e27a111287caa7298e9ac0bf768a73af4a758e9446920e44c0ccf15dc7ec558fc4f422250f954e531d35817eed14e75e94eb1d288d241c898199e2bb8fd8ab1f89e8444a1f2a9ca63a6b02fdda29cebd29d63a511a4839130333c5771fb1563f13d088943e55394c74d605fbb4539d7a53ac74a23490722606678aee3f62ac7e27a111287caa7298e9ac0bf768a73af4a758e9446920705e657bec3f017d25c2773a18af214f91742f5517f0754f75e94eb2d288d23f6ccf23a4aee085b2184b166c27bc6a99cf2abaa72fe28e9febd29d66a511a47d65b09ff634238e1bfd5c54d045d6fd2e4a97d14b5fc6c140d7a53ace4a2348f9577398993ea99eefc77ed198820c22574171fe93bf8f2682af4a759d944691f13af989df53b5c0975bc3cb28fa766ca92f2659247f1ff1065e94eb3c288d23e102056c6b7dce03e6844dbe49eb4b014d0a8f0e45fe41860dbd29d679511a47c1040ad8d6fb9c07cd089b7c93d696029a151e1c8bfc830c1b7a53acf2a2348f820815b1adf7380f9a1136f927ad2c05342a3c3917f9061836f4a759e544691f04102b635bee701f34226df24f5a580a685478722ff20c306de94eb3ca88d23e082056c6b7dce03e6844dbe49eb4b014d0a8f0e45fe41860dbd29d679511a47c1040ad8d6fb9c07cd089b7c93d696029a151e1c8bfc830c1b7a53acf2a2348f8200d6d738c49e37c58e035ba72c91e7b3d5005ed7c906327704a759e554691f03f1adae71893c6f8b1c06b74e5923cf67aa00bdaf920c64ee094eb3caa8d23e07e35b5ce31278df16380d6e9cb2479ecf54017b5f2418c9dc129d679551a47c0fc6b6b9c624f1be2c701add39648f3d9ea802f6be483193b8253acf2aa348f81f862e99171749a4845d021cf248845dbcfaca133c606341b05a759e555691f03ef51e57b8fbf9713436d09c64106e9df9a0584c3890c69da0c4eb3caabd23e07dd2fdd4fcc5590a93ea6d9b47a0431e72eb74be30f18d558199d679558a47c0fb95fba9f98ab21527d4db368f40863ce5d6e97c61e31aab0333acf2ab148f81f724b8797de2ca527b2682cf9e00725c4b58971e83963570467759e556391f03ee3232188692facd21c9d201bb804a9b165bf262c6fc6afaccfeb3caac823e07dc5464310d25f59a4393a403770095362cb7e4c58df8d5f599fd679559047c0fb8a18987a519515cb2a414696d80904ed91a8db0dbc1ac05740acf2ab218f81f7133130f4a32a2b9654828d2db01209db2351b61b783580ae8159e556431f03ee266261e94654572ca9051a5b602413b646a36c36f06b015d02b3caac863e07dc4c50d62b397f10dc09d6fadeb83e859487f31ac9ddd6045e066795590d7c0fb8972dbeaf1fd4843acb7abbe5687369510a9277efb8ac0a600dcf2ab21bf81f712d5b7d5e3fa9087596f577cad0e6d2a21524efdf715814c01b9e556437f03ee25a430d152c28736de5b7b5bd99c4036c24f6221adfb02b24383caac870e07dc4b3122c830527495e833c31a32b7e650044988691bc6057ec71795590e2c0fb89652459060a4e92bd0678634656fcca0089310d2378c0afd8e2f2ab21c581f712ca48b20c149d257a0cf0c68cadf9940112621a46f1815fb1c5e556438b03ee25941d7670d610ad76d1ae534153e9862a1f7076e9e002c1078ccaac871707dc4b273aece1ac215aeda35ca682a7d30c543ee0edd3c005820f1995590e2e0fb8964e01ec1c0519185dfe86132d479c76d0786e1e037d0b05c2342ab21c5d1f712c9b03d8380a3230bbfd0c265a8f38eda0f0dc3c06fa160b8468556438ba3ee2593607b07014646177fa184cb51e71db41e1b8780df42c1708d0aac871747dc4b26c0f60e028c8c2eff430996a3ce3b683c370f01be8582e11a15590e2e8fb8964d81ec1c0519185dfe86132d479c76d0786e1e037d0b05c2342ab21c5d1f712c9b03d8380a3230bbfd0c265a8f38eda0f0dc3c06fa160b8468556438ba3ee259360071959f31c7a0259519179df1412461633c33b3fc172310bac871748dc4b26bf0e32b3e638f404b2a322f3be28248c2c6786767f82e46217590e2e91b8964d7e1c6567cc71e809654645e77c50491858cf0cecff05c8c42eb21c5d23712c9afc38cacf98e3d012ca8c8bcef8a09230b19e19d9fe0b91885d6438ba46e25935f871959f31c7a0259519179df1412461633c33b3fc172310bac871748dc4b26bf06f3d971065a2cde1fef563da78a6eac124a9c3f52e47c57690e2e91c8964d7df6a8d86cda1a81e7bcab0eface7abfd7cf595e3e75c912eee21c5d23a12c9afbd612d664819b2bfaf62280751c5b622f4976e23cbb92401dd438ba47525935f794e6d253d09c802169116369b81ca6de3db1ea3947249a7bb871748eb4b26bef128eca326e9f286e4eef2952ef9f303c2627fa325e494f3780e2e91d7964d7de151d9464dd3e50dc9dde52a5df3e60784c4ff464bc929e6f01c5d23af2c9afbc22fc4e5487e2c9e4b88907cb3de2a37043640e894925571e138ba475f5935f7835f89ca90fc593c971120f967bc546e086c81d12924aae3c271748ebeb26bef064b25edcecf14fbe5ef081ac76f07040b8545fe4f49576b85e2e91d7e64d7de0b225e344a748c7a83aad65d86d46c3011b6ce589b92b07b0cc5d23afdc9afbc1544bc6894e918f50755acbb0da8d860236d9cb1372560f6198ba475fb935f782a158b29d6a8946cc6781f9e13480ee841877bbe6b4ac390341748ebf826bef0532b1653ad5128d98cf03f3c26901dd0830ef77cd6958720682e91d7f04d7de0a6562ca75aa251b319e07e784d203ba1061deef9ad2b0e40d05d23afe09afbc14c386ba7621b05e8eb8dc3189236d56a06e8204f57561e25a1ba475fc235f7829770d74ec4360bd1d71b8631246daad40dd0409eaeac3c4b43748ebf846bef052e6dc0f635427a266603d28a40d1b3d0164cc3995a587a3a87e91d7f09d7de0a5b679445175b56cf83d46b3c7999c5c82745c98eb1b0f61910d23afe14afbc14b55b3ae2db8d1021bf759ca0eb29e9b84937d5796061edd622a475fc2a5f78296942881e63f082c636b7ff69ce4a31988d1bed4ebdc3dd504648ebf855bef052d111229574b7680f253cc4fb948ac15914e41cf97887bc448d91d7f0ac7de0a5a122452ae96ed01e4a7989f7291582b229c839f2f10f78891b23afe158fbc14b42448a55d2dda03c94f313ee522b0564539073e5e21ef11236475fc2b1f78296841527045291a2fbe1b2ee049c4c68f0a1cd2a27c13de3c86d8ebf8564ef052d072a4e08a52345f7c365dc093898d1e1439a544f827bc790db1d7f0ac9de0a5a0e549c114a468bef86cbb8127131a3c28734a89f04f78f21b63afe1593bc14b41c354a7b41637a61c564364cda59a5ad0915939a06ef1fe76d75fc2b28782968376a94f682c6f4c38ac86c99b4b34b5a122b27340dde3fcedaebf85650f052d06e613c45b2644c09cd5d9f5b615cf4dc1f0290c418bc8141b6d7f0aca2e0a5a0db4e8ae4119efa96528804debab047e038b163e42e7904276eafe15946c14b41b5292820d01457af5cdccfe56d56ede86c0f0a2459f209f2de5fc2b28e82968369525041a028af5eb9b99fcadaaddbd0d81e1448b3e413e5bcbf85651d052d06d230b2dbed27c1402b4005bdad5215c9aae86aed64c8296f7a7f0aca3b0a5a0da36165b7da4f828056800b7b5aa42b9355d0d5dac99052def4fe15947614b41b464eddc86175678364ccdd1ead3eb54ea64dee119020a761eafc2b28ed2968368b29cde96fc13189816680655273c8c547481e7f1d415067d6f85651db52d06d15539bd2df82631302cd00caa4e7918a8e903cfe3a82a0cfadf0aca3b6a5a0da2a3349fe6bdb28a8bd66c7bd41c5813d17ccbc58720543435ce159476e4b41b4536693fcd7b651517acd8f7a838b027a2f9978b0e40a8686b9c2b28edc968368a6593a525c430525ad67e51cff0c631c59df33bdc5150eb17485651dba2d06d14b3e86fd655c6cce129c9061f60f2460ae6aa9d7872a1f06ea0aca3b755a0da295092053778f3c1edd05e6ebe414a6e95781960b0b543fb1d5159476ebb41b45291240a6ef1e783dba0bcdd7c8294dd2af032c1616a87f63aa2b28edd768368a5224814dde3cf07b74179baf90529ba55e06582c2d50fec7545651dbaed06d14a449029bbc79e0f6e82f375f20a5374abc0cb0585aa1fd8ea8aca3b75da0da29481e179025ca2470882b34e63940ccbd72c5a30cb243fcc15259476ebc41b4528f3c2f204b9448e1105669cc7281997ae58b46196487f982a4b28edd788368a51e04709943fef444d87999c0dcf9911dc5c2ce8ec60ff4a94a651dbaf206d14a3b08e13287fde889b0f33381b9f3223b8b859d1d8c1fe95294ca3b75e40da2947611c2650ffbd11361e6670373e64477170b3a3b183fd2a5299476ebc81b4528ec2384ca1ff7a226c3ccce06e7cc88ee2e167476307fa54a5328edd790368a51d84709943fef444d87999c0dcf9911dc5c2ce8ec60ff4a94a651dbaf206d14a3b01a25812cb4eb1dc6fffe43972881e0b3061434befe96cd4da3b75e41da29475f344b025969d63b8dfffc872e5103c1660c28697dfd2d9a9b476ebc83b4528ebe689604b2d3ac771bfff90e5ca20782cc1850d2fbfa5b35368edd790768a51d7c5d3e62127dbb70efccb844b13a6d2d92dce401f4f4b80e6e1dbaf20fd14a3af7468f1cd1d1d964976636b15a6b388320660a5fe6e971c0dd3b75e420a29475ed193092507a154be699338aaccccf2e3b78571bcad2e525bb76ebc8424528ebd9326124a0f42a97cd32671559999e5c76f0ae3795a5ca4b76edd790848a51d7b264c24941e8552f9a64ce2ab3333cb8ede15c6f2b4b9496eddbaf210914a3af645596eb30a70ce1ec96627d5e5cd799d66efb3a53972ad1dcb75e421329475ec737402f0e247c4690f98b22b4b00d5ba78a38d0a42e5747ba6ebc8427528ebd8d6e805e1c48f88d21f3164569601ab74f1471a1485cae8f74dd79084ea51d7b1a691314e568539cfbb2f2b2cab6939698d5259e8db95ec2eabaf2109e4a3af6335e388277a709bcaf32ab8d8d6385552c568d991872bf29d675e4213d9475ec6548835d9c2475fc16321d4312bd68d253595d8e2de57ff7adebc8427c28ebd8c91d1913e51f4e7ae43100ae1d712fcca15efd7858cb01935cd79084f951d7b1913a3227ca3e9cf5c862015c3ae25f9942bdfaf0b1960326b9af2109f2a3af63220076a841539c6e4890c8e06dbb1d5a8028383d602c07f1745e4213e6475ec64300ed5082a738dc912191c0db763ab50050707ac0580fe2e8bc8427cc8ebd8c8601daa1054e71b922432381b6ec756a00a0e0f580b01fc5d179084f991d7b190c03b5420a9ce372448647036dd8ead40141c1eb01603f8ba2f2109f323af63218076a841539c6e4890c8e06dbb1d5a8028383d602c07f1745e4213e6475ec64300ed5082a738dc912191c0db763ab50050707ac0580fe2e8bc8427cc8ebd8c8601daa1054e71b922432381b6ec756a00a0e0f580b01fc5d179084f991d7b190c03b5420a9ce372448647036dd8ead40141c1eb01603f8ba2f2109f323af63218002ba9a0072d0cb4895a695b313b8a822e47fbc2907f3185f4213e6485ec642ff05753400e5a196912b4d2b6627715045c8ff78520fe630be8427cc90bd8c85fe0aea6801cb432d22569a56cc4ee2a08b91fef0a41fcc617d084f99217b190bfc15d4d00396865a44ad34ad989dc5411723fde1483f98c2fa109f3242f63217f82ba9a0072d0cb4895a695b313b8a822e47fbc2907f3185f4213e6485ec642ff05753400e5a196912b4d2b6627715045c8ff78520fe630be8427cc90bd8c85fe03ab8d8c98a9554dd366b94bce48830b3cc31663efcc7bbd184f99218b190bfbf01840a3feb8d2c72399d5171bf6e896244a5287af9911ba409f3243263217f7d0308147fd71a58e4733aa2e37edd12c4894a50f5f322374813e64864c642fefa061028ffae34b1c8e67545c6fdba25891294a1ebe6446e9027cc90c98c85fdf40c2051ff5c696391ccea8b8dfb744b12252943d7cc88dd204f992193190bfbe81840a3feb8d2c72399d5171bf6e896244a5287af9911ba409f3243263217f7d0308147fd71a58e4733aa2e37edd12c4894a50f5f322374813e64864c642fefa061028ffae34b1c8e67545c6fdba25891294a1ebe6446e9027cc90c98c85fdf404e1778a29cf8bbd49b6ee0d7ada2d91cfed69979c88f7605f992193290bfbe7f284149f21053fa6103a3e9a751a3da34a9ef8ef09120900cf3243266217f7cfd508293e420a7f4c20747d34ea347b46953df1de122412019e64864cc42fef9fa2d17807517b26c3bdb55ce953ced90cd540097bf4483e434cc90c99985fdf3f35a2f00ea2f64d877b6ab9d2a79db219aa8012f7e8907c869992193330bfbe7e640705a81352c33a73a1d624cea146b2ffc44bafa121134d43243266717f7cfcb0cf30daf40baea064100ec91ca86fe5aa4cbd1f124240da964864ccf2fef9f9519e61b5e8175d40c8201d923950dfcb54997a3e248481b52c90c999e5fdf3f2a33cc36bd02eba8190403b2472a1bf96a932f47c4909036a59219333cbfbe7e5467986d7a05d750320807648e5437f2d5265e8f8921206d4b243266797f7cfca85b4333a0e211231bdcd4f1149ece0da4f8ff7b0f42427e974864ccf3fef9f94f4298bfee9a84c8ef86700a2133fa43449e41521b8486a12f90c999e8fdf3f29d1143d88a0b6c1496d9a63c3a5e52ae83e8c50034090ee660219333d2fbe7e5392287b11416d8292db34c7874bca55d07d18a0068121dccc0432667a5f7cfca72450f62282db0525b6698f0e9794aba0fa31400d0243b9980864ccf4bef9f94e416311cfd31c3276e99f809cae8f39c19f26a5d9d4878d7020c999e98df3f29c72c6239fa63864edd33f01395d1e73833e4d4bb3a90f1ae0419333d31be7e538e58c473f4c70c9dba67e0272ba3ce7067c9a9767521e35c0832667a637cfca71c3d9b4096647bbe2c9c86764f3dfb08ca3f9548e743c85c1164ccf4c7f9f94e370748d9d99f59ff1105d314967254398f2b6cedcb87925c23c999e990f3f29c6d0e91b3b33eb3fe220ba6292ce4a8731e56d9db970f24b8479333d321e7e538da1d2367667d67fc44174c5259c950e63cadb3b72e1e49708f2667a643cfca71b43a46ceccfacff8882e98a4b392a1cc795b676e5c3c92e11e4ccf4c879f94e368009ff646cc0273c829f7715f1ba1c0ed631138b57927663d999e99103f29c6cf013fec8d9804e79053eee2be374381dac622716af24ecc7b333d32207e538d9e027fd91b3009cf20a7ddc57c6e8703b58c44e2d5e49d98f6667a6440fca71b3c04ffb23660139e414fbb8af8dd0e076b1889c5abc93b31ecccf4c881f94e367809ff646cc0273c829f7715f1ba1c0ed631138b57927663d999e99103f29c6cf013fec8d9804e79053eee2be374381dac622716af24ecc7b333d32207e538d9e027fd91b3009cf20a7ddc57c6e8703b58c44e2d5e49d98f6667a6440fca71b3c04ffb23660139e414fbb8af8dd0e076b1889c5abc93b31ecccf4c881f94e367802c089f78d8d64ae1c4378713981f155dbd7b11762767e19a9e99104029c6ceff58113ef1b1ac95c3886f0e27303e2abb7af622ec4ecfc3353d322080538d9dfe3c34d69039bbae3edda4444656da7d71a22ea1d59da12a6b7a644101a71b3bfb047c05cd49d9df35880eb084a41322ddf09f9fa83b43f8d7f4c882044e3677f508f80b9a93b3be6b101d6109482645bbe13f3f507687f1afe99104089c6cefea11f0173527677cd6203ac212904c8b77c27e7ea0ed0fe35fd322081138d9dfd423e02e6a4ecef9ac40758425209916ef84fcfd41da1fc6bfa644102271b3bfa847c05cd49d9df35880eb084a41322ddf09f9fa83b43f8d7f4c882044e3677f501b931256119e6968ce9c388c78c283b8c03651046880beff9910408ac6cefe9f372624ac233cd2d19d387118f1850771806ca208d1017dff322081158d9dfd3e6e4c49584679a5a33a70e231e30a0ee300d94411a202fbfe6441022b1b3bfa7c68aaeb5d6355cdfe41a7ec5bbc7245c0adf4e42044079bfdc88204573677f4f75d682f679d0e1eb4501600af6f42b37c082c243d8810dbfc910408af6cefe9ed46e2b77c107ec0206cf22956d4e38ef2bc9aa47810235bfa2208115fd9dfd3d919d7c7a4f76002f8a6aa7aa5a02545e02577a4ed20485bf5441022c0b3bfa7b133af8f49eec005f14d54f54b404a8bc04aef49da4090b7ea88204581677f4f62675f1e93dd800be29aa9ea968095178095de93b481216fd510408b02cefe9ec45ad095d491629a7d0219fd24f78856fbd7ff8366024483ab208116069dfd3d8741b38455f927b7b1d0fa2241e56ed5f25c4162c9048aab5741022c0e3bfa7b0d0f796158c8b1f21b6eba6c7bc13bd3df64c5218f0916faaf8204581d77f4f6191ef2c2b19163e436dd74d8f78277a7bec98a431e122df55f0408b03aefe9ec323de5856322c7c86dbae9b1ef04ef4f7d9314863c245beabe08116075dfd3d86407dd63731bf2139342998bd6003cc6f5d26b687548b9797d1022c0ecbfa7b0c70fbac6e637e42726853317ac00798deba4d6d0ea9172f2fa204581d97f4f618e1f758dcc6fc84e4d0a662f5800f31bd749ada1d522e5e5f4408b03b2fe9ec31c3eeb1b98df909c9a14cc5eb001e637ae935b43aa45cbcbe881160765fd3d863809e88fde9583bbebf65ee557fa2a9757d2f8e3518b993bd2022c0eccfa7b0c6f13d11fbd2b0777d7ecbdcaaff4552eafa5f1c6a3173277a404581d99f4f618de27a23f7a560eefafd97b955fe8aa5d5f4be38d462e64ef4808b03b33e9ec31bc4f447ef4ac1ddf5fb2f72abfd154babe97c71a8c5cc9de9011607667d3d863782a9b56962e9e417732b47d7799079d77dbd09115b995612122c0ecd0a7b0c6ef5536ad2c5d3c82ee6568faef320f3aefb7a1222b732ac2424581d9a14f618dde367fb30590db889497981dd65a7c9dda1b84a053e65728858b03b3439ec31bbb6cff660b21b711292f303bacb4f93bb4370940a7ccae510b160766873d863776661124c319d0a50a2b269f5160509f631a54dd4c995e46172c0ecd0f7b0c6eeb5834a2330a03cccc2313669ab6ff66c0e0ec169632be302f581d9a1ff618ddd53c7b9d12ea6a1c5012ecf52d645cf57c6e1a8929657e045fb03b3440ec31bba9050992d2ab36bb57f2a01252bf1812f388776e4fcafdacc060766882d86377510a1325a5566d76afe54024a57e3025e710eedc9f95fb5980c0ecd105b0c6eea214264b4aacdaed5fca80494afc604bce21ddb93f2bf6b30181d9a20b618ddd44284c969559b5dabf95009295f8c0979c43bb727e57ed660303b34416c31bba8850992d2ab36bb57f2a01252bf1812f388776e4fcafdacc060766882d863775102d44b3023d39edb620c8724fd960866bbb3025f65fb73c0d0ecd105c0c6eea1f5a8966047a73db6c4190e49fb2c10cd776604becbf6e781a1d9a20b818ddd43e412524b5cb4a39904fe7f1375be041a99902f3d67ede94353b34417131bba87b0e5ca2186cf6f5d86c960a66ae1eab4dde4843a9fdbecc6b766882e3637750f51cb94430d9edebb0d92c14cd5c3d569bbc908753fb7d98d6ecd105c6c6eea1ea39728861b3dbd761b258299ab87aad3779210ea7f6fb31add9a20b8d8ddd43d472e510c367b7aec364b0533570f55a6ef2421d4fedf6635bb344171b1bba87a871dc7a33a5d1e03e9626ce62d848dcd890c6969cdbee6ab866882e3737750f4f6fcb4d1422064334f913c4bda6efe1abcdcf8936b7de7971cd105c6f6eea1e9d6ba8f2d51a6f0921beedb173443deb5247e16e6a6fbe96e49a20b8dfddd43d3963643e570b4094fb4aa18ade7ed9fe9f3c0538d1df7ed1ca344171c0bba87a7152dad55aece3acae62093db4f4122539244ccda0beff47956882e3827750f4e131c80362b029dc1490d8a361de82726cf4dbf73e7e00332bd105c705eea1e9c1639006c56053b82921b146c3bd04e4d9e9b7ee7cfc006657a20b8e0bdd43d382533266379709f30a1028b57f7067f1ae7fb238f6f80270b044171c18ba87a7033277251c047668cbed1792f6d72e0b57aba6cdeaf0068561882e3832750f4e0564ee4a3808ecd197da2f25edae5c16af574d9bd5e00d0ac3105c7064ea1e9c0a55eeed1ce83c25e7812473d3531655595add93a8c01bb98720b8e0cad43d381337f032e6a6dace86cf0f0f9e9c8ad2ad61fd834e8039170f4171c196a87a70256fe065cd4db59d0d9e1e1f3d3915a55ac3fb069d00722e1e82e3832d50f4e04a6bd3244771cdbcd309026672688972b03438693700e6003e05c7065ba1e9c09363b8a13bb9fdfc5ddecaf4dcc7710d5b14b32e6b01cda47d0b8e0cb843d3812553839b244a5e7b738a5c11b1854042b0d5a8b8d3039cecfb171c197187a7024933198ef56b1f799ee17e4b5b00dead5c5793cda3073b7df72e3832e40f4e049166331dead63ef33dc2fc96b601bd5ab8af279b460e76fbee5c7065c81e9c09225878948282e0693352bf5563f9d8dd6c0a9192891cef9bddb8e0cb913d3812433d0381b1dc23551e7244d2bfea0fe2d2c165810f39e0dbbc71c197237a70248506195c108ea92cf4b14fcd77ca7deda02f0d5e1b73c35b79e3832e47f4e049090c32b8211d5259e9629f9aef94fbdb405e1abc36e786b6f3c7065c8fe9c09212186570423aa4b3d2c53f35df29f7b680bc35786dcf0d6de78e0cb91fd381242430cae084754967a58a7e6bbe53ef6d01786af0db9e1adbcf1c19723fa70248486195c108ea92cf4b14fcd77ca7deda02f0d5e1b73c35b79e3832e47f4e0490904f3ddabeab88214df6bfd6f1461bdc008dee1f6b786d133d7065c8ff9c09211f2a8e0e2a2d72c553ba45d5da8295dffbc81e9ad3f0dbca7be0cb92003812423d551c1c545ae58aa7748babb5052bbff7903d35a7e1b794f7c19724007024847a364a91558c2d9806b5dd7f6200b5a7e9ccbcc74cc370cdf0832e4801e04908f36c9522ab185b300d6bbafec4016b4fd399798e9986e19be1065c9003c09211e6653c9e030718e2d2a43c257ff934c7a1df3579300dc4dbc30cb92008812423cb568b94b2e494485d153e72f7e8c7b73e6aad4e5d1b8b5b871972401202484795392982129f8b1371f7430de7c7ed9677819cf8b737185b0f32e4802504908f29725304253f1626e3ee861bcf8fdb2cef0339f16e6e30b61e65c9004a09211e5270b860f7548ed07fa9d25f97161481d8b2b63ed9dc63103dcb92009512423ca36d831a9b7f8023b7206ae72622872bac11aed9b0b8c7c47c9724012b2484794567188de3d562ca260d9bf6443b6c7f52cfa00f5e71912cfa2e4802574908f2895a43747481281703e7fe14806d3726a04b827ab9e323fdf55c9004af9211e51140994195d8b2b0bf9cc250f8d0cc753b43475170c6499febb92009602423ca210d44dbd887c7e437064ac9e997f7127132d0fede8c94e3d8724012c1484794411a89b7b10f8fc86e0c9593d32fee24e265a1fdbd1929c7b0e4802582908f288235136f621f1f90dc192b27a65fdc49c4cb43fb7a32538f61c9004b05211e51046a26dec43e3f21b832564f4cbfb893899687f6f464a71ec39200960a423ca2086060163552e0c6283172c69175cf4f0dd95249e5c94fe18824012c158479440f4cd285177c240f082fabb51ae1fcc6165ee6efc892a167114802582c08f2881d25b762dbceaaa0c82c1d922dba57b4276a103b8e254472239004b05911e510394b6ec5b79d554190583b245b74af684ed420771c4a88e447200960b223ca207222efe41c110d05d87d3c70aedfbcf89854834a3595136c8f4012c165479440e345dfc838221a0bb0fa78e15dbf79f130a906946b2a26d91e802582ca8f2881c617d1e91d1a969a19c1b7eab375520a5bfe4f84d3544f563e004b05961e51038b2fa3d23a352d3433836fd566eaa414b7fc9f09a6a89eac7c00960b2c3ca207165f47a4746a5a686706dfaacdd548296ff93e134d513d58f8012c165879440e2c4aa1a195ab175385da857d93a0ee7ada9ebe8297a27c55f102582cb1f2881c5721559bd82c9129c381d1231f383b1dafe9bf612c44fa4fe304b05964e51038ad42ab37b05922538703a2463e70763b5fd37ec25889f49fc60960b2c9ca20715a1168c80d88a729c5d40ab474d74a9eba533fe0ae13eae38d12c165949440e2b322d1901b114e538ba81568e9ae953d74a67fc15c27d5c71a2582cb292881c56645a32036229ca717502ad1d35d2a7ae94cff82b84fab8e344b05965251038acc175899191b9bd0e66d1bcb9eb0b31dcd4641616d9f58c069960b2ca5a20715972eb132323737a1ccda37973d61663b9a8c82c2db3eb180d32c16594b440e2b2e5d6264646e6f4399b46f2e7ac2cc7735190585b67d6301a6582cb296881c565c46d72175b34109eb35a484ed7bf71664de4d6769fac7a74db059652e1038acb719c09b983ce4968e380f31d2ee4c54c468dd2ad0f590f29c60b2ca5d2071596d3381373079c92d1c701e63a5dc98a988d1ba55a1eb21e538c16594ba40e2b2da67026e60f3925a38e03cc74bb9315311a374ab43d643ca7182cb297481c565b45a17356ebd8737298d3fb68f68c0ce1df32bb284ac8938e4059652ea038acb674040c38a5170f10ae7459516c7dfc4369299c106591415c90b2ca5d5071596cd0c93dfc1794464cd9b515225861db067d175de09b229cf9316594bab0e2b2d991927bf82f288c99b36a2a44b0c3b60cfa2ebbc1364539f262cb297561c565b32324f7f05e51193366d4548961876c19f45d77826c8a73e4c59652eac38acb664649efe0bca23266cda8a912c30ed833e8baef04d914e7c98b2ca5d5871596cc8555054c46aa8cf9181db4a5058392e77c3a03c98229e9d326594bab1e2b2d98f36b30235abb421dad07cbc98a6d084ea3382d52d453ede65cb297564c565b31d6d66046b576843b5a0f979314da109d46705aa5a8a7dbccb9652eac98acb663a66de618385330a230eb91a5a91a03ba37a4db0b214fd1d982ca5d5941596cc7359cf1bb3e0c896fdea385cad199e9f41a0ddbd6129fbdf31594bab292b2d98e53fb0901497f3b0b3a136e152299b667dedfdd6bf53f96263b2975653565b31c90b7378d60649e41f0f33ea9c4994f4f6883e097ba7f468c8652eaca7acb6639116e6f1ac0c93c83e1e67d5389329e9ed107c12f74fe8d190ca5d594f596cc7222dcde3581927907c3ccfaa712653d3da20f825ee9fd1a32194bab29eb2d98e445b9bc6b0324f20f8799f54e24ca7a7b441f04bdd3fa346432975653d65b31c884349e60d3b00c4a8c004d1bc8fad77633022f3b77f48308752eaca7bcb66390f12a624c74c640c094ccfcb7115b916c10c88436bfe92050fa5d594f896cc721d254c498e98c81812999f96e22b722d82191086d7fd240a1f4bab29f12d98e43a4a98931d31903025333f2dc456e45b0432210daffa48143e975653e25b31c87421437ee73982e30233448380a426de031084775cf491cc7e2eaca7c5b66390e74286fdce7305c60466890701484dbc062108eeb9e92398fc5d594f8b6cc721ce11205449bc6e0ec099d835fa86f9a006ee543970d248d5f9bab29f17d98e439b2240a89378dc1d8133b06bf50df3400ddca872e1a491abf375653e2fb31c873644815126f1b83b026760d7ea1be6801bb950e5c3492357e6eaca7c5f66390e6c1514fafab9d2f8bc9b87d7cc2e2b28321ee42783924853ced594f8bfcc721cd72a29f5f573a5f179370faf985c5650643dc84f072490a79dab29f17f98e439ae5453ebeae74be2f26e1f5f30b8aca0c87b909e0e49214f3b5653e2ff31c8735c34ba3082a4fa489ca904e65967b7698ba363981992444277aca7c5ff6390e6b76974610549f491395209ccb2cf6ed31746c73033248884ef594f8bfec721cd6e5efb1ab76a4ba52a70d9c15d953bce2939d0bc634912addfb29f17fe8e439adb4a088e1baaf9cd0cae79aab320d5c44d1fe3d4c39226ffc0653e2ffe1c8735b5202374e42c561cd129b97d5e3809b094ec0a0584244fa381ca7c5ffd390e6b694046e9c858ac39a25372fabc70136129d8140b08489f470394f8bffa721cd6d20ca02c3d87baf5fc73ac1d70d684ea4e5c6a720d9140320829f17ff5e439ada31940587b0f75ebf8e7583ae1ad09d49cb8d4e41b2280641053e2ffebc8735b463280b0f61eebd7f1ceb075c35a13a93971a9c8364500c820a7c5ffd790e6b68c650161ec3dd7afe39d60eb86b4275272e353906c8a0190414f8bffaf21cd6d1856151c855211e27f0787ff055eaccce072e97cd61404c4839f17ff5f439ada2f383c91b77a8647b5dbd62602b3b7c1bb921555a9280b2d083e2ffebf8735b45d7079236ef50c8f6bb7ac4c05676f8377242aab5250165a107c5ffd7f0e6b68ba6d049f8ac07ba18f3c1ec002c53d2ee8f497b2a1a02e5821f8bffaff1cd6d173661b97c25759c5d64503a7fd80d885cc9571c140405e5444f17ff5ff39ada2e55849883185160e6456cd77f2f80f3393d725de7d80be4c8ae2ffebff735b45c93ca5690fe08e9f807a6117dde67c8f225a8e18f8017e3d16c5ffd7ffe6b68b91055d2acc977fc1b8c18857b3c357463f615e8ded02fe1e2e8bffb000cd6d17210aba55992eff83718310af6786ae8c7ec2bd1bda05fc3c5d17ff60019ada2e421574ab325dff06e306215ecf0d5d18fd857a37b40bf878ba2ffec00335b45c842ae95664bbfe0dc60c42bd9e1aba31fb0af46f6817f0f1745ffd80066b68b90855d2acc977fc1b8c18857b3c357463f615e8ded02fe1e2e8bffb000cd6d1721037b7b23fc65ab9cffdd11e706146efe6d814199d5fc569d27ff6001aada2e41f6f6f647f8cb5739ffba23ce0c28ddfcdb028333abf8ad3a4ffec00355b45c83e6af121abefcd69f7c40aa1b97b79e7960c92c2727f174b4affd8006bb68b907b61f49c04b5fd56a754db6b6aed51f726c567e0e1fe303a96ffb000d86d1720f54ffb90b6425d3006767cfecdd102164837121dc0fc62192eff6001b1da2e41e92c097a195b1ce2c4b9c025939862548b1a66977ef8c5d65efec00364b45c83d15812f432b639c58973804b2730c4a91634cd2efdf18bacbdfd8006c968b907a23c38411242d60dcab3c6be4657e77a2715dcb9f8e318fd7cfb000d93d1720f430482dad15c0e9e4d3453a484a62d1c48d7fbcfeec6339efaf6001b28a2e41e850905b5a2b81d3c9a68a749094c5a3891aff79fdd8c673df5ec00365145c83d0a120b6b45703a7934d14e921298b471235fef3fbb18ce7bebd8006ca28b907a142416d68ae074f269a29d24253168e246bfde7f76319cf7d7b000d9451720f428482dad15c0e9e4d3453a484a62d1c48d7fbcfeec6339efaf6001b28a2e41e8501c6db2d858364c5e573ab88cbc01b115abbc59d5c675835fc00365155c83d09f38db65b0b06c98bcae7571197803622b5778b3ab8ceb06bf8006ca2ab907a13e71b6cb6160d931795ceae232f006c456aef1675719d60d7f000d9455720f427c6f7fef6f9814e5aa869bec5dd66bb0a80a252aab33adbeff001b28abe41e84f76b12378c068c4e0cd9fe00b3a335894ac08cb153675d21ff00365158c83d09ed6236c7c4e37b1ed180c2295f3cc93a902d5bbea3cebbe7ff006ca2b2907a13d9507fe8369d58c05ace4a7ab66ff09d1b06f9d9449d7973ff00d9456620f427b12d12291a1114036d695b1d64d63f6230ba360e863af48bff01b28acd41e84f615a245234222806dad2b63ac9ac7ec461746c1d0c75e917fe0365159a83d09ec2405afd151ab2906d72329d8b4f5bb0bd951a9615ebd3d3fd06ca2b3607a13d830cc852d70bc7a392b12b630e95158975d6778828d7a94bfb0d94566d0f427b051990a5ae178f47256256c61d2a2b12ebacef1051af5297f61b28acda1e84f60a33214b5c2f1e8e4ac4ad8c3a545625d759de20a35ea52fec365159b43d09ec14664296b85e3d1c95895b1874a8ac4baeb3bc4146bd4a5fd86ca2b3687a13d8285897861d92dcbbe2df7c58e147b6bf5813bade8a7a9663b1d94566d1f427b04f3d4164e7fc1bfa7d8bbed9ba85cba6aad3b81911f52e6b64b28acda4e84f609d0695227cce9a77b2e443db6d01f5755053b28e20ea5e7aca65159b4ad09ec1390d2a44f99d34ef65c887b6da03eaeaa0a7651c41d4bcf594ca2b3695a13d82721a5489f33a69decb910f6db407d5d5414eca3883a979eb2994566d2b427b04e434a913e674d3bd97221edb680fabaa829d94710752f3d65328acda5684f609c8695227cce9a77b2e443db6d01f5755053b28e20ea5e7aca65159b4ad09ec13905eb6a846a9b1791455419598350cd2052294201a4bd0fd4da2b3695b13d8271f497fa93a29c574e0774953286077cc04f16a9c3197a39e9c4566d2b727b04e3d1f11ab2129ed6c78bb58ce48b74dc0048f1794602f48e1398acda56f4f609c793e23564253dad8f176b19c916e9b80091e2f28c05e91c273159b4ade9ec138f2085905317e18349aba29611ad395280ce8a0ad7dbd2528e72b3695be3d8271e310b20a62fc3069357452c235a72a5019d1415afb7a4a51ce566d2b7c7b04e3c6216414c5f860d26ae8a5846b4e54a033a282b5f6f494a39cacda56f8f609c78c42c8298bf0c1a4d5d14b08d69ca9406745056bede929473959b4adf1ec138f1811a2abc4b7e5cc636f5c39a52fb0a8c9364d33d8d2543273b3695be4d8271e2f234557896fcb98c6deb8734a5f6151926c9a67b1a4a864e766d2b7c9b04e3c5e468aaf12df97318dbd70e694bec2a324d934cf634950c9cecda56f93609c78bc1927b6d29590e5d347a7f52173e36e445eabfac392a3379e9b4adf27c138f177324f6da52b21cba68f4fea42e7c6dc88bd57f58725466f3d3695be4f8271e2ee649edb4a5643974d1e9fd485cf8db9117aafeb0e4a8cde7a6d2b7c9f04e3c5dc55500f4182e9b1520a05d10395799a1da1a23219951b60f5da56f93f09c78bb736b2772fdc35e55be0d1c9ff21515c35ef86c0302a3865ecb4adf27f138f176d6d64ee5fb86bcab7c1a393fe42a2b86bdf0d80605470cbd9695be4fe271e2eda66dc356c473a1827500d4ff47ba398d26a5d5cbda8e33bb3d2b7c9fd4e3c5db359cac38564d6b3066ce0c7e0eda5599f80fd157851c81b68a56f93fb9c78bb653fa7dfb7a00fe8c4a687b7b9d1a8db39ae3c86eda391dad24adf27f838f176c90b62181c1682544119d5976b99afde6e08bb69d8472559a595be4ff171e2ed9116c430382d04a88233ab2ed7335fbcdc1176d3b08e4ab34b2b7c9fe2e3c5db222d8860705a09510467565dae66bf79b822eda7611c95669656f93fc5c78bb6445b10c0e0b412a208ceacbb5ccd7ef37045db4ec2392acd2cadf27f8b8f176c884233da6e3e87c6c96a1f9eb1915c0edb37f8f98172573e5a5be4ff181e2ed90f107a0d895372104aa105655b191645b11c344effe4b020b5b7c9fe313c5db21d20f41b12a6e42095420acab6322c8b6238689dffc960416b6f93fc6278bb643a41e836254dc8412a8415956c645916c470d13bff92c082d6df27f8c4f176c8740fe2c4f771f3050cd4f152d0bf1055838de4d3fc2582a9aebe4ff18ae2ed90e71fc589eee3e60a19a9e2a5a17e20ab071bc9a7f84b05535d7c9fe315c5db21ce3f8b13ddc7cc143353c54b42fc41560e37934ff0960aa6baf93fc62b8bb6439c0b28806865faab1e7450be7deee0d4171b68fbde2c16f176f27f8c58176c8737165100d0cbf5563ce8a17cfbddc1a82e36d1f7bc582de2ede4ff18b02ed90e6e2ca201a197eaac79d142f9f7bb83505c6da3ef78b05bc5dbc9fe31605db21cdc594403432fd558f3a285f3ef7706a0b8db47def160b78bb793fc62c0bb6439b83e9a5f33360d349f11d20fd6e46b696c62d219dfc170bb7027f8c58276c8736f09471713427cebf5f06a47a5bf34fad371e68fbc82e31ae14ff18b05ed90e6dd128e2e2684f9d7ebe0d48f4b7e69f5a6e3cd1f7905c635c29fe3160bdb21cdba251c5c4d09f3afd7c1a91e96fcd3eb4dc79a3ef20b8c6b853fc62c17b6439b744a38b89a13e75faf83523d2df9a7d69b8f347de41718d70a7f8c582f6c8736e82083c9e0fe314216d36aa253e9add531caab57c52e335215ff18b05fd90e6dcf410793c1fc62842da6d544a7d35baa639556af8a5c66a42bfe3160bfb21cdb9e0e218030cf278b131a70b1479d157cc1d6efbb11b8ceec58fc62c1806439b73b1c4300619e4f162634e1628f3a2af983addf7623719dd8b1f8c58300c8736e76388600c33c9e2c4c69c2c51e7455f3075bbeec46e33bb163f18b060190e6dcec710c0186793c5898d3858a3ce8abe60eb77dd88dc67762c7e3160c0321cdb9d86e2a5bb9c8db33e973d13c71c7b5f4181b3e0d188cf06990c62c1807439b73af686710206818ea8ab468a0db85ca102ae2be762e19e277228c58300f8736e75d5ce078eda69457cd359769af01f2485071bf485933c6924618b060200e6dceb945d34a88238b325237f4fb55fa42b89b8fc0ecaf678ec88d3160c0411cdb9d7117b8edbd1d78e75c3cb01ea3eae39931cbc4355bcf1f351b62c1808339b73ae12f71db7a3af1ceb879603d47d5c7326397886ab79e3e6a36c5830106736e75c25ee3b6f475e39d70f2c07a8fab8e64c72f10d56f3c7cd46d8b06020ce6dceb8449d9c695c229bd99b2471d174d7af1890a6406db78fb4cdc160c041acdb9d7071fc5e5d85ab5fdeb3154622691540b0cc10a69b3f1f83db92c1808369b73ae0d3f8bcbb0b56bfbd662a8c44d22a816198214d367e3f07b725830106d36e75c1a0b29f00e413a7a649217b0923bae542db06c02ccc7e29ae5b06020db6dceb8331653e01c8274f4c9242f6124775ca85b60d805998fc535cb60c041b6db9d70662ca7c03904e9e992485ec248eeb950b6c1b00b331f8a6b96c180836db73ae0cc594f807209d3d32490bd8491dd72a16d836016663f14d72d830106db6e75c1983eb15990ea0a2900ee41311bb1436ad5b30288c97e2b525c06020db7dceb832f09750bceaa76d4b9a9488a2f58e4fda612476d8ffc5848b90c041b70b9d7065d12ea179d54eda9735291145eb1c9fb4c248edb1ff8b09172180836e173ae0cba25d42f3aa9db52e6a52228bd6393f698491db63ff16122e430106dc2e75c19744ba85e7553b6a5cd4a44517ac727ed30923b6c7fe2c245c86020db85ceb832e8236315977dcfce52614ecaed84ae025bd0b934fcc5862f91c041b70c9d7065cf46c62b2efb9f9ca4c29d95db095c04b7a17269f98b0c5f2380836e193ae0cb9e199eaf0acda1bc01520153ae09163169ef272ff0161a62480106dc3375c1973b333d5e159b437802a402a75c122c62d3de4e5fe02c34c490020db866eb832e76667abc2b3686f00548054eb82458c5a7bc9cbfc058698920041b70cdd7065cec5907d103437062c25cd0c5683f0fb34a257bdb7db0d4b6410836e19cae0cb9d73e21fab35d43483c8667b2c8747d8e8ef73a12f861ab1083106dc33a5c1973ad08564e1390e91330d9958d88df5945189ab681edc357c50720db8675b832e75910ac9c2721d22661b32b1b11beb28a31356d03db86af8a0e41b70ceb7065ceb22159384e43a44cc3665636237d6514626ada07b70d5f141c836e19d6e0cb9d6442b2709c87489986ccac6c46faca28c4d5b40f6e1abe283906dc33adc1973ac8117739e5e4f3b5c5661f0085ebf2798457aa7ad9357df4730db8675c832e758f22ee73cbc9e76b8acc3e010bd7e4f308af54f5b26afbe8e61b70ceb9065ceb1e45dce79793ced715987c0217afc9e6115ea9eb64d5f7d1cc36e19d720cb9d63c17cc27dbfe0030e2fdbe2c2755f1f41d699632c6abf147996dc33ae51973ac772f984fb7fc0061c5fb7c584eabe3e83ad32c658d57e28f32db8675ca32e758ee5f309f6ff800c38bf6f8b09d57c7d075a658cb1aafc51e65b70ceb9465ceb1dc4a73978cc66409cfbab78932a5edc8e5f8f3f2325f8be0cc6e19d729cb9d63b720f987c6632a965742353a5d4239b9c69e2a4061bf196599dc33ae54973ac76d41f30f8cc6552cae846a74ba8473738d3c5480c37e32cb33b8675ca92e758eda0ff877c6630cdc14d59b116cff450f1524eb5d83fc673a6870ceb9535ceb1db31ff0ef8cc619b829ab3622d9fe8a1e2a49d6bb07f8ce74d0e19d72a6b9d63b663fe1df198c337053566c45b3fd143c5493ad760ff19ce9a1c33ae54d73ac76cc0bd616dfeec9635e799eb35ff086a0a3d39d481ce33b77448675ca9be758ed9717ac2dbfdd92c6bcf33d66bfe10d4147a73a9039c676ee890ceb9537ceb1db2e2f585b7fbb258d79e67acd7fc21a828f4e7520738ceddd1219d72a6f9d63b65c5eb0b6ff764b1af3ccf59aff8435051e9cea40e719dbba2433ae54df3ac76cb84973c6abc2f8b89f66b15df6fec83237e616ddcb33b91849675ca9bf758ed96f1ef9e6045c53f3f69a28e3e5f3ee8c6a787017936773d493ceb9537feb1db2dd3df3cc08b8a7e7ed3451c7cbe7dd18d4f0e02f26cee7a9279d72a6ffd63b65ba07f9f0be47b252923569b78fc61859a48e02ba4a9dd0f6503ae54e00ac76cb730ff3e17c8f64a5246ad36f1f8c30b3491c0574953ba1eca075ca9c0158ed96e61fe7c2f91ec94a48d5a6de3f18616692380ae92a7743d940eb953802b1db2dcc3fcf85f23d929491ab4dbc7e30c2cd247015d254ee87b281d72a700563b65b980bb164915187abdb2361a0f457e3c2438c6e00a6dd110904ae54e00bc76cb72f1762c922a30f57b646c341e8afc7848718dc014dba2212095ca9c0178ed96e5e2ec59245461eaf6c8d8683d15f8f090e31b8029b74442412b953802f1db2dcbc5d8b248a8c3d5ed91b0d07a2bf1e121c63700536e888482572a7005e3b65b9784728a1c1eedd406a02e0373d749a4c337322666ad112344be54e00bd76cb72ef1a639c30b41d038bd2869672df92c061928728d2a2260c98ca9c017bed96e5dd34c73861683a0717a50d2ce5bf2580c3250e51a5444c1931953802f7db2dcbba698e70c2d0740e2f4a1a59cb7e4b01864a1ca34a889832632a7005efb65b97745f2f3a32774a9f1660fadb8ef2f42b07407ba292113208c754e00be06cb72ee74a70cd11c4f7c0e48ebbdf15dc467e092d39a1212265b58fa9c017c1d96e5dcd20f3f2d060520480ea3de623aeeb240d06b59e3f44cd0f2053802f84b2dcbb9941e7e5a0c0a40901d47bcc475dd6481a0d6b3c7e899a1e40a7005f0965b977320fe223ee57aa94bb75bdc086b20ab82ec718d4fa1335e0824e00be13cb72ee631fc447dcaf552976eb7b810d6415705d8e31a9f4266bc1049c017c2796e5dcc63f888fb95eaa52edd6f7021ac82ae0bb1c6353e84cd782093802f84f2dcbb98c0b23781f93b728937ab42c2d86b3e970e50903cd99b0a8137005f09f5b9773171646f03f276e5126f568585b0d67d2e1ca12079b33615026e00be13eb72ee62e2c8de07e4edca24dead0b0b61acfa5c394240f3666c2a04dc017c27d6e5dcc5c591bc0fc9db9449bd5a1616c359f4b8728481e6ccd85409b802f84fadcbb98b83e49daa611d50bef7808ead0619cbf08fcd298d69b0c2538005f09f6b977316f08a60df8fa0c9a96bcd7fd98b997a60ca5e78daa3619ee7100be13ee72ee62dd114c1bf1f419352d79affb31732f4c194bcf1b546c33dce2017c27dce5dcc5ba229837e3e8326a5af35ff662e65e9832979e36a8d867b9c402f84fb9cbb98b7445306fc7d064d4b5e6bfecc5ccbd30652f3c6d51b0cf738805f09f73977316e81673383c772c2c239a4601838fd888c50abb36a061a08b110be13ee82ee62dcf2ce67078ee585847348c03071fb1118a15766d40c341162217c27dd05dcc5b9e59cce0f1dcb0b08e6918060e3f6223142aecda8186822c442f84fba0bb98b73c3fac1a908fc3e3d49ef6341475226e23021c11000d05fc895f09f74277316e770b6a8dcdf5ea4a610ab29020e0a30440b07a7dfd1a0d9d13be13ee85ee62dced16d51b9bebd494c215652041c146088160f4fbfa341b3a277c27dd0bdcc5b9da2daa3737d7a929842aca4083828c1102c1e9f7f46836744ef84fba17b98b73b45b546e6faf525308559481070518220583d3efe8d06ce89df09f742f7316e76842bb358c350728c877ef2a06008e6c05b3ea3bcea0db753ce13ee85fe62dcecf1188c3c54070d448bca47c03f77b00061416d39a41b88e7ac27dd0c0cc5b9d9d2311878a80e1a8917948f807eef6000c282da73483711cf584fba18198b73b3a46230f1501c35122f291f00fddec0018505b4e6906e239eb09f74303316e7674185876d6d9e924fdb1ea0817b236282b4cf8f8cf0dc617d713ee860762dcece730b0edadb3d249fb63d4102f646c505699f1f19e1b8c2fae27dd0c0ec5b9d9ce6161db5b67a493f6c7a8205ec8d8a0ad33e3e33c37185f5c4fba181d8b73b39c4ed60f63a5abaaa55c1668b5880f6955140a22756e3262b99f74303c16e7673729be777421b9d80284f2f963067cfaa4d456a0e7dc6669743ee860792dcece6d537ceee84373b00509e5f2c60cf9f549a8ad41cfb8ccd2e87dd0c0f25b9d9cda330c367d5d49e2c1e0920d841052128dfd9cdf9c719b49d1fba181e5b73b39b366186cfaba93c583c1241b0820a4251bfb39bf38e33693a3f74303cb6e767366584332a24b8a0dbf4f0e5e0837a67232a2b5da6ec66ecb48ee860797dcece6cb3c98bdf16d769e366ae2e40865ab0c5ff1ae10da8cdf3a92dd0c0f30b9d9cd950543d48fb14fbf24a28bf008c1b440ba8f9e7db219c01926ba181e6273b39b290a87a91f629f7e494517e011836881751f3cfb643380324d74303cc4e7673652150f523ec53efc928a2fc02306d102ea3e79f6c86700649ae8607989cece6ca42a1ea47d8a7df925145f80460da205d47cf3ed90ce00c935d0c0f3139d9cd948543d48fb14fbf24a28bf008c1b440ba8f9e7db219c01926ba181e6273b39b290348ceaa3005a674c1e4429102ce63f4ca01212403804c8d84303cc4f7673651f6919d54600b4ce983c88522059cc7e9940242480700991b08607989eece6ca3e5e460338d7cc1fe845d6cc38a9f7252d2c8aa4fde014c7620c0f313ed9cd947b489e5f1e85fac2885873c0694a4c72550557a5f8c02b32c5181e627eb39b28f51d4f16e9e25807c87dada8ca8af70ca4b6f1a7ee8058098b303cc4fe673651e93a9e2dd3c4b00f90fb5b519515ee19496de34fdd00b01316607989fcce6ca3d2014eb4545fc2a1d9c37ccb22223a5a8d8808fbb70161ca2dc0f313fa9cd947a3029d68a8bf8543b386f996444474b51b1011f76e02c3945b81e627f539b28f46053ad1517f0a87670df32c8888e96a362023eedc058728b703cc4fea73651e8c0a75a2a2fe150ece1be6591111d2d46c4047ddb80b0e516e07989fd4e6ca3d1814eb4545fc2a1d9c37ccb22223a5a8d8808fbb70161ca2dc0f313fa9cd947a3029d68a8bf8543b386f996444474b51b1011f76e02c3945b81e627f539b28f46053ad1517f0a87670df32c8888e96a362023eedc058728b703cc4fea73651e8c0336c82dcb7b36f998b2bb909138b6ebeb0c0377db0e6bae17989fd4f6ca3d17f66d905b96f66df33165772122716dd7d61806efb61cd75c2f313fa9ed947a2fe59c4641fb530411df9750c1c448be2f56f4339f3c39c8f86e627f53eb28f45fb3f9b20ec40c304f3bfb040307f75ede58ac8cfe4873ac30ecc4fea7e651e8bf50b489a8557e88c9f4c26a858f54a03c5c1d3fbc60e772a1e989fd4fdca3d17e91691350aafd1193e984d50b1ea94078b83a7f78c1cee543d313fa9fb947a2fd22d226a155fa2327d309aa163d5280f17074fef1839dca87a627f53f728f45fa45a44d42abf4464fa613542c7aa501e2e0e9fde3073b950f4c4fea7ee51e8bf48409c010254eb4cac8f30ad874afe6456c982185de77445ea89fd4fdda3d17e8f0d4a5ab180391c10eb2783068c5af0a83f468cb8ceea2fd613fa9fbc47a2fd1d1a94b56300723821d64f060d18b5e1507e8d19719dd45fac27f53f788f45fa3a35296ac600e47043ac9e0c1a316bc2a0fd1a32e33ba8bf584fea7ef11e8bf4746a52d58c01c8e087593c183462d78541fa3465c677517eb09fd4fde23d17e8e860b803c4d9f443c67f3e5860bc0d327ea0ab2789eea4a1623fa9fbc57a2fd1cf4d8260368a4b0a44cb42d8b96e788cf7ed98ab10dd4ae6c57f53f78bf45fa39d27171919eaf89741634bd96ad34f41ea8773b21eba97718bfea7ef18e8bf47394e2e3233d5f12e82c697b2d5a69e83d50ee7643d752ee317fd4fde31d17e8e72286ebd148244dfbd59f58da3439b2fa4ca112477ea5f6a30fa9fbc64a2fd1ce350dd7a290489bf7ab3eb1b4687365f49942248efd4bed461f53f78c945fa39c62dcd4cfedf7601ad349c5e8504cae68dd486eddca97f4cc4ea7ef1938bf4738b5b9a99fdbeec035a6938bd0a0995cd1ba90ddbb952fe9989d4fde32717e8e71643478ca8543a896c9f37a20c0989c231fe5e136fa5fed714a9fbc64f2fd1ce2b12a171fd7ed795910b356c100971ac5ea8fe82dc4bff522a53f78c9f5fa39c552542e3fafdaf2b22166ad82012e358bd51fd05b897fea454a7ef193ebf4738aa4a85c7f5fb5e56442cd5b04025c6b17aa3fa0b712ffd48a94fde327d7e8e7154211de898cd1f2f402671887841eb8aeff43672df5ffc35539fbc64fbfd1ce2a7423bd1319a3e5e804ce310f083d715dfe86ce5bebff86aa73f78c9f7fa39c54e1089fb100adf3fb8668c49d8fe0c53ba7d1c277a7ff2794f7ef193f0f4738a9b2113f62015be7f70cd1893b1fc18a774fa384ef4ffe4f29efde327e1e8e715364227ec402b7cfee19a312763f8314ee9f4709de9ffc9e53dfbc64fc3d1ce2a6c1062312d2d5c807b012876bfe6c0c5ce952397d0ff956e7cf78c9f88a39c54d720c4625a5ab900f60250ed7fcd818b9d2a472fa1ff2adcf9ef193f114738a9ae4188c4b4b57201ec04a1daff9b03173a548e5f43fe55b9f3de327e228e71535c0f23e2164146868fd609ddf72c64566f555f1a84fcad17e8bc64fc461ce2a6b71e47c42c828d0d1fac13bbee58c8acdeaabe3509f95a2fd178c9f88c39c54d6e3c8f8859051a1a3f582777dcb19159bd557c6a13f2b45fa2f193f118738a9adc0531695ee096b7367d1517b15980db75573b3024e56a6346e327e231e71535b70a62d2bdc12d6e6cfa2a2f62b301b6eaae766049cad4c68dc64fc463ce2a6b6e14c5a57b825adcd9f4545ec566036dd55cecc09395a98d1b8c9f88c79c54d6dc298b4af704b5b9b3e8a8bd8acc06dbaab9d981272b531a37193f118f38a9adb8531695ee096b7367d1517b15980db75573b3024e56a6346e327e231e71535b70323f8488e93969876f691e23267996a593a86099ad4e0cdd64fc463de2a6b6df647f0911d272d30eded23c464cf32d4b2750c1335a9c19bac9f88c7bc54d6dbe55106ad07b4828d58a6aa08490448290fae3de63b539d77693f118f88a9adb7b36332e4dccf2d462e19b690116e72d1ca20a18c46a7552ee27e231f21535b6f56c665c9b99e5a8c5c336d2022dce5a3944143188d4eaa5dc4fc463e42a6b6dea64df11e40a2dd4435333cbfc51fadc6d346abf0ea9d6efb99f88c7c954d6dbd355d07c74eabe2b3e732dbff09a53e0d51517da1a53af83743f118f93a9adb7a537b35196abded934b321a7d92b05e9a4d6721031a760aae97e231f28535b6f496f66a32d57bdb26966434fb2560bd349ace420634ec155d2fc463e50a6b6de926adf9f0785dde78a994cc75ca275ce8e060a9cc39d844fa6f88c7ca24d6dbd2361d196bbe21e51ccff5fb6b13b49c516b85795843b0a434ef118f9459adb7a454fb586249a9f2651cb85955a6cf1b2281cf1870576162a9ee231f28c35b6f4892b7d64f60ba0cf5b63d152acd0418c4ae6256a07ec2df93ec463e5196b6de91156fac9ec17419eb6c7a2a559a0831895cc4ad40fd85bf27d88c7ca32d6dbd2223a07ec8504e5c0255c0b72ab3764592644d8041cb0b988fc118f9466adb7a443002231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0088c6db80b80c0a13743539949b691cd7c990d985d2d7e48c7ca3396dbd221401118db70170181426e86a732936d239af9321b30ba5afc918f94672db7a442802231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0088c6db80b80c0a13743539949b691cd7c990d985d2d7e48c7ca3396dbd221401118db70170181426e86a732936d239af9321b30ba5afc918f94672db7a442802231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0014d9342d8e6e8ccb40fb618c91c744d275d33582d2d9888d7ca3396ebd2213ff29b2685b1cdd199681f6c319238e89a4eba66b05a5b3111af94672dd7a4427fe5364d0b639ba332d03ed8632471d1349d74cd60b4b662235f28ce5baf4884ffc32dbfa1949d6e911d4a1345c84984e8e5adc081396cde86ce519cb76e9109ff765b7f43293add223a94268b909309d1cb5b810272d9bd0d9ca3396edd2213fee57824111fdbe26ff1f4af96a08bf623417b27c4b5b3945b494672ddca4427fdb3b16dad0d1ded0b60b5c1acc07dcec62dba75493b6742f6a28ce5bba4884ffb502400e4e7a202423e37e5d90061800c0639105246cea02d5519cb7759109ff6904801c9cf4404847c6fcbb200c300180c7220a48d9d405aaa3396eeb2213fed209003939e880908f8df97640186003018e441491b3a80b554672ddd64427fda412007273d101211f1bf2ec8030c006031c882923675016aa8ce5bbac884ffb482400e4e7a202423e37e5d90061800c0639105246cea02d5519cb7759109ff6904801c9cf4404847c6fcbb200c300180c7220a48d9d405aaa3396eeb2213fed201c15ec4b5e6b8bb0ac5d8bf97c5e58139083a5183a825955672ddd65427fda3f382bd896bcd7176158bb17f2f8bcb02721074a307504b2aace5bbaca84ffb47e7057b12d79ae2ec2b1762fe5f179604e420e9460ea0965559cb7759509ff68fc6cc1bb07c9bee03d2fb287c3d950e897305f84bed4146eac396eeb2b13fed1f76595cebc69e043322c2b377fa8fff9290d01657aa82a815972ddd65727fda3ed573df625aa23091c251c96f7485e1a4cc64526f25056a6b3e5bbacaf4ffb47d93a8e44f82aa894f016ff55e6871a5c9438cca9e1a0aef168cb77595f9ff68fb1012ee29d2bb3ac97fac4d3c50492e1231ddbafc0415f86d296eeb2c03fed1f61025dc53a5767592ff589a78a0925c2463bb75f8082bf0da52ddd65807fda3ec204bb8a74aeceb25feb134f14124b848c776ebf01057e1b4a5bbacb00ffb47d84097714e95d9d64bfd6269e2824970918eedd7e020afc3694b7759601ff68fb0812ee29d2bb3ac97fac4d3c50492e1231ddbafc0415f86d296eeb2c03fed1f61025dc53a5767592ff589a78a0925c2463bb75f8082bf0da52ddd65807fda3ec204bb8a74aeceb25feb134f14124b848c776ebf01057e1b4a5bbacb00ffb47d8402383a742b038ceb52f300a7a3fceb9899a1a3c1dafc50d4c77596020f68fb07f47074e8560719d6a5e6014f47f9d73133434783b5f8a1a98eeb2c041ed1f60fe1a20f5b79745bd8c898651e0f5990e2114ab4c73bf15d932dd658084da3ec1fb3441eb6f2e8b7b19130ca3c1eb321c42295698e77e2bb265bacb0109b47d83f66883d6de5d16f63226194783d664388452ad31cefc5764cb7596021368fb07ec5d1a066990906f1c18f8b6ffa3269903519cbf9af8b06d97eb2c0427d1f60fd74646657ff78360effeb795f73cab5a014f7bdb32f1627f30d6580850a3ec1fad189f23acc5694497ca3553e66fb4dbfd4b3a1262e2c6a262acb010a247d83f59313e47598ad2892f946aa7ccdf69b7fa967424c5c58d44c5596021448fb07eb2627c8eb315a5125f28d54f99bed36ff52ce8498b8b1a898ab2c042891f60fd64510b761301aca7761e70c72b740507e50612ef141636b716658085133ec1fac72e2944d2d9bbd1a409a7b64ede6837c4b8683a252c6f122dcb010a277d83f58d5c5289a5b377a348134f6c9dbcd06f8970d0744a58de245b9602144efb07eb1a44b76bf83d51c947f36501336fff070d8de34491b1bdecb82c04289ef60fd6331581309d51061547b3902a5ed65c3615c808e520637d7d715808513eec1fac652b02613aa20c2a8f672054bdacb86c2b9011ca40c6fafae2b010a27dd83f58ca5604c2754418551ece40a97b5970d857202394818df5f5c5602144fbb07eb194381bdd975e932cf569477aeea93fd8a8ec8985001bed8f8bc04289f860fd63277037bb2ebd2659ead28ef5dd527fb151d9130a0037db1f17808513f0c1fac64e6c81cf0a50af368d71e413b29b5d8a9e5e686ffd6fb7e230010a27e283f58c9b6515f6c177c0efd2b08e4f5d2d193d3769133bf7df71686102144fc607eb1935563e462fc5e4625d2de2c6b25090a2697e68d3ecbee474c304289f8d0fd63269388ee50c622b4772288bb55c977f6ccda91403d67dca8d8708513f1b1fac64d1711dca18c4568ee451176ab92efed99b522807acfb951b0e10a27e363f58c9a26e4decde5f0fa0806ef4fd6a545bdb3150926b56f72bda1d2144fc6d7eb1934368ae32699481c3b8aab022cc9f15de5d4d6732aaee59583b4289f8dbfd6326855d6ebd7fff660a2922266d913489e4b54710c152dcb454778513f1b8fac64d0946efd3acd52e970a1113031a5f71f1653a63dea2b96a4cf00a27e372f58c9a1119f2000680bfb0cbeeec2e2cb5420ac5210a194272d63de1144fc6e6eb19342133e4000d017f6197ddd85c596a84158a42143284e5ac7bc2289f8dcdd632684267c8001a02fec32fbbb0b8b2d5082b1484286509cb58f784513f1b9bac64d0845ba258e0dc6009174427995da06e7e23b493261096b39309a27e373858c9a10743570a6e8f2294e655155ab3373b24421568a81e2d68ca1444fc6e71b193420d12c06d89f4a7ac8476f0dd5e64d4707ed713ac395ad3382989f8dce4632684192580db13e94f5908ede1babcc9a8e0fdae275872b5a6705313f1b9c8c64d08324b01b627d29eb211dbc375799351c1fb5c4eb0e56b4ce0a627e373918c9a10642215c4fc7b9fe6db844d12eb1d01abf164dfbdc7d69b654d4fc6e724193420c7442b89f8f73fcdb7089a25d63a0357e2c9bf7b8fad36ca9a9f8dce483268418e14696c9ec4e21e25ddfa73a46a64d7c03fc1531c5a6f39363f1b9c9164d0831b28d2d93d89c43c4bbbf4e748d4c9af807f82a638b4de726c7e373922c9a1063651a5b27b1388789777e9ce91a9935f00ff054c7169bce4d8fc6e724593420c6c2f5dbda2fd7373e6bc99c51b4984e5fcaa4cf4dfd37b6db2f8dce48c268418d75ebb7b45fae6e7cd79338a369309cbf95499e9bfa6f6db65f1b9c9184d0831ae49894f38cc305252bf2d3c651c71bfed55762f7c4def5acce37392319a10635b1f24f71e6ec3275d4b20a0c22f41a7d5572ebaf59be0599ac6e724643420c6b53e49ee3cdd864eba964141845e834faaae5d75eb37c0b3358dce48c868418d6a08a63526916f202cf948ab00b364c75008fd47d36f830a6c1b9c9191d0831ad3114c6a4d22de4059f291560166c98ea011fa8fa6df0614d837392323a10635a62298d49a45bc80b3e522ac02cd931d4023f51f4dbe0c29b06e724647420c6b4c4531a9348b790167ca4558059b263a8047ea3e9b7c185360dce48c8e8418d6981675ab15ed5485876150d8032caa9cfb3c16d933f8324ac2b9c9191e0831ad2f2ceb562bdaa90b0ec2a1b006595539f6782db267f06495857392323c10635a5e59d6ac57b552161d8543600cb2aa73ecf05b64cfe0c92b0ae724647820c6b4bc3fbfb15c4106aef2d74ce8115bb30fd48cf9259cc193fa16ce48c8f1418d69770b91bb65586fe09d7b5ff81aadc447a3c634a7368329982e9c9191e3831ad2ed172376cab0dfc13af6bff0355b888f478c694e6d0653305d392323c70635a5da2e46ed9561bf8275ed7fe06ab7111e8f18d29cda0ca660ba7246478e0c6b4bb45c8ddb2ac37f04ebdaffc0d56e223d1e31a539b4194cc174e48c8f1c18d69768452e0f025d608c8f82c5a9a2d2a2a2370f8ccf65329b26eac9191e3931ad2ecf166e76b191239bd6d2517b3d9ba36c68cb5bfac76537f1d692323c73635a5d9d2cdced63224737ada4a2f67b3746d8d196b7f58eca6fe3ad246478e6c6b4bb3a59b9dac6448e6f5b4945ecf66e8db1a32d6feb1d94dfc75a48c8f1cd8d6976743f860e395f7f616e5f5201e4d3798b410722323829c132b59191e39c1ad2ece70b1e751f956145948b6a2bc19d513e7cba86c06d5384096c2323c73935a5d9cd163cea3f2ac28b2916d457833aa27cf9750d80daa70812d846478e726b4bb39a2c79d47e558516522da8af067544f9f2ea1b01b54e1025b08c8f1ce4d697673458f3a8fcab0a2ca45b515e0cea89f3e5d436036a9c204b61191e39c9ad2ece683df9aaa62c76dc008368e411cb720fc654ae62d238423ac3323c73945a5d9ccf0805adf92f503ab8d397f01b8d424787559f21a1708619876478e729b4bb399d100b5bf25ea07571a72fe0371a848f0eab3e4342e10c330ec8f1ce536976733a2016b7e4bd40eae34e5fc06e35091e1d567c8685c218661d91e39ca6d2ece674402d6fc97a81d5c69cbf80dc6a123c3aacf90d0b8430cc3b23c7394da5d9cce80c6d383fcb662e45064529b0ca82a0700634761408633c77478e729c4bb399cf18da707f96cc5c8a0c8a5361950540e00c68ec2810c678ee8f1ce5389767339e31b4e0ff2d98b9141914a6c32a0a81c018d1d850218cf1dd1e39ca712ece673c6369c1fe5b31722832294d865415038031a3b0a04319e3ba3c7394e25d9cce7852e5dca98cc567083118c3049e882efb0f89bd3d86356b7578e729c5bb399cef31de11ffefed50c82ef7ae01336e85f0cb55d6780c6c7aebf1ce538c767339dd63bc23ffdfdaa1905def5c0266dd0be196abacf018d8f5d7e39ca718ece673ba538aa0ac9617c5d888a4dffcc4183fbdd999b5dd31b38fb0c7394e32d9cce77333279a0602920e68de0fe7f17e8ea7765f75c7b76368c3628e729c66b399cee5664f340c05241cd1bc1fcfe2fd1d4eecbeeb8f6ec6d186c51ce538cd67339dca58b0c0c4e0aabc5b4505c7bdf098c5d42a197ada8da4b18b39ca719bce673b933d73da3697b7fb6e56d1b773d78fb3a3007551b21b4b07177394e3389cce772506fa0d1a05d279947a6996dfa57d8f40ad2cff613697b22fe729c672399cee490df41a340ba4f328f4d32dbf4afb1e815a59fec26d2f645fce538ce47339dc921be834681749e651e9a65b7e95f63d02b4b3fd84da5ec8bf9ca719c8e673b92437d068d02e93cca3d34cb6fd2bec7a056967fb09b4bd917f394e3391cce772486fa0d1a05d279947a6996dfa57d8f40ad2cff613697b22fe729c672399cee4906b53fbed90b1b54719f903eca610101051e24823d2f7e9fde538ce48339dc91f62ba5087f7c5ed4600b82fd1427e481b5006ec44a5f177fcca719c91673b923d5186f9bcc5ee5d43ce36879a7b5ab8314c5034864be493fa94e33923ce7724792f204c26623f3d3f6933372ced13985d44e2c50997cacbf629c672489cee48f15e40984cc47e7a7ed2666e59da2730ba89c58a132f9597ec538ce49139dc91e2489389465f5f77b5719304abaaac896fbfcd70235f2cd3d9a719c92373b923c31d396b3995217222afec314f4bb73ada2bdd3c43be5b4bb44e339247e77247853a72d6732a42e4455fd8629e976e75b457ba78877cb697689c67248fcee48f0a00f805932ae84b428c76ed35253b13635bb74d0bf96ed2d238ce49209dc91e1301f00b2655d0968518edda6a4a7626c6b76e9a17f2dda5a4719c92413b923c2603e0164caba12d0a31dbb4d494ec4d8d6edd342fe5bb4b48e33924827724784c07c02c9957425a1463b769a929d89b1addba685fcb769691c6724904ee48f0980f805932ae84b428c76ed35253b13635bb74d0bf96ed2d238ce49209dc91e1301f00b2655d0968518edda6a4a7626c6b76e9a17f2dda5a4719c92413b923c2603e0164caba12d0a31dbb4d494ec4d8d6edd342fe5bb4b48e33924827724784c0081522424a8823fe083cc28a93e7d9a887e8e1f9b76b0d1d6724904fe48f097f102a4484951047fc1079851527cfb3510fd1c3f36ed61a3ace49209fc91e12fe205489092a208ff820f30a2a4f9f66a21fa387e6ddac34759c92413f923c25fc40a9121254411ff041e614549f3ecd443f470fcdbb5868eb3924827f24784bf80d647cd17ee4c298509250a134dbc2832ad07b9876b275d7724904ff48f097ef1ac8f9a2fdc98530a124a14269b7850655a0f730ed64ebaee49209fe91e12fde3591f345fb930a6142494284d36f0a0cab41ee61dac9d75dc92413fd23c25fbc6b23e68bf72614c284928509a6de14195683dcc3b593aebb924827fa4784bf78625a25c4c4aeac3cd5eb320b441a502d594a15846b29017824904ff58f097eef50c6a4365fbfdb31789c8c0e7e92c8555ed68705d653a6f149209fec1e12fddd2d9fa11995e2391abdff4014f383b8a569ef6a08aca8f1e392413fd93c25fbb95b3f42332bc472357bfe8029e707714ad3ded4115951e3c724827fb2784bf7724290dd132deb6722c4c3284bc46d0a905400041fb2a56b8f4904ff65f097eee3113412d3323950fd564c788f7f383d1b5442643c654c7b1f9209fecce12fddc5226825a66472a1faac98f11efe707a36a884c878ca98f63f2413fd99c25fbb8a44d04b4cc8e543f55931e23dfce0f46d510990f19531ec7e4827fb3384bf771415b2ef46682d0aa27f29ec73f02010d54e557de02a657cfd904ff668097eee272b65de8cd05a1544fe53d8e7e04021aa9caafbc054caf9fb209fecd012fddc4e56cbbd19a0b42a89fca7b1cfc08043553955f780a995f3f6413fd9a025fbb89c39a9d2e017cad7cbc6158b97775eaea51eee4afe532d8bed827fb3414bf771377353a5c02f95af978c2b172eeebd5d4a3ddc95fca65b17db04ff668297eee26e72b9a42d358de1e6e51c5655d3d8e28f27fb87f64cb7d3b709fecd062fddc4db7185a107417e468596fed4a39e0fed18fc396be999714b6f13fd9a0d5fbb89b56f1d9abb595f0fc2fac3d13f327e022ca4b533d032e43adf27fb341bbf7713696a4d8e238920a23dc24dca765b5a2c53f5acc39d65ca19bf4ff668387eee26d160ad74f3e8a3c7335161bce4ad1280a2979be337cb95d77f9fecd071fddc4da14d6d4294a7aa111e6f89a1c15083293fdb7a226c972d53003fd9a0e4fbb89b4126ecddd625b6a4f4abd96b7a97647a7a6336a0d62e5c4a017fb341caf77136814dd9bbac4b6d49e957b2d6f52ec8f4f4c66d41ac5cb89402ff668395eee26d0227c5d0056d3d168a7c2bd5e253f011e4391cdf55b972cc06fecd072cddc4da034f8ba00ada7a2d14f857abc4a7e023c87239beab72e5980dfd9a0e59bb89b4062b2998c28b56dce1bd757f81461e6f8b90b5d953e5ccd41cfb341cb47713680b5653318516adb9c37aeaff028c3cdf17216bb2a7cb99a839f6683968ee26d01638b8bbb703bdf63ec29c25fd0ed7e628ef19c14c9734f474ecd072d2dc4da02b7171776e077bec7d85384bfa1dafcc51de3382992e69e8e9d9a0e5a5b89b40566ef54788e55a5bb2d736bfec31bdc09e68a9612f5cd575d4b341cb4c713680ab69fce7bea1173a1d7b33a7d059d9a9377d951e5bb9ac8faa66839699e26d0155600c282a1890f6f2c32d7798aa117a69a76c98b4735ac355cd072d34c4da02a94c2aa9010784709d532117294a811ccdfb1b8d65e6b72aac9a0e5a6a89b405512467aaaee56b63f27308564a8b606196a27976c8cd6ff95a341cb4d613680aa148cf555dcad6c7e4e610ac9516c0c32d44f2ed919adff2b4683969ac26d015421db103686c10128198e7812223dfae553628372035c18969d072d3594da02a833b6206d0d820250331cf024447bf5caa6c506e406b8312d3a0e5a6b29b40550602d6664e86a2ccbe30642c8085dce14f84e3387dd707c9a841cb4d663680aa0b05accc9d0d45997c60c859010bb9c29f09c670fbae0f935083969acc6d0154160b59993a1a8b32f8c190b2021773853e138ce1f75c1f26a1072d3598da02a82c16b33274351665f1832164042ee70a7c2719c3eeb83e4d420e5a6b31b40550582d6664e86a2ccbe30642c8085dce14f84e3387dd707c9a841cb4d663680aa0b05accc9d0d45997c60c859010bb9c29f09c670fbae0f935083969acc6d015416041abec4e7f15b243e5d148196d967bdbe5107b72c1f40e1172d3598ea02a82bf0f6a3149d48de73f9868b82ad18b1fb2766352e283e9c023e5a6b31e4055057d1ed46293a91bce7f30d17055a3163f64ecc6a5c507d38047cb4d663c80aa0afa3da8c52752379cfe61a2e0ab462c7ec9d98d4b8a0fa7008f969acc79015415f40763e2fb7ad1bcb4900be94e82b7258e5f5cf3111f4fa5202d3598f302a82be70ec7c5f6f5a379692017d29d056e4b1cbeb9e6223e9f4a405a6b31e6055057ce1d8f8bedeb46f2d2402fa53a0adc96397d73cc447d3e9480b4d663cc0aa0af9c3b1f17dbd68de5a4805f4a7415b92c72fae79888fa7d290169acc79815415f3802508864837e4e00cd84bce021d080e0a2118d0ef4fbf603d3598f312a82be6f04a110c906fc9c019b0979c043a101c144231a1de9f7ec07a6b31e6255057cde094221920df938033612f380874203828846343bd3efd80f4d663cc4aa0af9bc128443241bf270066c25e7010e840705108c6877a7dfb01e9acc79895415f3782508864837e4e00cd84bce021d080e0a2118d0ef4fbf603d3598f312a82be6f04a110c906fc9c019b0979c043a101c144231a1de9f7ec07a6b31e6255057cde0203471cdb5f602eb2df560006a7e602330a59fba3eff24f5d663cc4ba0af9bbf4068e39b6bec05d65beac000d4fcc046614b3f747dfe49ebacc79897415f377e0ce41fe3ae3a8e64849ba7f9a057a8876ed8dae5fbfe37d8598f312f82be6efb19c83fc75c751cc909374ff340af510eddb1b5cbf7fc6fb0b31e625f057cddf633907f8eb8ea3992126e9fe6815ea21dbb636b97eff8df61663cc4be0af9bbec6720ff1d71d4732424dd3fcd02bd443b76c6d72fdff1bec2cc79897c15f377d85a5456e7ba0b69001680a791fbd8b07199d00a5cbfe5218698f312f92be6efaf40bb067c4a7954b7f9c7771bee0f88dddfe270b67fcbe70e31e625f357cddf5d0d8865a56b552c27c055162fd27d39b66c073d69ff99721d63cc4be7af9bbeb91b10cb4ad6aa584f80aa2c5fa4fa736cd80e7ad3ff32e43ac79897cf5f377d7236219695ad54b09f015458bf49f4e6d9b01cf5a7fe65c8758f312f9ebe6efae46c432d2b5aa9613e02a8b17e93e9cdb36039eb4ffccb90eb1e625f3d7cddf5c86498b3038bb54533d2178af51e31c3616cb6329cf998c5d73cc4be7bf9bbeb8f5543beb3edcd0d1f70f53de232c1aebd85aec136f3332faf79897cf8f377d71d3699d614b1fc9cf6aeb0a3bc5be18575b79fde6ae668035ff312f9f2e6efae396d33ac2963f939ed5d614778b7c30aeb6f3fbcd5ccd006bfe625f3e5cddf5c726679b0ff9e54f6928788b6e965e43dd18ac1d5a899a1b180cc4be7cc9bbeb8e35905baac130c6fdcdbd795cac226a39dc1c6074e334507029897cf9a377d71c53e1dce04fc7b62718475538d7aab6f362fce6a99668bb206312f9f356efae389084df4b6cf59479ad5b0cf12ebb506670bdf312fcd19080d625f3e6bddf5c711109be96d9eb28f35ab619e25d76a0cce17be625f9a32101ac4be7cd7bbeb8e222137d2db3d651e6b56c33c4baed4199c2f7cc4bf34642035897cf9af77d71c44426fa5b67aca3cd6ad8678975da833385ef9897e68c8406b12f9f35eefae388810f1a419cbf6fc6527d31926b1ae8e6b6a356ef9d19224d725f3e6bedf5c710f21e3483397edf8ca4fa6324d635d1cd6d46addf3a32449ae4be7cd7dbeb8e21e43c690672fdbf1949f4c649ac6ba39ada8d5bbe74648935c97cf9afb7d71c43c139f797b361a65e10b5ef12d83d29b55fdedd3cb8c92caba2f9f35f7fae38877273ef2f66c34cbc216bde25b07a536abfbdba797192595745f3e6beff5c710ee4e7de5ecd86997842d7bc4b60f4a6d57f7b74f2e324b2ae8be7cd7dfeb8e21dc290e24868735b1c027bdb16414f302aa9bb0fa596497f9d27cf9afc0d71c43b7521c490d0e6b63804f7b62c829e605553761f4b2c92ff3a4f9f35f81ae38876e304aeac6f33949b86bbced884a2a32a51b06456292618b4af3e6bf045c710edb6095d58de6729370d779db109454654a360c8ac524c31695e7cd7e08b8e21db64d3e03c8a347a9997bb9de191f06f28f185b71874987d12ccf9afc1271c43b6b268e603e1cf1d5eac439e42a346c0d18dcf93f0b9311465a9f35f825e38876d54d1cc07c39e3abd58873c85468d81a31b9f27e1726228cb53e6bf04bc710edaa264bd9a54a29da62ddadb8a0c80e5c5e2027582b4c46bd6b7cd7e0988e21db534c97b34a9453b4c5bb5b7141901cb8bc404eb056988d7ad6f9afc1311c43b6a62541bf41ff09ec43437d0a7b169799732cdfbcaa311c99aef35f826338876d4b4a837e83fe13d88686fa14f62d2f32e659bf79546239335de6bf04c6710eda96211955b4d28a33c4daba51e450bc8dc75fc14ea5c4740abccd7e098de21db52b4232ab69a5146789b574a3c8a1791b8ebf829d4b88e815799afc131bc43b6a561077af80208b51cb37af6f8939505f182b47969411d1cef435f826388876d4ab20ef5f004116a3966f5edf1272a0be30568f2d2823a39de86bf04c7110eda95641debe00822d472cdebdbe24e5417c60ad1e5a5047473bd0d7e098e221db52ac0fcfd4addabd11118a41a441c0e120bc067f109d8e901ba2afc131c543b6a5571f9fa95bb57a22231483488381c241780cfe213b1d2037455f82638a876d4aae3f3f52b76af4444629069107038482f019fc42763a406e8abf04c7150eda955c0a90fe1bac4b0b441ed34a05fd672ddae03ae0e9748281167e098e2b1db52ab71521fc37589616883da6940bface5bb5c075c1d2e905022cfc131c563b6a556e2a43f86eb12c2d107b4d2817f59cb76b80eb83a5d20a0459f82638ac76d4aadc5487f0dd62585a20f69a502feb396ed701d7074ba41408b3f04c7158eda955b835223a679b1336f9b9fac857ccd105a8aff06a944829b568e098e2b2db52ab6f6a4474cf36266df373f590af99a20b515fe0d52890536ad1c131c565b6a556de609b424b42af5e9eb4b1495729a23e9d6c04064e20a879a482638acc6d4aadbb4d48dd435bc13ff53628baa649a2a535844a68994152974a04c71599da955b7526a413338de502a239179d4489a37265b4d72d2f82a6d295098e2b34b52ab6e94d4826671bca0544722f3a891346e4cb69ae5a5f054da52a131c56696a556dd226a2a57b0df68d40b1249d0a1cebf1917f9f10bb0a9cee552638acd3d4aadba34d454af61bed1a8162493a1439d7e322ff3e21761539dcaa4c7159a7a955b746269cee990e3cb7ba91589c206a0dee40aabe9ee92a755d5598e2b35052ab6e8b4d39dd321c796f7522b13840d41bdc81557d3dd254eabaab31c566a0a556dd16268613110f5561a2122898799e95e0fd573cd7a1a9d71957638acd424aadba2b4d0c26221eaac344245130f33d2bc1faae79af4353ae32aec7159a84955b7456262aa4f113b80940156889de70b5abf00935ba83a75e095e8e2b350a2ab6e8ab4c5549e2277012802ad113bce16b57e0126b75074ebc12bd1c566a14556dd15624bcec712542a7b822684f71b934d7bad119460b9d79c97b38acd429aadba2ab4979d8e24a854f7044d09ee37269af75a2328c173af392f67159a85355b745561f060a716b6d2198566765bedb3186e5f0a7742b75e8c9ede2b350a7ab6e8aab3e0c14e2d6da4330accecb7db6630dcbe14ee856ebd193dbc566a14f56dd1556082a8272841709192663bef3632443926ee02caad7a4cbb88acd429fadba2aab105504e5082e12324cc77de6c6488724ddc05955af499771159a853f5b74555620aa09ca105c2464998efbcd8c910e49bb80b2ab5e932ee22b350a7eb6e8aaac4154139420b848c9331df79b19221c9377016556bd265dc4566a14fd6dd155580eba7fd517d3144a3302172e28a261219a4526aa7a4e5f89acd429fbdba2aaaf1d74ffaa2fa6289466042e5c5144c243348a4d54f49cbf1359a853f7b745555e3ae9ff545f4c5128cc085cb8a289848669149aa9e9397e26b350a7ef6e8aaabc01e6575594fb250964d6e1693b7131077e6b9150d274a04e66a14fdfdd15557703ccaeab29f64a12c9adc2d276e2620efcd722a1a4e9409ccd429fbfba2aaaee07995d5653ec9425935b85a4edc4c41df9ae454349d281399a853f7f745555dc0f32baaca7d9284b26b70b49db89883bf35c8a8693a50273350a7efee8aaabb81e6575594fb250964d6e1693b7131077e6b9150d274a04e66a14fdfdd15557703ccaeab29f64a12c9adc2d276e2620efcd722a1a4e9409ccd429fbfba2aaaee005a82e12152bc511027e8246d2aa69da4726b0319d29b79aa853f7f845555dbf0b505c242a578a2204fd048da554d3b48e4d60633a536f3550a7eff08aaabb7e16a0b84854af144409fa091b4aa9a7691c9ac0c674a6de6aa14fdfe1155576fc2d417090a95e288813f4123695534ed23935818ce94dbcd5429fbfc22aaaedf85a82e12152bc511027e8246d2aa69da4726b0319d29b79aa853f7f845555dbf041181aef7bdb24d81c9670d24bab634391186230a53897560a7eff09aaabb7df0e428e8bce18cc6805f3099c8db4ee81ce73205e4a72d2ad14fdfe1455576fbd1c851d179c3198d00be613391b69dd039ce640bc94e5a55a29fbfc28aaaedf7a390a3a2f386331a017cc267236d3ba0739cc817929cb4ab453f7f851555dbef47214745e70c663402f984ce46da7740e739902f253969568a7eff0a2aabb7de8703b4169b7ef49382bf6c1c0d1ad1017937461e1a72eced24fdfe1465576fbcf6c88db804641152824b3ab7999b84829d32b1fc04e5f41a59fbfc28daaedf79d65240fad62e4ad08162d7eeb29ceb84e52989b7d9cc0274c3f7f851c55dbef39565a78079c2bdcc7f92125ce49fb9897517392f83981f2997eff0a39abb7de7138c748bc0eba3c47bf0873948a5559294f2981ed73058933fdfe1474576fbce1718e91781d74788f7e10e72914aab2529e5303dae60b1267fbfc28e8aedf79c26f2f7b9d114b73d6c8e7f64a1fb38c9fe8e863b2cc17c8d0f7f851d25dbef3836a714fe6f8f96a655e96148c35c5413a7e132362983135a2eff0a3a5bb7de70560f4f87ac855578289f2511061e8aa6fa868a2c230640f46dfe1474c76fbce094dfc49a2670d31bce0aaca18ba2f7cd9fd13a18160c9c28ebfc28e99edf79c11280aebf1a47ce6318e1bbc296abd21aea6699effc195291e7f851d34dbef38215015d7e348f9cc631c377852d57a435d4cd33dff832a523cff0a3a69b7de70422c3e087368561b7e0535189da152aeb545e8d7fc0656487afe1474d46fbce083587c10e6d0ac36fc0a6a313b42a55d6a8bd1aff80cac90f5fc28e9a8df79c1063d0a7a7a77baf0afe19a8a6e7ba8e2cfc3e5bbed195ac5ecf851d352bef3820b06274da1c5d864178ffb3cd4edafed9a340dd3d732b72fdaf0a3a6a67de704150c4e9b438bb0c82f1ff679a9db5fdb34681ba7ae656e5fb5e1474d4cfbce082a189d36871761905e3fecf353b6bfb668d0374f5ccadcbf6bc28e9a99f79c1054313a6d0e2ec320bc7fd9e6a76d7f6cd1a06e9eb995b97ed7851d3533ef3820a86274da1c5d864178ffb3cd4edafed9a340dd3d732b72fdaf0a3a6a67de70415050fc0ce5916f05a9cc2dc295ac5bdb412dfcd6e356e79f5f1474d4d0bce0829f2e0a7277f9408e0b6521ad234f15de7d083c09c3add0e2bf28e9a9a279c1053d5c14e4eff2811c16ca435a469e2bbcfa107813875ba1c57e51d35344f3820a7a443c228cbb64bae5614cdc8532b5a1eecd32830bb7452efda3a6a68ae70414f3148a9dc64d2bf8828f5fe1025bc96bd846a762146e8c01fc474d4d16ce0829e529153b8c9a57f1051ebfc204b792d7b08d4ec428dd1803f88e9a9a2d9c1053ca522a771934afe20a3d7f84096f25af611a9d8851ba3007f11d35345b3820a794306746df3fc246cc47c5300ad4a986bce17d6ca07461b3e33a6a68b770414f2760ce8dbe7f848d988f8a6015a9530d79c2fad940e8c367c674d4d16ee0829e4e4daf7429d56b9de8ebdae823490442ee32380e7ed188738de9a9a2dec1053c9b277141008139be89a47bf83e8866add710b278faa3128b1cd35345be820a79354ee2820102737d1348f7f07d10cd5bae2164f1f546251639a6a68b7d0414f26a29d75caedb497cde5eb608f217f8df56ef0c3fe78c4bd0744d4d16fb0829e4d353aeb95db692f9bcbd6c11e42ff1beadde187fcf1897a0e89a9a2df61053c9a6336fcb6843887631479e4bc05641a55668735b9b3130e5d235345bed20a7934b66df96d08710ec628f3c9780ac834aacd0e6b7366261cba46a68b7da414f269659d1864de4845b7ceb3f56f94f64bd544e0fca69c4c53b49d4d16fb5829e4d2b3fb565489f6b39b1a344d5ea9527a2a34861f0d0898c1a94a9a2df6c053c9a550b7d233e1538f61b134fd3cd20ad6d413d063d9e1319d92a5345bed90a7934a916fa467c2a71ec36269fa79a415ada827a0c7b3c2633b254a68b7db214f269522df48cf854e3d86c4d3f4f3482b5b504f418f6784c6764a94d16fb6429e4d2a45be919f0a9c7b0d89a7e9e69056b6a09e831ecf098cec9529a2df6c853c9a54843e48c8e29f1e46901c364ca0134fc0e7ca635de319f36a6345bed91a7934a8f13db71c92a464b89d04cf18bf8c82017a58ec7b96340114d68b7db244f26951d27b6e392548c9713a099e317f190402f4b1d8f72c680229ad16fb6489e4d2a3a4f6dc724a9192e274133c62fe320805e963b1ee58d004535a2df6c913c9a54742aede6f62894df064f2db457bc9f28b7d8b899c81a022e6c45bed9237934a8e755dbcdec5129be0c9e5b68af793e516fb171339034045cd88b7db246f26951ce37c9f48578b5fed1097cf956e8dacada0f24c31d680a5db216fb648ee4d2a39b6f93e90af16bfda212f9f2add1b595b41e49863ad014bb642df6c91dc9a547366b3a2ac2b93a7dfbf2ba0d5399c95362e8d56872a02b1ac95bed923c934a8e6b6286ae3248d77eafb23a429f29f0cec07ded2ce24057d993b7db247a26951cd5511fb51168118017313aad364a3fc57ba81cb5c180b157286fb648f54d2a39a92e51c2cfa68582e62f3b82648addb2f1fc7bc78001645251df6c91eb9a5473515ca3859f4d0b05cc5e7704c915bb65e3f8f78f0002c8a4a3bed923d734a8e6a2455963eb70788e5089b4318a21d4f3c29e3179fd0592ed487db247af6951cd4316c52083b7539f58e02e8b0c3a080f7fe8a54ff70b277e91fb648f5fd2a39a852d8a41076ea73eb1c05d161874101effd14a9fee164efd23f6c91ebfa547350a5b14820edd4e7d6380ba2c30e8203dffa2953fdc2c9dfa47ed923d7f4a8e6a14423b5cca90ff7d7ece3a8059c69ea3f9f16cdbb5593d9890db247aff951cd42710891241f8617db5693b28ab839b6fee8f1c1367b27cd522b648f6002a39a84d21122483f0c2fb6ad27651570736dfdd1e3826cf64f9aa456c91ec005473509a42244907e185f6d5a4eca2ae0e6dbfba3c704d9ec9f3548ad923d800a8e6a134105aeabc996e7063169f6d541339a76f2522f73a93e84d16b247b00251cd426720b5d57932dce0c62d3edaa826734ede4a45ee7527d09a2d648f6004a39a84ce416baaf265b9c18c5a7db5504ce69dbc948bdcea4fa1345ac91ec0094735099c0ee9ae91a1d605d081c19298902b6373d55a15d19f440cb6923d80138e6a13371dd35d2343ac0ba1038325312056c6e7aab42ba33e88196d247b00271cd4266e3ba6ba468758174207064a6240ad8dcf556857467d1032da48f6004e39a84cdc035fcd39e512b13bdad2bcbc77b9439957130a89fa2209b591ec009d735099b706bf9a73ca256277b5a57978ef728732ae261513f444136b23d8013ae6a1336e0d7f34e7944ac4ef6b4af2f1dee50e655c4c2a27e88826d647b00275cd4266dc1afe69cf289589ded695e5e3bdca1ccab898544fd1104dac8f6004eb9a84cdb835fcd39e512b13bdad2bcbc77b9439957130a89fa2209b591ec009d735099b706bf9a73ca256277b5a57978ef728732ae261513f444136b23d8013ae6a1336e06405a7261b0ed1ae81755715e4af0e507104fe7b888411657b00275dd4266dbf541da6f90c802614cfb0d623bfbc449b8e4c58f41109c6cbf6004ebca84cdb7d344da69eef62cee16c27d43f75d6b131c8db0de522153198ec009d7a5099b6f9689b4d3ddec59dc2d84fa87eebad626391b61bca442a6331d8013af4a1336df25d48f32893edbe3d7d6578f5cdb8ecc1cfae939188566a64b00275ea4266dbe346a43efdfe3dff32c79119e391d0017e4b9f832010ae78ca6004ebd584cdb7c5195ad6a8d2de811d5be85bbf19fe2af74381623d215e9595c009d7ac099b6f8932b5ad51a5bd023ab7d0b77e33fc55ee8702c47a42bd2b2b8013af581336df12656b5aa34b7a04756fa16efc67f8abdd0e0588f4857a565700275eb0266dbe2456e90df36d568ba2ac0905f0c64f7fb4c84d6de60af650af004ebd614cdb7c4739e47493b10f99fd24d833d982fd27643cdd37c915ee455f009d7ac399b6f88d73c8e927621f33fa49b067b305fa4ec879ba6f922bdc8abe013af587336df11a73a42afb9aa0eaac6026f75e0252c58b9fb73b2157bab97d0275eb0f66dbe233735aaea40ba458108d1416b3fb03b311ebb0d23faf7716fb04ebd61fcdb7c46572c7b5f4edab32d8e6ee555fec658e1e83a4007c5eefd1f709d7ac409b6f88c971a1c496b1b8e8699aa2d2b7cf294437b38a5cf5bde147ef13af588236df11916f55e1da39d4538b020bcd6794b0b06a135715e87bc433df275eb1056dbe23216abe1c614a0b29cdd0ddc2c71fbf88ced2f087cdf78a0bbf4ebd620bdb7c4641618e916f6a78d6536e81ad8635dd399852236b98ef15bb7f9d7ac418b6f88c814f2f7b8bab542f5ea9c9830462189b2b5089332ede2d1b003af588326df119012a714fc42d0ae17520592e00ba8f5e514d54c25abc5bda0175eb1065dbe2320154e29f885a15c2ea40b25c01751ebca29aa984b578b7b402ebd620cbb7c4640235d797bd8a8e088c4e2adffae09ba13fe1956567f1710c06d7ac41986f88c8036baf2f7b151c11189c55bff5c137427fc32acacfe2e2180daf588330df1190066370b7a3009aa4e90571a7e378ccacfa3297f19cc5c5d41c5eb10662be23200b52f3c7f2d797cc89d7a977bee7f781ef11723f368b8d4c39bd620cc67c46401531f9e89285921bcb7c191775c64d2bd8cf26da6a171c3c747ac4198df88c802963f3d1250b243796f8322eeb8c9a57b19e4db4d42e3878e8f588331bf119005253f9faf6ecaaf1e5bd2a85cf0f92d75de8ddc5a55c7295d2eb106638e23200a334064e9aafb86683471b33961583d6b67dfde747b8e6cfa6d620cc72c4640145680c9d355f70cd068e36672c2b07ad6cfbfbce8f71cd9f4dac4198e588c8028a5c2b931795441cc4e932f6504c6d82d4a439f91be39ce29c588331cc1190051344697edc00eabc419f2c14988f392da3f4b64e34c73b6939b106639923200a2514e55664d837fb3b0b1e512914d0834295aef8668e787674620cc7334640144929caacc9b06ff676163ca25229a106852b5df0cd1cf0ece8c4198e668c8028925395599360dfecec2c7944a453420d0a56bbe19a39e1d9d188331ccd19005124333d0bd398225c9025b8b1409ce2420f59ba1f3173c557a41066399b3200a247667a17a73044b9204b71628139c4841eb3743e62e78aaf4820cc73366401448e590687fb36ebf4f863a8ecfa69e73038132ad8c2cf1702914198e66dc802891b3e1f68a3443a6ca8941801ecca2c886ad2980d829e2fa9238331ccdc90051235085129f35ed75c08f4f62bd18ab738d0517277023c60f648066399ba200a246910a253e6bdaeb811e9ec57a3156e71a0a2e4ee0478c1ec900cc73374401448d22144a7cd7b5d7023d3d8af462adce34145c9dc08f183d920198e66e8802891a442894f9af6bae047a7b15e8c55b9c6828b93b811e307b240331ccdd1005123481124f7e2c3d843471c28e510a1d1b4ffc369cc20c611088166399ba300a2468f2249efc587b0868e3851ca2143a369ff86d398418c221102cc73374601448d1e4493df8b0f610d1c70a394428746d3ff0da730831844220598e66e8c02891a3c153a17c2f5249cf0ae0d507d04ebcff8c790bd033089e80c31ccdd19051234772a742f85ea4939e15c1aa0fa09d79ff18f217a066113d0186399ba320a2468ee54e85f0bd49273c2b83541f413af3fe31e42f40cc227a030c73374641448d1dc35e316c47f876a3d3d30abe01dbca7c0e8c844168450e4628e66e8c92891a3b76bc62d88ff0ed47a7a6157c03b794f81d190882d08a1c8c51ccdd1925123476e639eb3bed4802bacc188d7786d50c6fe4f636c571145358b399ba325a2468edb534fc02a7f62da114fd7d6e8d0ffb5f74b0934ab228c0f177337464c448d1db532b1d901d52836da6c75d5c9985d93e94254c5534519c22fe66e8c99891a3b696563b203aa506db4d8ebab9330bb27d284a98aa68a33845fccdd1933123476d256d9bcb42b035e217e9d7f1e57d4779fb595714a1468acc099ba32672468eda339c5d2152c693efaca012634a607173a176d3e9128d2fd82337464cf48d1db45738ba42a58d27df594024c694c0e2e742eda7d2251a5fb0466e8c99e91a3b68a7329a10188077ea2f4cac0ca8e7a84e309f75641a34d9a09cdd1933e23476d1372659aafe6717ffdb65ba98d135331c0c0310880469cd8149ba3267d468eda2570dd8e0ca34582b3397d7b121d048b7c2ca46cfd8d3b542a37464cfb8d1db4496dcd74c61ced881e3fc11e1c30673ef3058b35f81a784c556e8c99f81a3b689167ad4239103d92f44c486430572ca5e0b758c7ed34f23cabdd1933f13476d1215b6cdd1ef6dda8a06556f058a4b773bc1af3ebd769e61d58ba3267e368eda24142ec12eac41dd3f8977408a93fcd0f72e22a33abd3cddeb27464cfc7d1db448111ea7e825e9e2aa8fbae394a75f846e07096c354a79d6165e8c99f90a3b6890123d4fd04bd3c5551f75c7294ebf08dc0e12d86a94f3ac2cbd1933f21476d120247a9fa097a78aaa3eeb8e529d7e11b81c25b0d529e758597a3267e428eda24041b664cbfcb53d7ffaa37f24ba6205efe30f876a23cecaf30464cfc861db4480736cc997f96a7afff546fe4974c40bdfc61f0ed4479d95e608c99f90c3b68900e6d9932ff2d4f5ffea8dfc92e98817bf8c3e1da88f3b2bcc11933f21876d1201c6744beab310142b51e85ba5527611fec3406110ee7671d833267e431eda240375a9bd6033865082209d19ca2452067d3144e7e1acecfdf0764cfc864db44806d414a04b3472c92fbe069613c809ef7a0d4df58329da1620fc99f90cab68900d90ea6621364bba8af8d98ea70f79c173c56010c623b446820933f21966d1201b11d4cc426c977515f1b31d4e1ef382e78ac0218c47688d041267e432cda2403623a99884d92eea2be3663a9c3de705cf158043188ed11a0824cfc8659b44806c401456947fc3fc834398d7b7fb33ee1dd5c4abf0eda24e50599f90cb468900d87028ad28ff87f9068731af6ff667dc3bab8957e1db449ca0b33f21968d1201b0e0515a51ff0ff20d0e635edfeccfb8775712afc3b6893941667e432d1a240361c0a2b4a3fe1fe41a1cc6bdbfd99f70eeae255f876d127282ccfc865a344806c381456947fc3fc834398d7b7fb33ee1dd5c4abf0eda24e50599f90cb468900d87028ad28ff87f9068731af6ff667dc3bab8957e1db449ca0b33f21968d1201b0e0515a51ff0ff20d0e635edfeccfb8775712afc3b6893941667e432d1a240361c02ec6fcaaf6469cd49383e7d195cf16a8d1a1e36a127426cdfc865a354806c37f5d8df955ec8d39a92707cfa32b9e2d51a343c6d424e84d9bf90cb46a900d86fe472e4b58af7cf60a1ad5c73e4d9a829df2c9e9a549d23f38f21968d6201b0dfb1a6eef5e355c6ecc0271b67491932d3691d62f4793a62272e432d1ad40361bf534dddebc6ab8dd9804e36ce923265a6d23ac5e8f274c44e5c865a35a806c37ea69bbbd78d571bb3009c6d9d2464cb4da4758bd1e4e9889cb90cb46b500d86fd45f89d39e8145f917e053db9c82f791af3af3d6399d32b79821968d6b01b0dfa74b25ffe9d8ee74e78d6ddf30fc4d4b59222a08703a671331432d1ad70361bf4d225e5880883f6c86e7a1e659eef8beacf0966cdd74cfca63865a35af06c37e9944bcb101107ed90dcf43ccb3ddf17d59e12cd9bae99f94c70cb46b5e0d86fd32158bbaaef76034d36b4dc15fb24122ae6e9c0f72d340cd8f1968d6bd1b0dfa632b17755deec069a6d69b82bf6482455cdd381ee5a6819b1e32d1ad7a361bf4c6562eeabbdd80d34dad37057ec9048ab9ba703dcb4d03363c65a35af46c37e98c38702e2491642953273432f588673d6e2122d7939a081079cb46b5e9d86fd31770e05c4922c852a64e6865eb10ce7adc4245af27341020f3968d6bd3b0dfa62e6dd3113f1bf328046996f3ce17fb1db330cdba4b6821e5e82d1ad7a861bf4c5b67b87b2b0e48d2c09ff40f94265463610dddd093d0456fd15a35af51c37e98b55b834f02f2f428390cae47204306eebcc7fdfd24a08c83a3b46b5ea486fd31694318f6b2bc4ad329e622b6387c6c05743c3e5646411aab4868d6bd4a0dfa62d1124446124ef8290b990b9468ef3632e324bf08898236fa91d1ad7a951bf4c5a124888c249df05217321728d1de6c65c6497e1113046df523a35af52a37e98b42491118493be0a42e642e51a3bcd8cb8c92fc222608dbea4746b5ea546fd316841e34893f4e23cb149522cb3f700fbf13d23aa04911b9788f8d6bd4a9dfa62d073c69127e9c4796292a45967ee01f7e27a47540922372f11f1ad7a953bf4c5a0e04e47daa0ef1af0a215154f5b69d2449f52cdd2146e7863f35af52a87e98b41b09c8fb541de35e1442a2a9eb6d3a4893ea59ba428dcf0c7e6b5ea550fd3168361391f6a83bc6bc28854553d6da749127d4b374851b9e18fcd6bd4aa1fa62d06c2723ed50778d78510a8aa7adb4e9224fa966e90a373c31f9ad7a9543f4c5a0d84e47daa0ef1af0a215154f5b69d2449f52cdd2146e7863f35af52a87e98b41b028a20deeb49863fbf6f0c6aeca02b13951de0025dcf26be7b5ea5510d316835f51441bdd6930c7f7ede18d5d94056272a3bc004bb9e4d7cf6bd4aa21a62d06be2e9a9067a8c412a7a88942b31e68ecdff3ba5c9473cb539fd7a954444c5a0d7b5d3520cf5188254f511285663cd1d9bfe774b928e796a73faf52a88898b41af6467c9a4b7972cd566eeb32c47001db7a7b2bce4ecf2ef2805ea55112316835eb190b8d43c9481d64aa9c8d80d661deefa299f89a9e5f8901bd4aa22562d06bd532171a8792903ac955391b01acc3bddf4533f1353cbf12037a95444ac5a0d7aa642e350f25207592aa72360359877bbe8a67e26a797e2406f52a88958b41af54546ec2cb20a36ddd21aa93fea96d1f77c11220d1f2fdec0eea55112c16835ea734efde4317a95e72101b4ff5493866ea2e669da0e5fd7c1ed4aa22592d06bd4d69dfbc862f52bce420369fea9270cdd45ccd3b41cbfaf83da95444b25a0d7a9a5fd1d1b93507fc800d3367cd1b3fc3a365dcd28097f7947c52a88965b41af5334bb5fc1f40727bb7e72cf7922cddaf4177fc00fe2ff0ccf9a55112cc6835ea65237e50eb57477a279b20171c5019867d9c3a5df95fe33df44aa22599d06bd4c946fca1d6ae8ef44f36402e38a0330cfb3874bbf2bfc67be895444b33a0d7a9921a0b9c5a33806b563946846936c441f11d2bd3e27f8e9bd22a88966841af5323341738b46700d6ac728d08d26d8883e23a57a7c4ff1d37a455112cd0835ea646682e7168ce01ad58e51a11a4db1107c474af4f89fe3a6f48aa2259a106bd4c8c5c6f3b7e7265dd6996fa4b41ac80378395a0fb10fc7682925444b3430d7a991744f0cfa9bb2e3d8afababe7b4f5e9701d784521ef8eea925a88966871af5322d15f3f8004cbefdcdc23ba4ee951b55fe5b4b003af1def64c5112cd0f35ea64592be7f000997dfb9b847749dd2a36abfcb6960075e3bdec98a2259a1e6bd4c8b257cfe00132fbf73708ee93ba546d57f96d2c00ebc77bd931444b343cd7a991643bb218af3c5a7125dea34f6c9f38d7ed869a5dd48ef956638896687aaf5322c703768a0b4f1765038a0cc6d134cfd7d5b97717a61df450c8112cd0f65ea6458d06ed14169e2eca0714198da2699fafab72ee2f4c3be8a1902259a1ecbd4c8b1a0dda282d3c5d940e28331b44d33f5f56e5dc5e9877d1432044b343d97a9916341bb4505a78bb281c50663689a67ebeadcbb8bd30efa28640896687b2f5322c683768a0b4f1765038a0cc6d134cfd7d5b97717a61df450c8112cd0f65ea6458d06ed14169e2eca0714198da2699fafab72ee2f4c3be8a1902259a1ecbd4c8b1a069b4db809c3bc39a4ff7dc452a541d690a0845847d15d6054b343d98a991633f5f7c0fae0eda09ec6cb5e0824b0662ccc052e705fa2d500b96687b325322c67d4b0a7808f4169690a631e8fc8c6aed942ce82a08f45c44182cd0f665a6458cf9222748bebe8fafd91929f9f10f3403230612b00ee8ba2c3159a1eccc4c8b19f1444e917d7d1f5fb23253f3e21e6806460c25601dd1745862b343d998991633e214af7ba7d0a1421c316e0fbc332e3486c48d1c38a2ea54c66687b332322c67c3295ef74fa142843862dc1f78665c690d891a387145d4a98ccd0f66646458cf8652bdee9f42850870c5b83ef0ccb8d21b123470e28ba953199a1eccc8c8b19f0c318e35eb5b6c93995836a5d98fcfcc30d0ab3dc217544a34343d999291633e17631c6bd6b6d92732b06d4bb31f9f9861a1567b842ea89468687b332522c67c2e524b305a4414d11d2da0bf5e359d58bdeeef53055d52ccd1d0f6664b458cf85b30a8b9615e8c24f22807a6b46198d9768a210207baa73da4a1eccc978b19f0b5615172c2bd1849e4500f4d68c331b2ed1442040f754e7b4943d9992f1633e16a4eb53e32509316806ce4c2c97cc18dd4d4c6641bea9e9a9387b3325f2c67c2d3297cd5117788afb8a68fad8aefe143a455cf2434d53ed9280f6664bf58cf85a552f9aa22ef115f714d1f5b15dfc28748ab9e4869aa7db2501eccc97eb19f0b4a3205acf2b485419a6704de23b5e3368c037eecd054fd08a13d9992fe633e1693640b59e5690a8334ce09bc476bc66d1806fdd9a0a9fa11427b3325fcc67c2d2654290c77a877892168d9a086cdeb022aba3e0f3e53f5c685f6664bfa8cf85a4b3464719c275194fa9e79690592342c5020be7a79a7ed310ceccc97f619f0b49568c8e3384ea329f53cf2d20b246858a0417cf4f34fda6219d9992fec33e1692a5da41f1d73a8d6a246abcc0e3f2ed93b2f3c45e39fb66834b3325fd967c2d253475a96e7bdb42ffc5a1dc01474bbda710abae7c43f6e746a6664bfb3cf85a4a51ac7867c51cae2b08101a820dfd5dcdcc1b82b857ede8cd5ccc97f689f0b4949358f0cf8a395c56102035041bfabb9b98370570afdbd19ab9992fed13e1692926b1e19f1472b8ac20406a0837f57737306e0ae15fb7a33573325fda27c2d2524624e8c8f64b9983bd4d368fef50d0ee0ba03b828f6f60aaf664bfb45f85a4a4750af71cb9fd5b32f766cf9f5e07845bc2049cc4eededb95fcc97f68cf0b4948d2d713c44160de916b9a01be3b74eb372ecd5f49adbdd16c0992fed1ae16929195ae278882c1bd22d734037c76e9d66e5d9abe935b7ba2d81325fda35c2d2523241d749bd2e9a2712b3469786d398f5c65f9a2e686f75ff0364bfb46c85a4a4630fc0ec273396d0dd335357059d9013876b76b8cddeeda207c97f68da0b4948c51f81d84e672da1ba66a6ae0b3b20270ed6ed719bbddb440f92fed1b41692918a3f03b09cce5b4374cd4d5c1676404e1daddae3377bb6881f25fda3682d2523140a19b9e6731909a16760e024e2dec43607f8226bf76eb43f4bfb46d15a4a4627143373cce6321342cec1c049c5bd886c0ff044d7eedd687e97f68da2b4948c4e2866e799cc6426859d8380938b7b10d81fe089afddbad0fd2fed1b456929189c50cdcf3398c84d0b3b07012716f621b03fc1135fbb75a1fa5fda368ad25231382dadf71407f31cce42d42a46244a6b5b2bc482bc76ece7f5bfb46d16a4a4626f5b5bee280fe6399c85a8548c4894d6b657890578edd9cfeb7f68da2d4948c4de42ca34fcf62ef5f0d816d1108787d5675b5466eedbb543d7fed1b45b929189bb11a6c2a6c2c06e997cf3ca19056dd2c962eb29dab76c2bb0fda368b825231375234d854d8580dd32f9e794320adba592c5d653b56ed85761fb46d1704a4626ea469b0a9b0b01ba65f3cf286415b74b258baca76addb0aec3f68da2e0948c4dd419486de2ec65f783b46478c021ccbe45c39baad2bb630188ed1b45c229189ba73290dbc5d8cbef0768c8f18043997c8b873755a576c60311da368b845231374e6521b78bb197de0ed191e3008732f9170e6eab4aed8c0623b46d1708a4626e9c5655c7c439923ed56fe9edf904c41a28c91fb292db19b04868da2e1248c4dd3738bde83549870062ac9a03e9ffe65c4c3e81c122b6350491d1b45c259189ba6d717bd06a930e00c5593407d3ffccb8987d0382456c6a0923a368b84b231374da6f09f981fc7e84427f2e379ff5f7992ba6496087d8d5b64846d170974626e9b36a264bb0cf5f8b3ccb229737e24d5a51f8d51d0cb1ad10918da2e12f8c4dd365605ef00e75219931630b5667baf8dc9e9dec9616635bc5241b45c260189ba6c94cd038c9c0a5b51a92dcd4c76c4fe137e81b8829c6b92e49368b84c131374d9125b2ca4057adececf27fd186cefdea6a7c796c508d7400936d170983626e9b214b659480af5bd9d9e4ffa30d9dfbd4d4f8f2d8a11ae80126da2e1306c4dd364222dd81ae351a366b96c56e133255d1a49e280d3f35d1a64eb45c260e89ba6c8345bb035c6a346cd72d8adc2664aba3493c501a7e6ba34c9d68b84c1d1374d90617885f65aacb5c6627dbe044bfb56e8d24e290f9d7483d3bd170983b26e9b20b2f10becb5596b8cc4fb7c0897f6add1a49c521f3ae907a77a2e130764dd364165e217d96ab2d71989f6f8112fed5ba34938a43e75d20f4ef45c260ec9ba6c82c485553da2cbd65e90ba52a1df4099c63d356e3cbba438ddf8b84c1da374d90571cbd00612fdd4e89e4107c33de7160c252f023947488bfc0170983b56e9b20ad397a00c25fba9d13c820f867bce2c184a5e04728e9117f802e13076add36415a72f40184bf753a279041f0cf79c583094bc08e51d222ff005c260ed5ba6c82b471fa5bb6554cf706ed4a0996e9e92e0d43c378a0a447a201b84c1dac74d905677007101980fc70c5a75a3b25ca30841533c94d3e4890e80470983b59e9b20acd6c2078dfd85b64431b7a9e438abf302513d4f67991237409e13076b4d364159964534a6c87194b3e03bb647f0bdc8844d3ec48f022488c14c260ed6aa6c82b3154b8ed85e4951933d43cf0f60e173884541aeddd4492bc2a84c1dad64d905661358433b89f8cb51f754009e4128c9903547837b789271c560983b5ad9b20acc16b0867713f196a3eea8013c825193206a8f06f6f124e38ac13076b5b364159826223278f54955735a1c64f8840908c07fe233adb249e1559260ed6b76c82b3035058a7cb7f8d31231052c708777f400aa888d1b3493dceb34c1dad6fd90566052cc3a843d57ce4fded6bb608e55ca80ffd53ff63927d4167983b5ae0b20acc0959875087aaf9c9fbdad76c11cab9501ffaa7fec724fa82cf3076b5c1641598123f20f9bc2c5616af8275001b8bd0c83aa192598b49f6a99f60ed6b83c82b30230a544c252f0eb016d1b0282f0dffb86fef670f1393eef73fc1dad7089056604514a8984a5e1d602da360505e1bff70dfdece1e2727ddee7f83b5ae1120acc08a29513094bc3ac05b46c0a0bc37fee1bfbd9c3c4e4fbbdcff076b5c224159811452a26129787580b68d8141786ffdc37f7b38789c9f77b9fe0ed6b84482b3022831571affc74d8424e7c8aae8d659aef9a2b34d363ef117fd1dad708a0566044f62ae35ff8e9b0849cf9155d1acb35df345669a6c7de22ffa3b5ae1140acc089e516ec4abf398934b6be8d39b4fc4e3e1370f90d5fbc603f576b5c2291598113b2eefe204bd93a94ea497cf2e95e7efbd1a617da8f78dabebed6b84532b3022755ddfc4097b27529d492f9e5d2bcfdf7a34c2fb51ef1b57d7dad708a6566044ea47d1e0bfccb127f25f2564b24dfde6ef15c852a0de3853b0b5ae114dacc089d31bb61a2c6fc4d29c8b10f15c9259f5d8d7d3013ebc724b626b5c229c598113a5376c3458df89a5391621e2b924b3ebb1afa6027d78e496c4d6b84538b302274a6ed868b1bf134a722c43c5724967d7635f4c04faf1c92d89ad708a7166044e9469c32a105489179c254db2dc892dd6c16ada65f2e393ff145ae114e3cc089d275f98accd7f74b1f017618db108b9d57d81f727e2c729a229b5c229c898113a4d4b43b247d54be697fb89435a07d1d2f5b030abc28e54e8546b845392302274992299bd3c80fa4fe7c3d8aeac0601cde60ca3b3821cab74a9d708a7256044e93145337a7901f49fcf87b15d580c039bcc194767043956e953ae114e4ac089d26216794d9eda4bc256dc28e2a80e655f92ded12a0572af76a85c229c968113a4c32cf29b3db49784adb851c5501ccabf25bda2540ae55eed50b845392d0227498659e5367b692f095b70a38aa039957e4b7b44a815cabddaa1708a725a044e930c3fdcc5a3a8c0956eae0d3d3869892491a2cbac28957d5943e114e4b5089d26170bcbe3f427e3ad9528e0a268c970711df1d9b44e2afc5688c229c96b113a4c2d1797c7e84fc75b2a51c144d192e0e23be3b3689c55f8ad11845392d62274985a2f2f8fd09f8eb654a38289a325c1c477c766d138abf15a2308a725ac44e930b45e5f1fa13f1d6ca9470513464b8388ef8ecda27157e2b446114e4b5889d2616848d097ef549d5c0a5ad04e848d6539d9c9dda0dfafc70c8d229c96b213a4c2cf1db3888b7f9d3acc8266c50111289bae3ffd9dbc5f8fbd1b45392d652749859d3b671116ff3a759904cd8a022251375c7ffb3b78bf1f7a368a725aca4e930b3a02e07adad4d76de9d6613bfc3b0096b3ac38d2ee7e40986e14e4b5959d26167305c0f5b5a9aedbd3acc277f876012d675871a5dcfc8130dc29c96b2b3a4c2ce60b81eb6b535db7a75984eff0ec025aceb0e34bb9f90261b85392d656749859cc1703d6d6a6bb6f4eb309dfe1d804b59d61c69773f204c370a725acace930b3982e07adad4d76de9d6613bfc3b0096b3ac38d2ee7e40986e14e4b5959d26167305c0f5b5a9aedbd3acc277f876012d675871a5dcfc8130dc29c96b2b3a4c2ce6044310f620c3dfd2d65152706b683d4e5ba77179c9027bf86392d656849859cbf14747770eede7d1296f076056365d1c621308b362051230d725acad1930b397d28e8eee1ddbcfa252de0ec0ac6cba38c4261166c40a2461ae4b595a3261672fa51d1ddc3bb79f44a5bc1d8158d97471884c22cd881448c35c96b2b464c2ce5f42fb614344d566b4c8449d823118cb62bb5c6b5ae028abc6c92d6568d9859cbe75f6c28689aacd6990893b04623196c576b8d6b5c051578d925acad1b30b397ce4aeaa97e0bbc2fe9dded88843c9100a9835d32b50a2c95b34b595a3761672f9b21e7aba8eddae28b88a139006f80294db2fcc167145acf6796b2b46fc2ce5f3543cf5751dbb5c51711427200df00529b65f982ce28b59ecf2d6568df859cbe6a13b107508dce0ce5ef4b0bf9b45ecd3178356199516ce19f5acad1c00b397cd327620ea11b9c19cbde9617f368bd9a62f06ac332a2d9c33eb595a3801672f9a64ec41d4237383397bd2c2fe6d17b34c5e0d5866545b3867d6b2b47002ce5f34c299a933144d2e9e7471e87c5995491866ded68c78b68b0fbd6568e0159cbe6975335266289a5d3ce8e3d0f8b32a9230cdbdad18f16d161f7acad1c02b397cd2e327ca571e9ae2a54e940470e5bb06e1463f7ff1b2da467f0595a3806672f9a5b64f94ae3d35c54a9d2808e1cb760dc28c7effe365b48cfe0b2b4700cce5f34b65604ee747d1b2c0b71c74431651fe04c3c225869b69343c26568e01a9cbe696b381c3595d098daceb054b05ac09de89324870cd06d282b85cad1c036397cd2d570386b2ba131b59d60a960b5813bd126490e19a0da50570b95a3806c72f9a5aa6c832f0418c5edf28e18e962f8d5ca473e5e8f3eb4a252182b4700d9e5f34b536518b6b507ee5e9ce8f7fabde809bc8928ff7a7a69464831568e01b4cbe696a55643c616e63f3ff19eb61d73c671a10cfe4150f1d28e3463ad1c036a97cd2d493899e4daa2e1029b0a3262df83416a14a8c4fde0a51e0cc85a3806d62f9a5a917133c9b545c205361464c5bf0682d4295189fbc14a3c1990b4700dac5f34b5226e79ec1761e68d23f58fb3760363d04d4f56537f9479d72268e01b59be696a43690630db9a2f9cffb7e58ee3fd25c8954aef02fc28f55245d1c036b47cd2d4855e1eba640ac1bcb73c9145bff0a9b925422061f551ec488ca3806d69f9a5a909484fcd74ebe5fc2645e8b377d7b19a4530831fe7a3da351a4700dad4f34b52111cb1f396ae2e7b0458978ee7a5c15c850d489bcc47b60e358e01b5aae696a4213963e72d5c5cf608b12f1dcf4b82b90a1a9137988f6c1c6b1c036b55cd2d484272c7ce5ab8b9ec11625e3b9e9705721435226f311ed838d63806d6ab9a5a908471a1f56247d65ada91829f3524690c2316873a5f3db215ad700dad5834b521076f564371660f386cefcb66623f304040d950d0bb7b65cf5be01b5ab1696a420d6abedf8fa280f391ac5cf4bc74bea87c5ee3fd73f6cd42b8c036b563d2d48419619017cc1b6469db25801170dfdb78f36a0a56e4ed9c2972806d6ac8a5a908314f3288450d2b566e17c64ad9b61519e1805709c6db39f6e600dad5924b5210612a776936f0b92f93fc52bdab62885bbdacf06f8ab67591cd01b5ab2596a420c154eed26de1725f27f8a57b56c510b77b59e0df156ceb239a036b564b2d48418235effd8899474107be111ea5807f96f160041a27d9d7eb3506d6ac975a9083036bdffb11328e820f7c223d4b00ff2de2c008344fb3afd66a0dad592eb521060663d24ecf3b7f86d6c50aa28df85c83c02c52c49c676150d51b5ab25e6a420c0b53b6f64b4d61906556db6d13e7172f7b04e7e535cec445ab36b564bdd4841815338045437125a3827a7d021fc48c86f0b61226689d8a2f576d6ac97ca908302967008a86e24b4704f4fa043f89190de16c244cd13b145eaedad592f9521060525a136dba9af910c1b6ba3077089043bd848af59f762a615eb5ab25f3a420c0a3403934220c54a43b3a3a88e6077eaf75b558473bec5666be6b564be8484181450c84c0f0ef0bcb2e413b39c4055b86e616f2ea74d8ae717dd6ac97d190830289190981e1de17965c827673880ab70dcc2de5d4e9b15ce2fbad592fa321060512321303c3bc2f2cb904ece710156e1b985bcba9d362b9c5f75ab25f46420c0a2464260787785e597209d9ce202adc3730b79753a6c5738beeb564be8c84181448545e67bbc71f359be079c4384c16965c1b71034a8ae8bbde6ac97d1a0830288f34cf282464a0edef8db9b0688e8b54b2e324629215d31bbdd592fa351060511d699e5048c941dbdf1b7360d11d16a965c648c5242ba6377bab25f46a20c0a23a5f4ef93e68e63a7603ace99a308b7ac638d3e645574e12f8564be8d5418144734ab04b29a82ef7a3d41ffb2c57751d871dea2887ae9dc9f1ac97d1ab830288e52172ef0026c071ff75061e50a5486308e816ad0c5d3d37e4592fa358060511c942e5de004d80e3feea0c3ca14a90c611d02d5a18ba7a6fc8b25f46b00c0a239211de14ad71644ab5a0dea13a8b7fb41e4c9d102e74f6839264be8d611814472323bc295ae2c8956b41bd427516ff683c993a205ce9ed0724c97d1ac230288e46477852b5c5912ad6837a84ea2dfed079327440b9d3da0e4992fa358460511c8c1b02fe186184d864d3bb31cc525bc8ed112add70a7b5c09425f46b09c0a239173605fc30c309b0c9a7766398a4b791da2255bae14f6b81284be8d6138144722e6c0bf861861361934eecc731496f23b444ab75c29ed7025097d1ac270288e45c642a496fe28945de6a9fb65a893c6f63359947823dafa8a22fa3584f0511c8b75466eb8c9b750e74a20594ad08d706c11774eb017b60f5455f46b09f0a23916d34e02fc60d4c9fa110d15152080c357cdb2c31fff6c38e8bbe8d613f144722d969c05f8c1a993f4221a2a2a410186af9b65863ffed871d177d1ac27e288e45b25f9317c50b95013c100b6d40168efdee18f323fcdb0fde2ffa3584fd511c8b634b388836ed8c852fecdd0278237c23d6de28a3f6b6216060f46b09fba23916c52283691ab17b8d17a6802ce83d566fa86893a3ea6c4464c2e8d613f844722d894506d23562f71a2f4d0059d07aacdf50d12747d4d888c985d1ac27f088e45b12161ffd179c50b71666c6db98ebb7e69c4e90eba6b113370ca3584fe211c8b6232c3ffa2f38a16e2ccd8db731d76fcd389d21d74d62266e1946b09fc423916c46587ff45e7142dc599b1b6e63aedf9a713a43ae9ac44cdc328d613f884722d88c3d124169b8e83b6b02fd04bf541d5cdd20c9b932889b5c661ac27f118e45b1170636db804832f98dd2c031769e98e1b4edd5ce6211385ccd3584fe241c8b622d0c6db7009065f31ba58062ed3d31c369dbab9cc42270b99a6b09fc483916c45a18db6e0120cbe6374b00c5da7a6386d3b757398844e17334d613f890722d88b431b6dc024197cc6e96018bb4f4c70da76eae731089c2e669ac27f120e45b1168636db804832f98dd2c031769e98e1b4edd5ce6211385ccd3584fe241c8b622d052edc8b5dcc1b47224cc56cbc97a5e9866fc283f270d3da7b09fc484916c459f31edea188fe5eb9c165ed58f8952e52b7a3aac7b4e1c1f50613f890a22d88b3d63dbd4311fcbd7382cbdab1f12a5ca56f47558f69c383ea0c27f121445b1167a53ca010f15fa312826417e361ba9bca8952d0dea3872214284fe24298b622cf333a65acb0256e508194924642db1a14bd69c77d170e5e68609fc485416c459e5674cb59604adca10329248c85b634297ad38efa2e1cbcd0c13f890a82d88b3ca5aabc3d8dfbe16d831eab988ad24ad2a06b43b42c3993e1927f121515b1167934169e05e95deb068309b9b0950a7824eb9aad282873420334fe242a3b622cf250ee6196a021fe3882dfd5e0a97ad2c981f9801020e69e4679fc485486c459e491dcc32d4043fc7105bfabc152f5a59303f3002041cd3c8cf3f890a90d88b3c923b9865a8087f8e20b7f5782a5eb4b2607e60040839a7919e7f121521b1167924034323fce7619ef93cb1184cb3c78cbba902640d7350c73dfe242a44622cf247068647f9cec33df279623099678f19775204c81ae6a18e7bfc485488c459e48e0d0c8ff39d867be4f2c46132cf1e32eea4099035cd431cf7f890a91188b3c91c1a191fe73b0cf7c9e588c2659e3c65dd4813206b9a8639eff12152231167923834323fce7619ef93cb1184cb3c78cbba902640d7350c73dfe242a44622cf247068647f9cec33df279623099678f19775204c81ae6a18e7bfc485488c459e48e05cdb57e6aeca4106f90c3b24e84156e4ecdb5f59d4337380890a91198b3c91bf45c9087a33f704c5bede9e41c6e0d5c485f91ab0a8688b02121522341679237d17a469a13e508c434a83647b841fd383b834915e50d2ba05242a44692cf246f92f48d3427ca118869506c8f7083fa707706922bca1a5740a485488d259e48df25e91a684f942310d2a0d91ee107f4e0ee0d24579434ae81490a911a4b3c91be44935a5b6c8e6e4d220e14bd4175cc4186de6e6ef8697742a2152234a679237c71e7da41a68304c5c0e88bfa02517b02b881029dc0d308c5542a44695cf246f8d3cfb4834d06098b81d117f404a2f6057102053b81a6118aa85488d2b9e48df1a0608e9167723b42806e926788abce8a8cc83036d34c3d5560a911a583c91be330c11d22cee4768500dd24cf11579d151990606da6987aaac152234b079237c661823a459dc8ed0a01ba499e22af3a2a3320c0db4d30f55582a446960f246f8cc304748b3b91da140374933c455e7454664181b69a61eaab05488d2c1e48df198608e9167723b42806e926788abce8a8cc83036d34c3d5560a911a583c91be3304d2f7b7bbad907b8a9eaf7094dfb3d143ca2c9a3987c4ec252234b089237c65f26714fa44c149229209c160a9254a2232587ef4430fa4185a4469612246f8cbd4ce29f489829245241382c1524a944464b0fde8861f4830b488d2c2448df197a25d7973e06b4cb5c4f3680223fb0b0874262190dc3eaaa17911a584991be32f34baf2e7c0d6996b89e6d00447f61610e84c4321b87d5542f2234b093237c65e62370b5a4f135b02909a02880f520ea17b5cac0340fac4c5f4469612746f8cbcb46e16b49e26b605213405101ea41d42f6b9580681f5898be88d2c24e8df1979619d52f409b39435bf346c9fbcae1d059836d5ccd3eb2d57e11a5849e1be32f2b33aa5e81367286b7e68d93f795c3a0b306dab99a7d65aafc234b093c37c65e566754bd026ce50d6fcd1b27ef2b8741660db57334facb55f8469612786f8cbcac5abbd2b1b02c9d9766fc77d64d6caac6c7ad4266f5984ff18d2c24f1df1979574189fe1036bbbde69abf17a491377d883b9ce0caeb3243e41a5849e4be32f2ad0f2654cd43d9fe850244574118cd230b237c1d92d6662bc934b093ca7c65e5591e4ca99a87b3fd0a0488ae82319a461646f83b25accc579269612794f8cbcab23c9953350f67fa1409115d0463348c2c8df0764b5998af24d2c24f29f19795640544ff16f53276dfdee8e200bcc74053c8234893b333024aa5849e54e32f2ac70a89fe2dea64edbfbdd1c401798e80a790469127666604954b093ca9c65e558e1513fc5bd4c9db7f7ba38802f31d014f208d224ecccc092a961279538cbcab1c2a27f8b7a993b6fef7471005e63a029e411a449d999812552c24f2a719795638544ff16f53276dfdee8e200bcc74053c8234893b333024aa5849e54e32f2ac7034b23b8b7cb15eb3a9e2680f8f463273b0ab6e736661ed55b093ca9d65e558df69647716f962bd6753c4d01f1e8c64e76156dce6ccc3daab6127953acbcab1be5edb46dac927fd86744fc8363376f1c96ef015ca99895957c24f2a769795637b49c8e66268b27dc4b565b8645d4c0b8d8a228792331456b0849e54ee2f2ac6f51fa42571a7c77e41379198c0b0f63f15c0876b21662a5162093ca9dd5e558de93f484ae34f8efc826f23318161ec7e2b810ed642cc54a2c4127953babcab1bd20aa2ee7375807bbcab0c8afaba372451ae60088298aae98924f2a776795637a31545dce6eb00f779561915f5746e48a35cc011053155d31249e54eecf2ac6f462a8bb9cdd601eef2ac322beae8dc9146b980220a62aba62493ca9dd9e558de8c5517739bac03dde5586457d5d1b9228d73004414c5574c4927953bb3cab1bd1836413fe42e6a3e827d8ed7a399d06d159242e4268ab03c934f2a776895637a2f6c827fc85cd47d04fb1daf4733a0da2b2485c84d156079269e54eed12ac6f45e6517583d900b7cc1c30186865d9fdc50f54dec972ac2964e3ca9dda3558de8bb56410927f6797c3b52c93504b19de09c96de352b5586d09d7953bb47ab1bd17538946afcc3557b2e725892015999e933d9fec653ab0f453bf2a776905637a2e97128d5f986aaf65ce4b12402b333d267b3fd8ca7561e8a77e54eed20ac6f45d26e64049fe3b86f7196286ffd5cc5ccca143d754bac3eb8f0ca9dda4258de8ba368da61ec9dd3619af91707f2afe9c18ed4bd4694587f15e2953bb485b1bd17455dc71c86120945edbef437dd5631ab1855bce925b0ffcfc62a77690c637a2e8947a091b8fa750e934aae97b2a2c17e2b57bc2e486201438d54eed219c6f45d111b537c1ecb4c9fde6223575d3be124515bbab88dc4042b1ba9dda4348de8ba2136a6f83d96993fbcc446aeba77c248a2b775711b8808563753bb48691bd174426d4df07b2d327f79888d5d74ef8491456eeae2371010ac6ea77690d237a2e88466ae39a330c781aadde0e2e1d5674a858a18206b2022fcde4eed21a56f45d107596ecbf337f1860d8887edbba12cbd05c0729cd340479dbd9dda434bde8ba20d3eeff09346458ed2ddd6036f38b7a2062d2795a38090df7c3bb48698bd17441909f239d362eda05d88722ed667cd6c0706918744012362f977690d327a2e883113e473a6c5db40bb10e45daccf9ad80e0d230e880246c5f2eed21a64f45d106227c8e74d8bb6817621c8bb599f35b01c1a461d10048d8be5dda434c9e8ba20c44f91ce9b176d02ec439176b33e6b6038348c3a20091b17cbbb486993d17441882b35f5e3053c889053e9155e7334e86b155ad03d1237d3987690d328a2e8830f566bebc60a791120a7d22abce669d0d62ab5a07a246fa730ed21a65145d1061e38ea3038eb54a4f91c6a7d71c331c9a701ad9cf148e0f262da434ca38ba20c3b71d46071d6a949f238d4fae38663934e035b39e291c1e4c5b4869947174418766fbb199083b5169c3e701dbf03254e96b2f8cfc223856d8c690d328f2e8830eb6b888bcdddccaff049a66375fca8c5281233fb81470c7f19d21a651f5d1061d56323704891fbe2986012eee3efafb24ad0aa52ff8e1aa234a434ca3fba20c3a95259393dfa5a47e88cec05bfd5bd8c904d9701fc1c36e86a486994807441875130c4cb28cb171288e69e3377a1d9411b47705ff5386f74d590d32901e8830ea161899651962e2511cd3c66ef43b282368ee0bfea70dee9ab21a65203d1061d424f25855002beccdb673ef5d67dc32c67ca03dbd1e1bf7757434ca408a20c3a832a5d634cdbe01c6e9b4413a4f1e480ca404a13a0c38092af869948124418750554bac699b7c038dd36882749e3c90194809427418701255f0d3290248830ea0a3587e5e045e2f47239d6768bbdf02b23ad6aaa800e03eebf1a65204a1061d4136b0fcbc08bc5e8e473aced177be056475ad555001c07dd7e34ca409420c3a8266231f02dedee5480b4200226ee1ed48961ed05fd38115efd699481294187504b50763908b23f2bb935062c45d29bd10d701c67f7702461fbd3290253830ea0952cfecabe3ae0da2a36d280839b95ca158c7b2bebe04a67f8a65204a8061d412959fd957c75c1b4546da50107372b942b18f657d7c094cff14ca409500c3a8252400d83a5c1e5eb60a8102a0664b55050de2f0bac812b43e3994812a1187504a30c2d5ff85a2e59791ce67c04bfc8c89c68a0735602582bc83290254330ea0945185abff0b45cb2f239ccf8097f919138d140e6ac04b0579065204a8661d4128a30b57fe168b965e47399f012ff232271a281cd580960af20ca40950cc3a82514616affc2d172cbc8e733e025fe4644e345039ab012c15e4194812a1987504a284ee8583279481a499b2de843f2eab1c13649915d25846084290254340ea0944f29e30911c8f2b74b0321f87fdc338b7d18d57eb74b0a65095204a8691d41289d53c6122391e56e960643f0ffb86716fa31aafd6e9614ca12a40950d23a82513a339e7cf3fa2d5fe3d94e09f7672c55ef0f9856da2c2b38264812a1a57504a273673cf9e7f45abfc7b29c13eece58abde1f30adb45856704c9025434aea0944e65a8c4c7cbf18024731fe4fd5930f7fb6eaa3b765b0ae849a204a8696d41289cb412af1a65492874630c2c7a31c7d27688189cac8615ead3540950d2ea82513950e683bf97f8791442e4bb73e2f5876cbaf55f18dc2befe6b812a1a5e504a27291cd077f2ff0f22885c976e7c5eb0ed975eabe31b857dfcd7025434bca0944e5239a0efe5fe1e4510b92edcf8bd61db2ebd57c6370afbf9ae04a8697941289ca47341dfcbfc3c8a21725db9f17ac3b65d7aaf8c6e15f7f35c0950d2f28251394872961844cedb96fab1819bdaebe594b5a1a174d92bf18ab912a1a5e604a2728f713e89367419b0ad2fc95fadce295165ef8545af57e4b97325434bcd0944e51d6e8f6b19be95e4122c58e75392b0cac68b4ce75bafcb16e74a86979b1289ca3969312ee0538e4adc2577f69f1bbfbd87c2dc2ab45f97d1cf950d2f37251394715e74b66d7d7f187017b615362ddda30a31fab165bf3147a02a1a5e6f4a2728e148fbc587d160b397fc32526452196e0f1037bec87e6433415434bcdf944e51c11e09e3bc7923e9e7c52accc09a910418ccb1d98dfcca0a83a86979c0289ca3813c13c778f247d3cf8a559981352208319963b31bf994150750d2f380513947020439e79ebaf22a56e1715afa60a2385ddf09c234f329ce0fa1a5e701a2728e030873cf3d75e454adc2e2b5f4c14470bbbe138469e6539c1f434bce0344e51c0610e79e7aebc8a95b85c56be98288e1777c2708d3cca7383e86979c0689ca380c21cf3cf5d79152b70b8ad7d30511c2eef84e11a7994e707d0d2f380d13947018439e79ebaf22a56e1715afa60a2385ddf09c234f329ce0fa1a5e701a2728e030134f4c8434a7cd93faf187440aa533b68d7aa29b653b65f534bce0354e51c05f269e9908694f9b27f5e30e88154a676d1af54536ca76cbea6979c06a9ca380be4d3d3210d29f364febc61d102a94ceda35ea8a6d94ed97d4d2f380d53947017c268cbcce7ba0ef57a45262184b87c5af181770d829dcd3aaa5e701ab728e02f74d19799cf741deaf48a4c430970f8b5e302ee1b053b9a7554bce0356e51c05ee26454be6c4e640165e0fb059247d3eb70ca01f5da774f2ab979c06aeca380bdb4c8a97cd89cc802cbc1f60b248fa7d6e19403ebb4ee9e5572f380d5d947017b625278847e9fb83114504e95c885322d6dec2d9739dd56eaf5e701abc28e02f6b4a4f108fd3f706228a09d2b910a645adbd85b2e73baadd5ebce0357851c05ed620b079cc7e508efce0d9cd6a17aab356274dc1cb77575ebe79c06af1a380bdab4160f398fca11df9c1b39ad42f5566ac4e9b8396eeaebd7cf380d5e347017b560ed43fdecfa4beab502d5da05508f5534979632add5f1efae701abc78e02f6ab1da87fbd9f497d56a05abb40aa11eaa692f2c655babe3df5ce03578f1c05ed563b50ff7b3e92faad40b576815423d54d25e58cab757c7beb9c06af1e380bdaac02b457a3538878124e3114fa9ea5d294f80d7553eafa9bd8380d5e3d7017b5570568af46a710f0249c6229f53d4ba529f01aeaa7d5f537b0701abc7ae02f6aae0ad15e8d4e21e04938c453ea7a974a53e035d54fabea6f60e03578f5c05ed55c15a2bd1a9c43c0927188a7d4f52e94a7c06baa9f57d4dec1c06af1eb80bdaab82b457a3538878124e3114fa9ea5d294f80d7553eafa9bd8380d5e3d7017b5570568af46a710f0249c6229f53d4ba529f01aeaa7d5f537b0701abc7ae02f6aae039284181b880874b590b669f9fd2cd38af9fb0f7bea89a0f03578f5d05ed55bf7250830371010e96b216cd3f3fa59a715f3f61ef7d51341e06af1eba0bdaab7e70b35eb3b8649fe530f3c27675a95cdd6ac11fdbfaa40c3d0d5e3d7517b556fb6d791614472bc2822eadace4e1b0e1b581c49bb4f549bc7b1abc7aeb2f6aadf5670484d564ba07bc2a2181c1b9bfeb65afcb9366ea951cf73578f5d75ed55be95a1b62579fd6923021092b7b69ddfec60bd982cad52bddef6af1ebafbdaab7d140491d5c160fa7180ed87eeeca1a2586c3f56192aa595fdfd5e3d7607b556fa10ca493650281d0e7ea7725d58a927308342d1f2254b463c0abc7aec1f6aadf41194926ca0503a1cfd4ee4bab1524e610685a3e44a968c781578f5d83ed55be8232924d940a07439fa9dc97562a49cc20d0b47c8952d18f02af1ebb07daab7d0465249b28140e873f53b92eac54939841a168f912a5a31e055e3d760fb556fa08565b8efcfe7f9136743885509f85587def144e224b47e00bbc7aec206aadf40f38c976a6d361a524b53732993568d8f68a6af8419691641878f5d841d55be81d7192ed4da6c34a496a6e65326ad1b1ed14d5f0832d22c830f1ebb083aab7d03a6f38334823e9174aa1a2f25ccc018bd4d5ee3d035a473462e3d76108556fa0736a82bf3d1e34b14d100c0cb18e613fa4581ed603b4900cc6c7aec211aadf40e56117d72712cbe551ecde415b1320a7435c8008046921bd8e8f5d842455be81c94e4206fafbfa4d5ba682aaae1c9f768165426c05d2451f1e1ebb0849ab7d0391289666a2ce571d6f19cb7d542f9d14fd76c73408a48be23d3d76109456fa0721512ccd459cae3ade3396faa85f3a29faed8e68114917c47a7aec2128adf40e422e6bf3380fbef87433f41d48b4d27bf0875f2c1f92312cf5f5d842525be81c835cd7e6701f7df0e867e83a9169a4f7e10ebe583f246259ebebb084a4b7d0390645c2258d155e64889c969d1ac9a817bcc9bf0c7b48c657d8d761094a6fa0720b1796a3c7011f4bc905f3622d89ae57743fc074f3918e53b2aec21295df40e4152f2d478e023e97920be6c45b135caee87f80e9e7231ca7655d84252bbe81c82a5e5a8f1c047d2f2417cd88b626b95dd0ff01d3ce46394ecabb084a577d03905448c776e4df5ce0fffc61396443d0e39caa4603998c744196761094affa0720a71da14676951c44b7c5889ac07dffef3400ce633018ea272dec212960f40e414d3b428ced2a38896f8b113580fbffde68019cc66031d44e5bd84252c1e81c829a029772872ad39596e2e892f9ee5de4caaf7be8bd63aa40b8b084a584d0390533052ee50e55a72b2dc5d125f3dcbbc9955ef7d17ac754817161094b09a0720a660a5dca1cab4e565b8ba24be7b977932abdefa2f58ea902e2c212961340e414cc14bb9439569cacb7174497cf72ef26557bdf45eb1d5205c584252c2681c8299829772872ad39596e2e892f9ee5de4caaf7be8bd63aa40b8b084a584d0390533052ee50e55a72b2dc5d125f3dcbbc9955ef7d17ac754817161094b09a0720a66031eefa778b47e87086eae6738dd75aa68b3c8b55ea91d22d212961350e414cbf63ddf4ef168fd0e10dd5cce71baeb54d167916abd523a45a4252c26a1c82997e53ce428b03822479e871c1c62dbb9294d9348954aa48ecb584a584d5390532fb33aeddc2dd66cbab9da9ab8451d54d245eab6ea654937d6c094b09ab720a65f5675dbb85bacd97573b535708a3aa9a48bd56dd4ca926fad812961356e414cbea5acdcfb84bfdb166436cd6093db35c8c26f01696524f99b1252c26aec82997d341adf81d6e5de584539fd40a71c4e112fa228929a4a0d7634a584d5e90532fa50f6e48e7b31e4dc07405d00cd9e7ea20a0876e50494352c794b09abe20a65f491edc91cf663c9b80e80ba019b3cfd441410edca09286a58f2961357c414cbe923db9239ecc793701d0174033679fa882821db941250d4b1e52c26af882997d2407849fea6f54f0bb6cf4a85ec59d78ffb07dce7f4a1c3a3da584d5f20532fa470f093fd4dea9e176d9e950bd8b3af1ff60fb9cfe9438747b4b09abe40a65f48e1e127fa9bd53c2edb3d2a17b1675e3fec1f739fd2870e8f6961357c814cbe91c3c24ff537aa785db67a542f62cebc7fd83ee73fa50e1d1ed2c26af902997d238045c5753cbb18e6e9c10ade45035b7f5b41f43f1a1c547db584d5f21532fa46f08b8aea797631cdd38215bc8a06b6feb683e87e3438a8fb6b09abe42a65f48de11715d4f2ec639ba7042b79140d6dfd6d07d0fc687151f6d61357c854cbe91bc22e2ba9e5d8c7374e0856f2281adbfada0fa1f8d0e2a3edac26af90a997d237845c5753cbb18e6e9c10ade45035b7f5b41f43f1a1c547db584d5f21532fa46f0179d43264c94508b4edbe481fd1526b1302ada3138aa9f6c09abe42b65f48ddf2f3a864c9928a1169db7c903fa2a4d626055b46271553ed81357c856cbe91bbe5e750c993251422d3b6f9207f4549ac4c0ab68c4e2aa7db026af90ad97d2377c48fc71df3b05071243a54c07df075d842d992d86c5569f614d5f215c2fa46ef71e0b3c6b4c6c90dc5410c007b46ce3030774b70a8aaee2c39abe42b95f48dded3c1678d698d921b8a821800f68d9c6060ee96e15155dc587357c8572be91bbda043f4a5a0814c6291d092816c811b406ca1538272abd2f0f6af90ae67d2377b3087e94b410298c523a12502d9023680d942a704e557a5e1ed5f215ccfa46ef6610fd2968205318a47424a05b2046d01b2854e09caaf4bc3dabe42b99f48ddecc21fa52d040a63148e84940b6408da03650a9c13955e9787b57c85733e91bbd9843f4a5a0814c6291d092816c811b406ca1538272abd2f0f6af90ae67d2377b3013fba3edd8fb47db6deb2ad0f894a8d3eee960e257a785ee5f215cd0a46ef65f27f747dbb1f68fb6dbd655a1f12951a7ddd2c1c4af4f0bdcbe42b9a148ddecbe4fee8fb763ed1f6db7acab43e252a34fbba583895e9e17b97c85734291bbd97c2bef781b9e3cc1933c1f7e7fbb036e9a238d630fbd3dd373f90ae6862377b2f757def0373c798326783efcff7606dd34471ac61f7a7ba6e7f215cd0c46ef65ee3bd0391b4f558904bd4421f6e26be2633a77e83bf4f8f1d0e42b9a198ddecbdb03b2cae3750d94c1474e6be5bb35ecc121322c74e9f387a2c85734341bbd97b5076595c6ea1b29828e9cd7cb766bd982426458e9d3e70f4590ae6868377b2f6a0ecb2b8dd43653051d39af96ecd7b30484c8b1d3a7ce1e8b215cd0d06ef65ed41d96571ba86ca60a3a735f2dd9af6609099163a74f9c3d1642b9a1a0ddecbda83b2cae3750d94c1474e6be5bb35ecc121322c74e9f387a2c85734341bbd97b50026bb51b78151ae0b693a4af5d1bc01ed287ea9a3e72985a0ae6868477b2f69f04d76a36f02a35c16d27495eba37803da50fd5347ce530b415cd0d08ef65ed3e09aed46de0546b82da4e92bd746f007b4a1faa68f9ca61682b9a1a11decbda7c135da8dbc0a8d705b49d257ae8de00f6943f54d1f394c2d057343423bd97b4f826bb51b78151ae0b693a4af5d1bc01ed287ea9a3e72985a0ae6868477b2f69f04d76a36f02a35c16d27495eba37803da50fd5347ce530b415cd0d08ef65ed3e026ff9f8adba93ae571af53cf3d4e2faf4e3d028c9ca7ba83b9a1a11eecbda7bf4dff3f15b75275cae35ea79e7a9c5f5e9c7a0519394f75077343423dd97b4f7e2810d6d845076e4d93837734eb96e6b7e536662f72a08e0fe686847cb2f69efb5021adb08a0edc9b2706ee69d72dcd6fca6ccc5ee5411c1fcd0d08f965ed3df62c55b40dea803bee1ad404cba4b9c2da411bf4baca83dc409a1a11f3cbda7beb58ab681bd50077dc35a80997497385b48237e9759507b881343423e797b4f7d63d6928e48063727038163b2689453363b0b22ee82a111503686847d02f69efab06e4aa75d72967983cf29e4508e88ec20da6b9cd5423ce07d0d08fa15ed3df550dc954ebae52cf3079e53c8a11d11d841b4d739aa8479c0fa1a11f42bda7beaa1b92a9d75ca59e60f3ca791423a23b08369ae735508f381f43423e857b4f7d54372553aeb94b3cc1e794f228474476106d35ce6aa11e703e86847d0af69efaa86e4aa75d72967983cf29e4508e88ec20da6b9cd5423ce07d0d08fa15ed3df55068a7a767bb8f75bf6b19f0991370003c611995a7847b64fb1a11f42cda7bea9f5d61a77c4d816e36a2fa092a1d3e28736e75874c08f86df73423e85ab4f7d53d46d5a7a571655f2512ba3a4c30da78e1892d6a9511f27fef6847d0b669efaa7919bda7f7b92d4101f23a9c90581319bdbe9d312723e6a3dfd08fa16dd3df54f1337b4fef725a8203e4753920b026337b7d3a624e47cd47bfa11f42dba7bea9e266f69fdee4b50407c8ea7241604c66f6fa74c49c8f9a8f7f423e85b74f7d53c459ff986a9fcc8ac75e9b0c7ab6f6f5e8a12be5361f36c2ff847d0b6f9efaa7874011898215fb984689fc40ed644c13cbee9a26693e6f2a0008fa16e03df54f0d0c356bb10259b344e0bea9d2bef64f928976a8cf7cdff80111f42dc17bea9e19186ad76204b36689c17d53a57dec9f2512ed519ef9bff00223e85b82f7d53c3230d5aec40966cd1382faa74afbd93e4a25daa33df37fe00447d0b705efaa786461ab5d8812cd9a2705f54e95f7b27c944bb5467be6ffc0088fa16e0bdf54f0c84f6913bcfbfdb705d8b0c523e5c3212343ace8f4ce0124121f42dc18bea9e18f2ae48026ce5df0c37e27b23fc1e46a41339c2de69c03ec253e85b8327d53c31d55c9004d9cbbe186fc4f647f83c8d48267385bcd3807d84a7d0b7064faa7863a37a459480fda45c5c564f0f6fdefd0ff7ab3139770115495fa16e0caf54f0c736f48b2901fb48b8b8ac9e1edfbdfa1fef566272ee022a92bf42dc195ea9e18e66aa3bdcd15cb99cee259ebd3ee1d6bf8970eaa5ac046f658e85b832cd53c31cb6159d44701f9b6559179ff9fd298ffebda5fb0b2808f90b2d0b7065aaa7863954ec6013ada55ef62efba27379b9027d26101bd620120c566a16e0cb654f0c729299e5b228b0e617dac3a76672d7e779f6e45d6c102432ece42dc196da9e18e51533cb645161cc2fb5874ecce5afcef3edc8bad8204865d9c85b832db53c31ca2328bc537029c08ae7db00194ac5806786559b701090e5f3a0b7065b7a786394365178a6e0538115cfb60032958b00cf0cab36e02121cbe7416e0cb6f4f0c728656416d88e0d2a571c3862e4aa7be41dc41a93801243b20e92dc196df9e18e50b389533be9807cd9b53d2848d45daabb32f94cbff4877e5d35b832dc03c31ca15712a677d300f9b36a7a5091a8bb557665f2997fe90efcba6b7065b807863942a6e6727a73681b9251c103a2d0dc8d6c76a958bfa21e13b4e6e0cb701f0c7285368e0a7fb4365f50204e69c5211efd589816d73f143c41a9ddc196e04e18e50a55dd3a8a35d2e6cbbd693609c1a3dd30daf1d43df8789d93cb832dc0ac31ca14947b9a9f390bf5c2f79ece9302ad9ce160a7ce3bc0f15567a7065b816863942911b85ac93f7e13b16c09ffa584c11c426c13c23751e2c50f5e0cb702e0c728521370b5927efc2762d813ff4b09823884d827846ea3c58a1ebc196e05c18e50a426e16b24fdf84ec5b027fe9613047109b04f08dd478b143d7832dc0b831ca1484683fbd4c956c5b6dd1c5faba56ec4930b62377a5f1642bb0065b8171639429075c91d346013b399370521d6ca436ba5c18894b48e2c9fb610cb702e3c728520d4535ff38d8d8f5dead6a62d13ecb9cb2dd54f28ec5959ac3196e05c88e50a419167e571e88146e75279aed9a73f5616066ec411a8b2cd98732dc0b921ca148312cfcae3d1028dcea4f35db34e7eac2c0cdd882351659b30e65b817243942906259f95c7a2051b9d49e6bb669cfd585819bb1046a2cb3661ccb702e48728520c4400511a11705f661099d94cb960932fde3a464d15968703a96e05c91e50a41870c1c7bef046e6f79e001518f22708df6738b259fb2d284762dc0b924ca14830d1838f7de08dcdef3c002a31e44e11bece7164b3f65a508ec5b8172499429061a3071efbc11b9bde78005463c89c237d9ce2c967ecb4a11d8b702e49328520c3460e3df7823737bcf000a8c7913846fb39c592cfd969423b16e05c92650a418684dda179d1d497a55ccdb40ea1d670761e4f4b5f82d29eb63dc0b924da14830cf27c687e710f57763667ca9cc312c36be762bc7ed5a557ac8b817249c4290619d4f8d0fce21eaeec6ccf9539862586d7cec578fdab4aaf591702e49388520c33a2b2c78491a38604566b8cf28bb0f02f484f17bb269578f23e05c92720a4186735658f0923470c08acd719e51761e05e909e2f764d2af1e47c0b924e414830ce638c439d13f4403cd67a9649ae29a33ccc0084ac6a55fe090817249c9290619cb718873a27e88079acf52c935c53467998010958d4abfc12102e49392520c33966f233ff1d37291ed6b6bba6380c6f72dac6387179581264305c92725a418672b6a58d8907d47a692a39d9cbef7ec165605096a2c2b03f0870b924e4c4830ce5560c409cdd0f1cfdd14016175e63654a6b65530555609850f17249c9990619ca94d9a6c4878462271f4c8eae3c2cad14818ecbca7ac14ae1f2e49393420c339512747313dc6eec79bb657fdbf7bf3ca8ade1bd54c582b003f5c927269418672a14e8e627b8ddd8f376caffb7ef7e79515bc37aa98b056007eb924e4d2830ce542292f1da3f21da126a6261ef5e62d522624b1b12e60ada4fe7249c9a60619ca83525e3b47e43b424d4c4c3debcc5aa44c4963625cc15b49fce493934c0c33950630cecf3c9ed90752655ea3cf8f1370933f0920b682b837fac927269918672a0b619d9e793db20ea4cabd479f1e26e1267e12416d05706ff5924e4d3230ce54164f4d959f51c6a0016240b73632abea47a866ded70ae283ec249c9a65619ca82b2aad83eb79efc2ba914796645bb5fc89fd1019ab15c6abd9493934cbc3395055555b07d6f3df8575228f2cc8b76bf913fa2033562b8d57b2927269978672a0aa36c8685abe218da211e4818965361a22a082c2a9571c536624e4d3300ce541536d90d0b57c431b4423c90312ca6c344541058552ae38a6cc49c9a66019ca82a66733fa17cee8b94014582e1d8b3690852e4d66a25c72f19993934cc13395054b5a7a4cdc7433f537f57684330ccb490508dd2941b8e7873427269983672a0a954106f265beca6d27b7b3305e0ff4ba04bdfcae8071d0b2694e4d3307ce5415290e203d7853f75d073c2c88b416479c04283bb8fde3a308d39c9a66109ca82a511c407af0a7eeba0e785911682c8f3808507771fbc74611a73934cc21395054a23880f5e14fdd741cf0b222d0591e7010a0eee3f78e8c234e7269984272a0a9447101ebc29fbae839e16445a0b23ce02141ddc7ef1d18469ce4d33084e54152886e16303215d8532b8f8eb3395ad7e83d2ffdebdb3a32313ac9a6610aca82a50f683eb9110213290eebe38e6aac0df8750c3e33b374660676934cc21695054a1d5c8fcaceda88d4d5a48d44cd4e7a18e4c4bec363e8cdb0ee2699842e2a0a94394531ee4a8b742c6315e0b192935259c435bfe2c4d19d05dd4d33085d5415287116763541ed4adb7df8878b1d1d02db8317c22186a33bafbb9a6610bba82a50e12cec6a83da95b6fbf10f163a3a05b7062f84430d46775f7734cc21775054a1c259d8d507b52b6df7e21e2c74740b6e0c5f08861a8ceebeee699842eea0a943843fc402bc40b95ea7910280e0de7504136a53683219df21ddd33085de415287070b9a5e2557d54006eecb29b9b348302180e92c6133bfe7bca6610bbd82a50e0d1734bc4aafaa800ddd9653736690604301d258c2677fcf794cc2177b054a1c1a2e6978955f55001bbb2ca6e6cd20c08603a4b184ceff9ef299842ef60a9438345cd2f12abeaa003776594dcd9a41810c074963099dff3de533085dec1528706845b83b0253b68326b978c3932ae12a12bad522103c001fcb6610bbd92a50e0cf1782ceb17dcf89053fb7af1e4c207c2021eca01d7801e397cc2177b354a1c19d2f059d62fb9f120a7f6f5e3c9840f84043d9403af003c72f9842ef66a943833a5e0b3ac5f73e2414fedebc793081f08087b28075e0078e5f3085decd528706744828ce38c4decae1ca83a0ea576208fbbba75ce8c010c0bf610bbd9ba50e0ce71c63f51e6020187b61cd69cca52239f2239115ce8023257fc2177b384a1c19cd38c7ea3cc04030f6c39ad3994a4473e447222b9d00464aff842ef6709438339a718fd479808061ed8735a7329488e7c88e44573a008c95ff085dece1287067346f32019fd7634692db31765d1f6ff78bc8cb0a71011acfff10bbd9c350e0ce676a765bec85290fdd832914b2353e17123dd870df023743ff2177b387a1c19ccd60ff1085e0b4a272d318515c60da561f27f33dbb04702bff42ef6710438339994e1079b897cbc79d72f6cab0b812d438fc28d77308e1fbff85dece218706733128334c1e05fa11f2b2b3bd596683d06ca4940ae311c59c000bbd9c440e0ce6615066983c0bf423e565677ab2cd07a0d9492815c6238b3800177b38881c19ccc22cdf8924ee4aca8297951d5d906d69ad3e928789471814012ef671113833998359bf1249dc9595052f2a3abb20dad35a7d250f128e3028025dece222706733063f907d408f8dacc22b1a9d6e3813ceafa68c7a221c61f405bbd9c445e0ce660b0b33532df57ddc3c22fb62d46685c559f95b504138c58c0c77b3888cc19ccc151666a65beafbb87845f6c5a8cd0b8ab3f2b6a082718b1818ef6711198339982a2ccd4cb7d5f770f08bed8b519a171567e56d4104e3163031dece223306733054599a996fabeee1e117db16a3342e2acfcada8209c62c6063bd9c44660ce660a83f478b8c2e404679fc7c553e5eba7d9a41f760108c5a64c87b3888cd19ccc14f0aa16fc532e30fabc5bed274b3d3232f30311c1e18b66d91f671119b3399829d1542df8a65c61f578b7da4e967a6465e6062383c316cdb23ece223366733053a2a85bf14cb8c3eaf16fb49d2cf4c8cbcc0c4707862d9b647d9c4466cce660a74550b7e2997187d5e2df693a59e9919798188e0f0c5b36c8fb3888cd99ccc14e83629550004937d7428b34f4333905aedaf541dde8b687d20671119b4399829cf6c52aa000926fae851669e866720b5db5ea83bbd16d0fa40ce2233687330539e64b7acace8b078886f936504c49f93b16992d3772da398829c4466d1e660a73b5581b206a7c373c8abecf2017f9d4f5d7f6802eb5b48d5063888cda4ccc14e753715bcba25e96a4924a00bfaf598c6b5ab1261d3b6934e0d71119b4a99829ce96e2b79744bd2d492494017f5eb318d6b5624c3a76d269c1ae2233695330539d268694b956e082bdc5f4657e3ccc142d1588be34bda4edc36c4466d2b660a73a35ce4efd7b272da708b52d7bf8fe0ad9d5d5a2294b49f5c6e888cda57cc14e74545dc385c3b483798e36bd777161f833566f6a12669405cde1119b4b09829ce8917cac9654cf2f1e9939dd6e6229d2e657a2f9e49d2825dbd2233696230539d112f9592ca99e5e3d3273badcc453a5ccaf45f3c93a504bb7a4466d2c460a73a225f2b259533cbc7a64e775b988a74b995e8be79274a0976f488cda588c14e74444a68a3d73dfa120469b4df290b479b267dbf4e4b941491ea119b4b12829ce88720e3a05b5256a6c0a02fe64a0ced5e47a7c0f894282ac7d5233696260539d10d41c740b6a4ad4d81405fcc9419dabc8f4f81f12850558faa466d2c4c0a73a21a0fa0da1a1fbd1dba4d85c1202a13a1194b463e4da0acc3558cda589914e744331f41b4343f7a3b749b0b824054274232968c7c9b415986ab19b4b13229ce88663e8368687ef476e936170480a84e84652d18f93682b30d5633696264539d10cc0919297dd44b708a38f430f946fb30c506744e6a0567bead66d2c4c9a73a2197123252fba896e11471e861f28df6618a0ce89cd40acf7d5acda589934e74432e2464a5f7512dc228e3d0c3e51becc31419d139a8159efab59b4b13269ce8865c48c94beea25b8451c7a187ca37d9862833a273502b3df56b3696264d39d10cb81da4f08a1b198b5b5c09378c6611344b1387429d567d8ed76d2c4c9b73a2196f3b49e114363316b6b8126f18cc226896270e853aacfb1daeda589936e74432de02a61ad542c8b0253ceb06298ea2f926fa5f667259f7df5eb4b1326ece8865bb054c35aa8591604a79d60c531d45f24df4becce4b3efbebd696264dd9d10cb760a986b550b22c094f3ac18a63a8be49be97d99c967df7d7ad2c4c9bb3a2196ec1530d6aa16458129e758314c7517c937d2fb3392cfbefaf5a589937674432dd82a61ad542c8b0253ceb06298ea2f926fa5f667259f7df5eb4b1326ece8865bb054c35aa8591604a79d60c531d45f24df4becce4b3efbebd696264dd9d10cb76035990dfd888e8c070787b25b9f1c71b9441bf8937df97bae2c4c9bb4a2196ebf6b321bfb111d180e0f0f64b73e38e3728837f126fbf2f75c589937694432dd7e627690a2f89cb2d3eae4f16672cfeedfbcb23e4af7e792b9b1326ed38865bafb50ff79f2c79be85fa2900ac4dbfe05ba25a6d892efd0c9746264dda810cb75f52e114c92659a537711e63d81ae5a336ef7900d22dfa336e9c4c9bb512196ebe95c229924cb34a6ee23cc7b035cb466ddef201a45bf466dd3899376a2432dd7d244578af66ccbd094145f1dfeafc6f5b68a8290887e8e7fa81326ed45865bafa314c16e99affa23dff58463f555ec1367c1477d0dfd1ea351264dda8c0cb75f452982dd335ff447bfeb08c7eaabd826cf828efa1bfa3d46a24c9bb518196ebe8a5305ba66bfe88f7fd6118fd557b04d9f051df437f47a8d4499376a3032dd7d14321dcd7a5633a1b778e947a2a5bec338b67e446ce8f6be8a326ed46165bafa27643b9af4ac67436ef1d28f454b7d86716cfc88d9d1ed7d1464dda8c2cb75f44e54898e962f310995b06b46828d5934dd863b6db0a3dc9e29c9bb518696ebe89b352575d934c495e32d9cb4fd111091b5b8b9375e47bae0549376a30e2dd7d1356a4aebb269892bc65b3969fa2221236b71726ebc8f75c0a926ed461c5bafa26a60a83011a974da448338fbec3aa06ed18f2739761eed25534dda8c39b75f44d34d62b8d0294c3740d3381fd06b9f059dca90cee93ddbeea79bb518746ebe89a526d7ca4d28faf13973366798cd9c33364163f9cf7bb98150376a30e9dd7d13494daf949a51f5e272e66ccf319b38666c82c7f39ef77302a06ed461d3bafa2692277181e17a4e479d999fc65b2ccef4d3b1d2433aeee7a941dda8c3a875f44d234ee303c2f49c8f3b333f8cb6599de9a763a48675ddcf5283bb518750ebe89a4629d86032bf9ba12e33454164a999fb49738b68e8bba0490876a30ea2d7d1348b53b0c0657f37425c668a82c95333f692e716d1d177409210ed461d45afa269163373d977d4d1077099db2d8a9cc615207a6fff9fee82c822da8c3a8c5f44d22b66e7b2efa9a20ee133b65b15398c2a40f4dfff3fdd059045b5187518be89a45659e1be8c29a6a07a3432de2269767c7c96025a7cba0cc48c6a30ea327d1348ab3fd5d5c529afc3ac352be43cc94b20f3d84710f6741b2d19d461d465fa2691550bbe043729c20a10371df07188f469e25cd07de9e837fe34a8c3a8ccf44d22a9177c086e538414206e3be0e311e8d3c4b9a0fbd3d06ffc6951875199e89a45522ef810dca7082840dc77c1c623d1a7897341f7a7a0dff8d2a30ea333d1348aa45df021b94e105081b8ef838c47a34f12e683ef4f41bff1a5461d4667a269154847f29c1f728323bb3ea52f1085a4c620794a3a9b8381874b8c3a8cd044d22a8f1bf790ebbb68ca2e4a10861901a7b43b9ed6d1340704b298187519a189a4551d37ef21d776d1945c94210c32034f68773dada2680e09653030ea33431348aa3a6fde43aeeda328b928421864069ed0ee7b5b44d01c12ca6061d46686269154746bcee00ab1a8d42a1d4a58c0039bc9d7a2f8e59d382738c1c3a8cd0d4d22a8e763b018c239b42b0c075ad977fd95bba9f23427377050158487519a1b9a4551cd53728a3149cad8cfdb7bdae7f1899f4e90aaaa6be0a1cf0a0ea33438348aa39932f76d0f69f8345783bdddc7d9716697cd97b0d4c14542151d4668716915473165eeda1ed3f068af077bbb8fb2e2cd2f9b2f61a9828a842a3a8cd0e2d22a8e6257f00cea7e435415dbbd9f175c23c259e2a11f500516ac557519a1c6a4551cc33bf27281d2e92ae384416626aea5acae71849a9d0a2efcabea33438e48aa398503f73db07c34d87ed548f44553a981578f4b9137145f9d58d466871d9154730907ee7b60f869b0fdaa91e88aa75302af1e97226e28bf3ab1a8cd0e3b22a8e6120fdcf6c1f0d361fb5523d1154ea6055e3d2e44dc517e7563519a1c764551cc241fb9ed83e1a6c3f6aa47a22a9d4c0abc7a5c89b8a2fceac6a33438ec8aa398483f73db07c34d87ed548f44553a981578f4b9137145f9d58d466871d9154730900afa0ebc5cfd929275e4b0a26b8e52ec95b482df8bf54f1b8cd0e3b32a8e611f15f41d78b9fb2524ebc96144d71ca5d92b6905bf17ea9e3719a1c766551cc23e2be83af173f64a49d792c289ae394bb256d20b7e2fd53c6e33438eccaa39847c57d075e2e7ec9493af2585135c729764ada416fc5faa78dc66871d99547308f83bb34472a63babdf2b11321eaf4356c4078a89f5bf5695b9cd0e3b33a8e611ef0378e19222d9da7622e88c3554e4d582bb576fe87eaecf749a1c766851cc23dd06f1c32445b3b4ec45d1186aa9c9ab0576aedfd0fd5d9ee93438ecd0a39847ba0de386488b6769d88ba230d55393560aed5dbfa1fabb3dd26871d9a147308f741bc70c9116ced3b1174461aaa726ac15dabb7f43f5767ba4d0e3b3428e611ee8378e19222d9da7622e88c3554e4d582bb576fe87eaecf749a1c766851cc23dd06f1c32445b3b4ec45d1186aa9c9ab0576aedfd0fd5d9ee93438ecd0a39847ba06a4abd358cd9204086e9354d2f9388a9821e561cabb58127871d9a157308f73f60a7d317f014c338da9892925585394db07f0836576ca6500e3b342be611ee7d4d61fedcb68c092981f74d1ca1689a960d406c69aedaf0a11c766858cc23dcf926d65666437a950ad0b4c231392f5d26c6c334d05db7854338ecd0b29847b9f14dacaccc86f52a15a1698462725eba4d8d8669a0bb6f0a8671d9a165308f73e2276bb245e44cd6e30f9930bcdb1b9c95c74f2f3e76dfb90de3b342cb611ee7c34ed7648bc899adc61f326179b637392b8e9e5e7cedbf721bc7668596c23dcf8629c121c46795de440b2aeaeb62cc9a51c97f18f6db8088388ecd0b2e847b9f0b53824388cf2bbc881655d5d6c59934a392fe31edb70110711d9a165d08f73e163316dfbe74b9fbc7f971d3a581909141d23ebfd86e03c4e33b342cbb11ee7c2b662dbf7ce973f78ff2e3a74b03212283a47d7fb0dc0789c67668597623dcf856586dd7a6a94a71d7b28d768dfca06d01f53d5b5eb810b78decd0b2ed47b9f0ab3cee07fa28f7666731e11513ef9f01fe96bd12ba7023131cd9a165db8f73e15505ee68a128514f863088521fd59c2bf7d9bc8171e047ca3ab342cbb81ee7c2a90bdcd14250a29f0c6110a43fab3857efb37902e3c08f9475668597703dcf855217b9a284a1453e18c221487f5670afdf66f205c7811f28eacd0b2ee07b9f0aa42f734509428a7c31844290feace15fbecde40b8f023e51d59a165dc0f73e15485ee68a128514f863088521fd59c2bf7d9bc8171e047ca3ab342cbb81ee7c2a9049df6cd1e08c737dddd06bf2a9e3a6f5e3d28a3908faeb5768597704dcf8551f1fd13250977b69b38866ffdd4a2575e673e7706f11f77aafd0b2ee0ab9f0aa3d3fa264a12ef6d36710cdffba944aebcce7cee0de23eef55fa165dc1573e1547a0b5721ef34502985ee62276d1ef3ff947be01db947df8ec042cbb82be7c2a8f316ae43de68a0530bdcc44eda3de7ff28f7c03b728fbf1d8085977057cf8551e62d5c87bcd140a617b9889db47bcffe51ef8076e51f7e3b010b2ee0af9f0aa3cc5ab90f79a2814c2f73113b68f79ffca3df00edca3efc7602165dc15f3e154798418477a01b651b16b2e89ec9e59e21426a4437917dfa90052cbb82bf7c2a8f2f0f1b47ed0d2cb8e53297658bc19a6a7f80cacb1ffbf6c40b5977057ff8551e5d1e368fda1a5971ca652ecb178334d4ff0195963ff7ed8816b2ee0afff0aa3cba3c6d1fb434b2e394ca5d962f0669a9fe032b2c7fefdb102d65dc15ffe154797404ec98153fc849e16181545603317bf6b298b4fcdfb7c45bcbb82c00c2a8f2e709d9302a7f9093c2c302a8ac0662f7ed653169f9bf6f88b7977058018551e5ce13b26054ff212785860551580cc5efdaca62d3f37edf116f2ee0b0030aa3cb9c2764c0a9fe424f0b0c0aa2b0198bdfb594c5a7e6fdbe22de5dc16006154797384ec98153fc849e16181545603317bf6b298b4fcdfb7c45bcbb82c00c2a8f2e7029a55b54cf6bbee3fcf0b2b85c8da6d0ff58fb98f6fa2f7a77058019551e5cdf534ab6a99ed77dc7f9e16570b91b4da1feb1f731edf45ef4ee0b0032aa3cb9be32a7c60014117e47c088f2d96894c33ea9a64a60dbea61eadc1600665479737b654f8c002822fc8f8111e5b2d129867d534c94c1b7d4c3d5b82c00cca8f2e6f656b170ad26a87bd6cee9f35d98b134f552db85806fab2bac7058019a51e5cdeb39753a0723b37a656a9a0eb327c091e551f966fddf57fb59e0b00335a3cb9bd572ea740e4766f4cad5341d664f8123caa3f2cdfbbeaff6b3c160066b479737aa71e740c965306c4d772e62c495606f8ff427f7f47d61916882c00cd78f2e6f536fe0da3fa0c35b52bb22ed81211f071a94924be5fac4c6d2058019b01e5cdea56bd40d2c17e9395d430c02fa389c362fd566f3c8f58b31a50b0033613cb9bd4963ba73050634f57252de2dec6796945a5710438eeb18074b160066c379737a9153873eb6e2cc6d9c728283d0c58b50af5a62e31ad631b2972c00cd87f2e6f5213320d61a9bfb5df0b1cb2f998174c95961082232ac65092f58019b10e5cdea416641ac3537f6bbe163965f3302e992b2c210446558ca125eb0033621cb9bd4825895b117464ffa7a93f2e65dfc314d603062e4c7b195c8be60066c449737a9033d3dbadb630277acf4abf4b3eec0c2bb0d08258c632d357dc00cd88a2e6f5205068dce639c677211b61e115fd3dfad70c652a715c65c0efc8019b1155cdea4090d1b9cc738cee4236c3c22bfa7bf5ae18ca54e2b8cb81df90033622ab9bd48121a37398e719dc846d878457f4f7eb5c3194a9c5719703bf20066c455737a9024346e731ce33b908db0f08afe9efd6b86329538ae32e077e400cd88aae6f5204868dce639c677211b61e115fd3dfad70c652a715c65c0efc8019b1155cdea40905dcc25206350c4ee908853f27253d61376973eb5cb838391033622ac9bd4811f47aaa2ed9d040c94edd6cfdcdb05d4219970d9689708ab23066c455a37a9023d1b679e88106a9be1a873c7b1ac69d03ddf240ece2e12fa470cd88ab56f52047936cf3d1020d537c350e78f6358d3a07bbe481d9c5c25f48e19b1156adea408f26d9e7a2041aa6f86a1cf1ec6b1a740f77c903b38b84be91c33622ad5bd4811e4674f4ced59b761c51064658559aca9e9a562d26e7099763966c455ac7a9023c75ab0f28789d14641ed8ef302a9b77bcdf70800d9e1349073cd88ab59f520478d41743dbbea050f3ba7e40dfd49cd1f969a525db0c26ac4e89b1156b4ea408f190efad424aa6ca12f1c8e43f289f86727e0e7175e84d72dd23622ad6ad4811e311df5a84954d9425e391c87e513f0ce4fc1ce2ebd09ae5ba46c455ad5a9023c623beb5092a9b284bc72390fca27e19c9f839c5d7a135cb748d88ab5ab520478c403e8f9d229c78c30b138478c46216139b37b16f126bb1292b1156b57a408f18707d1f3a4538f186162708f188c42c27366f62de24d762525622ad6af4811e30e0fa3e748a71e30c2c4e11e31188584e6cdec5bc49aec4a4ac455ad5e9023c61c1f47ce914e3c618589c23c62310b09cd9bd8b78935d8949588ab5abd20478c383e8f9d229c78c30b138478c46216139b37b16f126bb1292b1156b57a408f1870093192f20f5408cdf3cf1980ba8a4f311ba53a21d763f65722ad6af5811e30df126325e41ea8119be79e330175149e62374a7443aec7ecae455ad5eb023c61be24c64bc83d502337cf3c6602ea293cc46e94e8875d8fd95c8ab5abd60478c37c498c97907aa0466f9e78cc05d4527988dd29d10ebb1fb2b9156b57ac08f186f81f2b87cdcba30f9709b7c0039f031b0c6695fe1a764109732ad6af5911e30def3e570f9b97461f2e136f80073e063618cd2bfc34ec8212e655ad5eb223c61bde08c077e404eec113f3a52806726a942c469a5466d905c9cdab5abd65478c37bb1180efc809dd8227e74a500ce4d528588d34a8cdb20b939b56b57aca8f186f762301df9013bb044fce94a019c9aa50b11a69519b64172736ad6af5951e30deec4603bf202776089f9d2940339354a16234d2a336c82e4e6d5ad5eb2a3c61bdd81819d6ed254e93f70718a85f1d076abf15e7a26a905e40dbb5abd65578c37baf3033adda4a9d27ee0e3150be3a0ed57e2bcf44d520bc81b76b57acaaf186f75e60675bb4953a4fdc1c62a17c741daafc579e89aa4179036ed6af5955e30deebc4ce1101600d72270058b6af0de997df35b7f6f5182f3aadead5eb2acc61bdd7725d478d8d810c797d7dcfdd9b39123e163413aa005e8f9be5abd655a8c37baed4ba8f1b1b0218f2fafb9fbb3672247c2c68275400bd1f37cb57acab5186f75da23643c1036a5a1172c3a1f5ec4a2b7803947467d17a58afa6af5956b30deebb346c878206d4b422e58743ebd89456f00728e8cfa2f4b15f4d5eb2ad661bdd76619a348edb0f907147daea57308e905fb915f75f15e97cfeaabd655adc37baecb334691db61f20e28fb5d4ae611d20bf722beebe2bd2f9fd557acab5b86f75d96668d23b6c3e41c51f6ba95cc23a417ee457dd7c57a5f3faaaf5956b70deebb2c592ca01a5e2abb5bba3b53903da657d7373e0b87f4c023565eb2ad6f1bdd76573e6b98e192b7f96f413ccf1871aad7a91abe730ce981eaadbd655adf37baecad08e98a6ffbd275964f3fc628d9b3d74ce1bf4216d305795c7acab5bf6f75d95911d314dff7a4eb2c9e7f8c51b367ae99c37e842da60af2b8f5956b7edeebb2b223a629bfef49d6593cff18a366cf5d3386fd085b4c15e571eb2ad6fdbdd76564474c537fde93acb279fe3146cd9eba670dfa10b6982bcae3d655adfb7baecac81aaaffac9389dc1cc0c28a85919b9cc8c8367d6a305939c8acab5bf7f75d958f3555ff592713b8398185150b23373991906cfad460b273915956b7efeebb2b1e6aabfeb24e277073030a2a16466e732320d9f5a8c164e722b2ad6fdfdd76563c616a561172b1639dd2da7c24833b0e40edf6474e82cb7246655adfc0baecac774ee704cfbbc549f3727b2040fcd4447c882eea9a0598888dcab5bf8275d958ed29e0624c4ded169eb1bc6879f006b0f3bca031310b32b51c956b7f05ebb2b1d953c0c4989bda2d3d6378d0f3e00d61e77940626216656a392ad6fe0bd76563b23393e1de0e16dd3293b7c9dfb678ebc99ec320c12ccc787355adfc18aecac7636727c3bc1c2dba65276f93bf6cf1d7933d8641825998f0e6ab5bf8315d958ec65a61e0250ebdf7821ba54f76d041d721274edf01b33385ce56b7f063bb2b1d8b40d618f6f3de71bc0410c6e596e1d63cfae01a006668af9dad6fe0c876563b150dbe8a9abe1f662fd4e7b5c32421d474a2028ffdccd3033c5adfc191ecac76291b7d15357c3ecc5fa9cf6b864843a8e944051ffb99a60678b5bf8323d958ec5236fa2a6af87d98bf539ed70c908751d2880a3ff7334c0cf16b7f0647b2b1d8a46df454d5f0fb317ea73dae19210ea3a510147fee669819e2d6fe0c8f6563b14867fb0258b858e5b51b41842a387b6f44cc6b5bd9cd31d7c6adfc191fcac7628f5c085d5e47144e220349304c67550684451913b09a65538e5bf83240958ec51d44231369648b1efbd3588890c50835033674835e34cc4b1db7f064822b1d8a3914587f7f9f78c0af73773919806e9201192b62b9699a3a3c6fe0c905563b147128b0feff3ef1815ee6ee723300dd24023256c572d3347478dfc1920aac7628e25161fdfe7de302bdcddce46601ba480464ad8ae5a668e8f1bf83241558ec51c42ed654a9d2288833687ff0c3f9d2b803759d71c84cd375e47f06482bb1d8a3875daca953a4511066d0ffe187f3a57006eb3ae39099a6ebc8fe0c905763b1470e476bab541f04a3856ec5eb07dda9080882b8231e334f7b92fc1920afc7628e1b1ae9af55146bc9c2aa51fe07b1b0380bb1b2a23966a09b26f83241608ec51c3535d35eaa28d7938554a3fc0f6360701763654472cd41364df06482c11d8a386a6ba6bd5451af270aa947f81ec6c0e02ec6ca88e59a826c9be0c905823b1470d4635fd35579c0d0cd1f56183583dfe85839d76dc835067d38c1920b057628e1a752d1ff57c9e424520b725862fe1df8ab1ff1378d6a0e9e728324160bec51c34d31b6575c6a2acb5be3aad8bdf29a1950ec24cb17d41ee0e606482c18d8a38699636caeb8d45596b7c755b17be53432a1d849962fa83dc1cc0c905831b1470d3252ebb61e7f0db0275b718aefc0c68d3e5cd5885c507d27991920b064628e1a6331e9c4e9d47de30683a93dd777eb427765ed6cb5a0fbf333324160c9c51c34c563d389d3a8fbc60d07527baeefd684eecbdad96b41f7e6666482c1938a38698a53b96c54285a0ed1db6b1f55d60b31d843f80ed383f170cdc90583281470d313338531552716a05b839c66a3a2748bab343279a407e4859c920b065128e1a625670a62aa4e2d40b70738cd4744e917566864f3480fc90b3924160ca251c34c4a5a271e0172bd0425db37c286803056a77d0c428d1f93ba73482c1945a3869893406094afbbdc8b038335ad04f6bed549a65ae1173f2918e79058328c470d31250cd3820c4e1b98bed3318201e3dbd28df8f81e2b7e53d5d020b065198e1a624919a704189c37317da6630403c7b7a51bf1f03c56fca7aba04160ca331c34c492334e0831386e62fb4cc608078f6f4a37e3e078adf94f574082c1946638698924669c106270dcc5f6998c100f1ede946fc7c0f15bf29eae81058328cc70d31248594a7971b81c0ea4ffde4816341b50da3bc43eb4e53f01030b065199e1a6248f3ea74b90469aa001cc82b8245e94c9af23cad966ca7fa607160ca334c34c491d0960efcd6397c2bb65cb9840b387bb58f3d80eca9500f00f2c19466a8698923912c1df9ac72f8576cb973081670f76b1e7b01d952a01e01e58328cd50d3124722583bf358e5f0aed972e6102ce1eed63cf603b2a5403c03cb06519aa1a6248e44b077e6b1cbe15db2e5cc2059c3ddac79ec07654a807807960ca335434c491c8222155830fdeae6e297fac032ed9dd89e9c348a65010a4f3c19466a96989238f4442ab061fbd5cdc52ff58065db3bb13d386914ca02149e78328cd52d312471e1497aeb915dd3c7072c4d804b1c59e22534f7e96404437d006519aa6a6248e3b292f5d722bba78e0e589b009638b3c44a69efd2c80886fa00ca3354d4c491c76525ebae45774f1c1cb136012c71678894d3dfa590110df4019466a9a989238ec30cfce75854c663b62ece81d848b190d46be50af02236281328cd536312471d7619f9ceb0a98cc76c5d9d03b0916321a8d7ca15e0446c5026519aa6c6248e3ae4f519282eb941ba55879c86e088a8c2fc73b9eb9088f2e05ca3354d9c491c75b2ab57db2ad8aba027db9b8d40773405a3ab9996f1120000c9466a9b489238eb5556afb655b157404fb7371a80ee680b4757332de2240001928cd536912471d6a36e84f778c8d6ac1c3ad0b48142b29639728c1b94481a433519aa6d3248e3ad36dd09eef191ad583875a1690285652c72e51837289034866a3354da6491c75a667b3968b08982dbedb7a5518470acd8908e562e2120834ce466a9b4d9238eb4b5b7985c2e792de3583bad2288473c30cbe0d21c124120d9d8cd5369c2471d69543056432a5883f22d43bcc48ff45ae14285c9f7f4825bf3c19aa6d3948e3ad29121d2112217300fd753dc089f4e98422fcfb9afb904d22793354da7391c75a51243a422442e601faea7b8113e9d30845f9f735f7209a44f266a9b4e7238eb4a24874844885cc03f5d4f70227d3a6108bf3ee6bee413489e4cd5369ce471d69441cfb613de1fa8aa376b42c479daa4912941f33d9826ab7ca9aa6d39d8e3ad28739f6c27bc3f51546ed68588f3b549225283e67b304d56f95354da73b1c75a50e73ed84f787ea2a8ddad0b11e76a9244a507ccf6609aadf2a6a9b4e7638eb4a1c73ed629be636d7d382678a34e3b0708f4d3bfac913576255d5369ced71d6943773ed1de4a2d0325ed1953c61bdbf091946ba518f26b068acaa6d39dbe3ad286d73ec94761c02e7756ff0a0bb71dc3a2d39b6ff1b4d62755a54da73b8c75a50d973eb81990e6851a2aca7696eda169c551fb05a339ac68eb5a9b4e7728eb4a1b173e95bdef33325fd2614fad5aa8b60a4eba31064358ec16c5369cee61d69436173e5106abcc8ceb218f01da34b74e94483887cc56b1f26d9a6d39dcd3ad286c173dc79824ff4201bfea6633e8d47fa83b3535587d63ff1b44da73b9b75a50d8173cb4bb1764ac2efca12ee7510ee1d0212e9070cac8187699b4e7737eb4a1b0173a8f00fc2f8089760ec04e2183a61fed2146a165904b2d4369cee70d6943601736438cc5c5293e68e9e31bc26d2ebf8506b3029b20b09a96d39dce2ad286c0172daca458f07aa84ea028b704403ffeb4d18bc506417b753da73b9c65a50d80171c7ed37f471d7c1a0cb3ed87e6627d14673d49dc83112a8b4e7738db4a1b0016fa2331cbf46323b0e5ca5a8f32a779d392a05389063c95269cee71c694360016b56bee654eee72de97f7349dcb317351e96666e20c936a5d39dce39d286c00162bfd679804051139fc50e8bafc45664e96f28d94194114ca73b9c74a50d80015192059fd6e324df0c50450f55e6d4c47f20adaf8329c69a4e7738ea4a1b00012f3663ec8428cc75e566b216a22bd183aa83b75c065531359cee71d5943600015e6cc7d9085198ebcacd642d4457a30755076eb80caa626b39dce3ab286c000248ebe85ee705b48f6260f0527f0d6e095651396d195668d773b9c75750d800031dea296aa46debd69188089cf479040d58e4ced732ae75afe7738eafa1b000053bd452d548dbd7ad23101139e8f2081ab1c99dae655ceb5fcee71d5f4360000a03bafe57681a321212e64a6bc84238300fd59759cabb7ac09dce3abf86c000130775fcaed034642425cc94d7908470601fab2eb39576f5813b9c757f0d8000260eebf95da068c8484b9929af2108e0c03f565d672aedeb027738eafe1b00004c1dd7f2bb40d190909732535e4211c1807eacbace55dbd604ee71d5fc360000983bafe57681a321212e64a6bc84238300fd59759cabb7ac09dce3abf86c00013003722399d9a8c4fa298f7570fea52dfca6f547365770fc14b9c757f1d800025f06e44733b35189f4531eeae1fd4a5bf94dea8e6caee1f829738eafe3b00004be0dc88e6766a313e8a63dd5c3fa94b7f29bd51cd95dc3f052e71d5fc76000097c1b911ccecd4627d14c7bab87f5296fe537aa39b2bb87e0a5ce3abf8ec00012f83722399d9a8c4fa298f7570fea52dfca6f547365770fc14b9c757f1d800025f06e44733b35189f4531eeae1fd4a5bf94dea8e6caee1f829738eafe3b00004be0689b3f234093c14230a384379fa9a72469942992dc40a92f71d5fc77000097bf5d48d6f3578a053c2e0d306735b176437f6aaf22b882f65fe3abf8ef00012f7d46a4069385768d3028e088c661c11481ab17ba42710790c0c757f1df00025ef9195a65d3e14f9d181e873984b9e050fe0271d081e210c5828eafe3bf0004bdf132b4cba7c29f3a303d0e730973c0a1fc04e3a103c4218b051d5fc77e00097be26569974f853e74607a1ce612e78143f809c742078843160a3abf8efc0012f7c456e5874be0df6b78c0fff41dc560afeabfd0e00c1087d015757f1df90025ef8739dd6744982159a94ec61033811f87d02be41c152111442beafe3bf3004bdf0d73bace893042b3529d8c2067023f0fa057c8382a42228857d5fc77e60097be1a7387f5bf36e7e95d07de68c5fadc473b5bd2cc518446b4b0abf8efcd012f7c337322442b44325571dc82f983ec16b67163e7f4a0088f0d6257f1df9b025ef8657256e1035ec72d9b85cc1affce8b94dd7412453d111fbec5afe3bf3704bdf0c970c01ab393f0ddeed85e5df7937551b59466e6772241218c5fc77e6f097be1916d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321673774d4d2eaffe2c7cbefc630efbec65662add3890972347f1df9bf25ef86415a8142567c38827d5c5e0784583da5875907b7a412148869fe3bf37f4bdf0c814114dd59ced387b285823700a6d973095e51cb45242ab4d4fc77e6ff97be19010e3c13607409921cd7ca95f944110e0d68e5f28748570daaf8efce002f7c32011c7826c0e8132439af952bf288221c1ad1cbe50e90ae1b55f1df9c005ef8640238f04d81d02648735f2a57e510443835a397ca1d215c36abe3bf3800bdf0c80471e09b03a04c90e6be54afca2088706b472f943a42b86d57c77e70017be190086fd38eb416fba485496f878c376f08d13aa1847185727eb08efce003f7c3200f6bb976150459cbc25fa53710653c399d218564e00ae6a1621df9c008ef86401d638544d6df161a3c8c109618c0d69b34ef4d25bd15cee6c53bf38012df0c8039531ce25a948eb730e4e75429780b5e648adca7772b9f718b77e70026be190071324c1d61ff7ff1199694d04ae674e4c3c1fbaaeb57408717efce004e7c3200e164983ac3feffe2332d29a095cce9c98783f755d6ae810e2fdf9c009cf86401c25542ce34d462471e271969239031bb09b43107aa5d03c060bf38013af0c803833697f5167f2710f41af8fa3f16c19e0e14a46b51ba0924c27e700276e19007056d2fea2cfe4e21e835f1f47e2d833c1c2948d6a374124984fce004edc3200e0a66722d06d2fec68838aa10f45164a032fed40943e826370af9c009dc86401c1358f6b2ba7c600fc83e1a49e099276860a9ea6e84d04e1216f38013ba0c8038253dffbe21cf22a24848fabbb928acf8bc00173906a09dc82ee7002775190070490811d4f074a7c7485ebb9f6a47b81972ac70ce0a413d345ece004eeb3200e0911023a9e0e94f8e90bd773ed48f7032e558e19c14827a68bd9c009dd66401c122204753c1d29f1d217aee7da91ee065cab1c3382904f4d17b38013bacc8038244408ea783a53e3a42f5dcfb523dc0cb956386705209e9a2f670027759900704880d2fa7b420def73db8801e9c71dfbf25734f3ca113d4e9ede004eeb4200e090f1a5f4f6841bdee7b71003d38e3bf7e4ae69e794227a9d3dbc009dd68401c121e34be9ed0837bdcf6e2007a71c77efc95cd3cf2844f53a7b78013bad08038243c697d3da106f7b9edc400f4e38efdf92b9a79e5089ea74f6f002775a1007048785f0cd3eee451f69354c811bf145a1a51e136260e3d5042df004eeb4300e090ef4a2c008a9f066fde76564b761f125c9e6eaea8197aa229bf009dd68701c121dd206a59c2146f6274b972bee43482e137899fac2ff545f77f013bad0f038243b940d4b38428dec4e972e57dc86905c26f133f585fea8beefe02775a1e070487720dbbbfb528200c8ab2912388c869acd8d2c10cbcd51981fd04eeb43d0e090ee31b777f6a504019156522471190d359b1a5821979aa3303fa09dd687a1c121dc636eefed4a080322aca448e2321a6b3634b0432f3546607f413bad0f438243b8c6dddfda94100645594891c46434d66c6960865e6a8cc0fe82775a1e87048771867ce53ff58634b62f5d860847cf8f587d85327ca5199c3d14eeb43d1e090ee2f5baf00ab8729197db876e900f050130a5ce8ab91a3352ba39dd687a4c121dc5d43705a03e4b4b5b33db3f9f9d6fe4e0f6613b320466bfb483bad0f4a8243b8b912f30cb49fcbee1e482e1beba45ac4197869c23d8cd99a91775a1e960487717125e619693f97dc3c905c37d748b58832f0d3847b19b33522eeb43d2c090ee2e24bcc32d27f2fb87920b86fae916b1065e1a708f633666a45dd687a58121dc5c423aabe51d4c1f3aa0e370755193448c66f906de966ce788cbad0f4b1243b8b8747557ca3a983e7541c6e0eaa3268918cdf20dbd2cd9cf11975a1e9624877170e1abd51f4296a516005a2454c5b2f4b146a8413a29b3b8633eb43d2c590ee2e1b357aa3e852d4a2c00b448a98b65e9628d508274536770c67d687a58b21dc5c366af547d0a5a94580168915316cbd2c51aa104e8a6cee18cfad0f4b1643b8b86c61fce84e21b50db7f9d8525acfd8809e0062f911d9ddd5a05a1e962d877170d7500c294919cc9e27c076ccad960f2936ad084e20b3bd4f41b43d2c5c0ee2e1ad2c2aab3f09fbbf074db3c153227c7a680652f83e677c4284687a58b91dc5c3595855567e13f77e0e9b6782a644f8f4d00ca5f07ccef88508d0f4b1723b8b86b23cbd05a8fe517ed503952d448050119ac58e3cf69df2ae12a1e962e577170d63058c63fed3058061d3f08280f6fe4b30375ed5ea3be7002643d2c5cbee2e1ac50b18c7fda60b00c3a7e10501edfc96606ebdabd477ce004c87a58b97dc5c358a16318ffb4c1601874fc20a03dbf92cc0dd7b57a8ef9c00990f4b172fb8b86b142c631ff6982c030e9f841407b7f25981baf6af51df3801321e962e5f7170d62858c63fed3058061d3f08280f6fe4b30375ed5ea3be7002643d2c5cbee2e1ac503d9ed88737128ef24ad67816d6278e01981d19447ce1a8c97a58b97ec5c3589f075009bb4487a09c62731825a2ad43fddc7c8e85f9c4f593f4b172fe8b86b13d0ea01376890f4138c4e6304b455a87fbb8f91d0bf389eb27e962e5fd170d627a1d4026ed121e827189cc60968ab50ff771f23a17e713d64fd2c5cbfa2e1ac4f43a804dda243d04e31398c12d156a1feee3e4742fce27ac9fa58b97f45c3589e80112f4611edc8c7df3f7aa52213267d8740b445c9c50fd404b172fe9b86b13cf0225e8c23db918fbe7ef54a44264cfb0e81688b938a1fa80962e5fd370d6279e044bd1847b7231f7cfdea94884c99f61d02d11727143f5012c5cbfa6e1ac4f3c0897a308f6e463ef9fbd529109933ec3a05a22e4e287ea0258b97f4dc3589e78112f4611edc8c7df3f7aa52213267d8740b445c9c50fd404b172fe9b86b13cf0225e8c23db918fbe7ef54a44264cfb0e81688b938a1fa80962e5fd370d6279e044bd1847b7231f7cfdea94884c99f61d02d11727143f5012c5cbfa6e1ac4f3c0158c893c44a8c1b1c89b51088f921434b1e48a4b288044268b97f4dd3589e77f2b191278895183639136a2111f24286963c914965100884d172fe9ba6b13cefe563224f112a306c7226d44223e4850d2c792292ca201109a2e5fd374d6279dfc3876a28efba8904611a0b03c72eec9a03b66ae564403c5355cbfa6eaac4f3bf770ed451df751208c23416078e5dd934076cd5cac88078a6ab97f4dd5589e77ee6dece2e8c504c3d01348e8e9c2194e7b99dd15561010b8d672fe9babb13cefdb67ec1e7e606c0a57f357f9cb7a90c4f1dffc86a9202315ade5fd37586279dfb55bea95a9973a9767b3761b8eeb7fb1de6c3b694f4047cf5ccbfa6eb1c4f3bf6943e7840004d7b18733b25f15cd5d8bb784b92e9b809142ba97f4dd6489e77ed113e160ace011e5c6342ae62391193f69b5b4b934012429762fe9baca13cefda127c2c159c023cb8c6855cc4722327ed36b697268024852ec5fd37594279dfb424f8582b380479718d0ab988e4464fda6d6d2e4d00490a5d8bfa6eb284f3bf6842b1d5e13d6f1b0e96e1d59147f28234859e8259d0922efb27f4dd6519e77ed07563abc27ade361d2dc3ab228fe504690b3d04b3a1245df64fe9baca33cefda0e3887d0fc3229465d853b8c49f2feb51c13e2f271248d62cafd37594779dfb41b710fa1f864528cbb0a771893e5fd6a3827c5e4e2491ac595fa6eb28ef3bf68366e319c9d9f079c2de1b4591fc258fc6afbce25c192372f2cf4dd651ee77ed06b687591e81471bb13902eda377b1020d0a3dea7802470025ae9baca3ecefda0d55cfd7c7cff45f8deed23dc66ec7e699bf3ffaafd48e1a8b6d375947e9dfb41a9460d51a6d4ee7475a70de0c5cf5afb329441b1f791c4f56ea6eb28fe3bf68351182cfbfa803f6ba31ae1e98395141e5fd4c5bfec238b8ede4dd651fd77ed06a13059f7f5007ed74635c3d3072a283cbfa98b7fd847171dbc9baca3faefda0d4260b3efea00fdae8c6b87a60e5450797f5316ffb08e2e3b79375947f5dfb41a844d7a3880d85ddfd0a3d574149eff1af952705b5e1c5e1af36eb28fecbf6835072706c9ae871e425914711021345c5ded512312b938bdd9e7dd651fda7ed06a0d4e0d935d0e3c84b228e2204268b8bbdaa2462572717bb3cfbaca3fb4fda0d41a282d7f66f2db8c1c1e8a687cc7cf9faff0cea6e1e2f90ba075947f6afb41a833505afecde5b718383d14d0f98f9f3f5fe19d4dc3c5f21740eb28fed5f68350662cc85648a1d0b32846efc9eb159ca6ba6f7cf7848be5d282d651fdaced06a0cb5990ac9143a166508ddf93d62b394d74def9ef0917cba505aca3fb59da0d41963f33b1cf5da54f58e8854fa44cd0c2e46a363a0f2f98ee0c5947f6b4b41a832b0a79bc4b91ad21699dd0c7408fffadc380aed01b5f338019b28fed6a6835065514f37897235a42d33ba18e811fff5b87015da036be670033651fdad4d06a0caa29e6f12e46b485a677431d023ffeb70e02bb406d7cce0066ca3fb5a9a0d4195453cde25c8d690b4cee863a047ffd6e1c057680daf99c00cd947f6b5341a832a833ae1d65f1349951a9d29c00f6590432b72f5db2f339a59c28fed6a78350654f675c3acbe26932a353a53801ecb208656e5ebb65e6734b3851fdad4f06a0ca9e5acace449b34e7fe741097fbcfc238c588ffd2c8cce83a71a3fb5a9f0d41953b41a7f5360ccc52b4b4e757ef95e29985be42018e99d218e447f6b53f1a832a750f624318effb28213694d7d722235b0628c65f1a33a5d5c98fed6a7f350654e91ec48631dff650426d29afae4446b60c518cbe34674bab931fdad4fe6a0ca9d23d890c63bfeca084da535f5c888d6c18a3197c68ce9757263fb5a9fcd41953a407247174563bc3c1816ce6b10779002bf27554ce9d30524d7f6b53faa832a7470e48e2e8ac77878302d9cd620ef20057e4eaa99d3a60a49afed6a7f550654e8e1c91c5d158ef0f0605b39ac41de400afc9d5533a74c14935fdad4feaa0ca9d1c39238ba2b1de1e0c0b6735883bc8015f93aaa674e982926bfb5a9fd541953a387247174563bc3c1816ce6b10779002bf27554ce9d30524d7f6b53faa832a747070a087379ddafae7fa62fe18e57e2d78faecf5d0a60bedb0ed6a7f560654e8df6d53671c12187887c18c2429c15a82eca21c479e4c197f62dad4fead0ca9d1bd66b926e4fa9373c74fde704b79132dd3f07aeb399834a2c6b5a9fd5b1953a3795984a676cb896a466c83088ee88483a28d383270306ae98e6b53fab732a746f13f1ba59a6d755744a5cc3915c7672f3fc6b2c0dd60d7771dd6a7f56f654e8de10a49a3e1b14d3141185e9a23852c867a39a7ddb7c1b0923cad4feadfca9d1bc1149347c3629a628230bd34470a590cf4734fbb6f836124795a9fd5bf953a378229268f86c534c504617a688e14b219e8e69f76df06c248f2b53fab7f2a746f04524d1f0d8a698a08c2f4d11c296433d1cd3eedbe0d8491e56a7f56fe54e8de0830ac96c7eb3596c952afca3049268f9e46c037791b0ac7cbd4feadfda9d1bc0f61592d8fd66b2d92a55f9460924d1f3c8d806ef236158f97a9fd5bfb53a3781e4ec4b3cc8338dddd178550b91af86673c74339e16c2cc33053fab7f7a746f03b299bc045dcd43e71fbd0c96a2c4ef4e23ac8cfbfd85b2a61a7f56ff04e8de0755337808bb9a87ce3f7a192d4589de9c475919f7fb0b654c34feadfe09d1bc0ea328159c449b37c7fbc094da0a799fb8397659afc616e4d879fd5bfc23a3781d36502b3889366f8ff78129b414f33f7072ecb35f8c2dc9b0f3fab7f84746f03a65617bfbdfd3074b6bceb5e7a94c6160909d8c7ee85bada1f7f56ff09e8de074b3841d828d0c36c25469ce4ed1fea540cbff3ebda0b77583ffeadfe14d1bc0e957083b051a186d84a8d39c9da3fd4a8197fe7d7b416eeb07ffd5bfc29a3781d2a6d19b9501970334ce739bbac7607782dac120b652ddf0500fab7f85446f03a536645cb4d0942e9519b399f50e26d1856046672c75bbfae02f56ff0a98de074a5589def46e8e8555b03396699bb3858a6b50f418bb7810006eadfe1541bc0e9493d4e373aa8332d6dd338f52b6cced9481660df146f03a40ed5bfc2a93781d29106aec72226c8dd937338124ecffbda8ad9041a25de08ec1eab7f85536f03a5210d5d8e444d91bb26e670249d9ff7b515b208344bbc11d83d56ff0aa6de074a421abb1c889b23764dcce0493b3fef6a2b641068977823b07aadfe154dbc0e9484357639113646ec9b99c092767fded456c820d12ef04760f55bfc2a9b781d29086aec72226c8dd937338124ecffbda8ad9041a25de08ec1eab7f85536f03a521061eb3cf1af7e352633c871d1f5d97955ccc5a0b8c11f27d66ff0aa6ee074a41f4fe8d290355eed0434570b9be2111aa645cd9d6e823ff3addfe154dec0e9483d2be3fdcd41205cc035743f2fba805d4737dd96da04818b5cbfc2a9be81d2907957c7fb9a8240b9806ae87e5f7500ba8e6fbb2db4090316b97f85537d03a520f23ba24fe1dae3f5b8a29724b6e05f9d178bb8b7651207d173ff0aa6fb074a41e30356f8708c2a6e2911f47165b71d6229c3b3cac7241146e8fe154df70e9483c506adf0e11854dc5223e8e2cb6e3ac4538767958e48228dd1fc2a9bee1d29078a0d5be1c230a9b8a447d1c596dc7588a70ecf2b1c90451ba3f85537dc3a520f141ab7c384615371488fa38b2db8eb114e1d9e5639208a3747f0aa6fb874a41e28356f8708c2a6e2911f47165b71d6229c3b3cac7241146e8fe154df70e9483c506adf0e11854dc5223e8e2cb6e3ac4538767958e48228dd1fc2a9bee1d29078a061d074cfe0fe0cfc49e28165bdb6b26b99350dc604535e4085537dc4a520f13f4fb3424c985e9cb0608b2ac371cb8cd1deac778908a860820aa6fb8a4a41e27d2b78dd46071fbc188ddc7d7ed9f5419e699b4b0f11526505154df7159483c4f956f1ba8c0e3f78311bb8fafdb3ea833cd336961e22a4ca0a2a9bee2b290789f239f5cdc4f2e1731a04381df35e332e7452af8839454b38155537dc57520f13e373eb9b89e5c2e63408703be6bc665ce8a55f10728a96702aaa6fb8aea41e27c673e98fc0a1e84f1fdda69fc56f2ae1cbf7007ce2152e845654df715e483c4f8b73e5782e1a3320f788136782d4b3eb929a4355c12a5eacada9bee2bd90789f1573dd49090ac8c4a6dcecf6fd9fc5ff1fe0c9077f54befd5c537dc57c20f13e2973cceabeebf40c0586a015f335ea263a6dd46afba97f9eb9a6fb8af941e27c5173ac2e2aae4a9ac2da0653de6232746f87eb31f45300e1744df715f383c4f8a1736ab50232f7b83d80d2cfb4bac310d9bc18bfe5a60366e99bee2be80789f14172e7c2b13c51f332ce6bc7616be449ae2473dbc84c0871d437dc57d10f13e28171e1de0f4f06691d699db6bace26bb56f52a138d981287a96fb8afa31e27c5016fd614cb746f54f2a001956d92ab9ea8969683183026b353df715f473c4f8a016bbe8243bf412c9d0cc952d31bb5654bd96f622d604f0aa8bee2be8f789f1401638f5d3454e4dbf1e658cd9e2dc8f2925f212057c09fb9527dc57d1ff13e280153311315802c3a9b9977c33451f00d1f6a849cac814116a5fb8afa40e27c500132747ed7d6baf7eeffb5ae609a3e4239814b95560283d14cf715f482c4f8a00164e8fdafad75efddff6b5cc1347c847302972aac0507a299ee2be90589f1400255e4540c314e6273cb9ce17a5f5730e0b170b1550a10e934dc57d20c13e2800337db00c538ff479f63ffeaecb50c89bc0f23bea71423766ab8afa41927c500056fb6018a71fe8f3ec7ffd5d96a1913781e477d4e2846ecd5715f48324f8a000a6b7e5bc1ba5fa1355cc5d3aaca904eeae8d15699508f7dabe2be90659f140013630f10304b21c5228651cf4d8b7ec5d07de5092fa1209f58c57d20cc3e2800255230790d6ca60cfcd969c6930d5bb39ba80c6e5c4242e2b28afa41997c50004930734ac7afae9cb17f99b51e11158f31fc5b38b58487696615f48333f8a0009160e6958f5f5d3962ff336a3c222b1e63f8b6716b090ed2cc2be90667f14001224ddf83cb951cf57dcb2cfc703ab464c29daf3ed3121f499957d20cd0e280024327d16044009c6db3632020d86bc6f17fe7a0d9a324403733afa419a2c50004854fa2c0880138db66c64041b0d78de2ffcf41b34648806e675f4833458a00090a2b57d9bcd8d439855946ab59a579edfa4ac5c289910280cfbe90668c1400121356afb379b1a8730ab28d56b34af3dbf4958b85132205019f7d20cd18280024263971bfa039b368cd31e0d55e8c45dfe3d7596623440ba73ffa419a315000484b72e37f407366d19a63c1aabd188bbfc7aeb2cc4688174e7ff4833462a000909671d9572dbd3025ec94497d722775a78a09a7f48a10304100e90668c64001212b6fc5070850c2ce90f55922dc4549770ebf92451120622602d20cd18d800242556b9c66bd77e81fd9b7786db080f116182b66e61f40c5f006a419a31c000484a9634b2627c632c26b3bb70358f840542b0310283b818d840e483346390009095152a8a4fc62c8078e44342ea9e6ded050b262ac74031cac1d90668c73001212a13163a2a59bf291d4552e854bc41bc89c1107b4e5063afc3c20cd18e70024254162c7454b37e523a8aa5d0a9788379138220f69ca0c75f878419a31ce00484a8251a0e343462cca0921803d2706cd4a6af0612f9118ed94f18334639d009095032f541f3362bc16ca0fc6a24603f8bcd08d04bb1f31dccde40668c73b01212a055ea83e66c5782d941f8d448c07f179a11a09763e63b99bc80cd18e760242540a4962d57a6152dde00be0b11006411b3ce0554879c774db9119a31ced0484a8131ed803a199083e77e4878a1802e05e746cececf08eeb5b23334639db090950253db0074332107cefc90f143005c0bce8d9d9d9e11dd6b646668c73b61212a04a077267333a837c975ee4505801dfa1cc5ff60fbf3baf108dcd18e76d242540930ee4ce667506f92ebdc8a0b003bf4398bfec1f7e775e211b9a31ceda484a81261dc99cccea0df25d7b914160077e87317fd83efceebc423734639db49095024c3b933999d41be4baf72282c00efd0e62ffb07df9dd78846e68c73b69212a04980338cbe07e9a4c2dbb0b2d78145844c0aba357f0baf2acddd18e76d34254092f067197c0fd34985b76165af028b089815746afe175e559bba31ceda684a8125e0ce32f81fa6930b6ec2cb5e051611302ae8d5fc2ebcab3774639db4d095024bc19c65f03f4d2616dd8596bc0a2c226055d1abf85d79566ee8c73b69a12a04978338cbe07e9a4c2dbb0b2d78145844c0aba357f0baf2acddd18e76d34254092f067197c0fd34985b76165af028b089815746afe175e559bba31ceda684a8125e05a4550cc7cf58e268f9185fd0c6f58259518582bbcacdb75639db4d195024bbf409cfa45d04d9f04ebe933f20f3cd845d6730c54795b5aebc73b69a42a04977d0d4c4d3876fdc0c1a4988fdc14d7d886592874a5f2b859d88e76d34954092ef91a989a70edfb818349311fb829afb10cb250e94be570b3b11ceda692a8125df2353134e1dbf7030692623f70535f621964a1d297cae1676239db4d255024bbe46a6269c3b7ee060d24c47ee0a6bec432c943a52f95c2cec473b69a4aa04977c860d72c34463e8ed2164f25b943dbb0603ec9a65c2b874189e76d34964092ef8f4dc0b11562dfa05bf964736a7e1588bb29d5a8b557102714ceda692d8125df1d2793bad79c21c36fbf8f0eccf2893970ffedad67ae21f22a9db4d25c024bbe394f2775af384386df7f1e1d99e51272e1ffdb5acf5c43e4553b69a4b804977c722a61440b46e99076cb02632bc0830dbeabf9119bb8896cab76d34971092ef8e354c288168dd320ed9604c65781061b7d57f223377112d956eda692e2125df1c6359768d9f208c492f8cfb4a6f86a5ef55c26a26be22756aedb4d25c524bbe38b6b2ed1b3e4118925f19f694df0d4bdeab84d44d7c44ead5db69a4b8a4977c716626ffc149e859503b004fa93d807a3d01cdce5ac889efebc6d34971592ef8e2b50f250d6136dacbf2cd01d1fa66d6f9ae5fc2756113fa179da692e2c25df1c552df6fa58fd3ddc362666623743390730783aaaa92280e6f4b4d25c594bbe38a95bedf4b1fa7bb86c4cccc46e86720e60f07555524501cde969a4b8b2977c715243ee4210cb59f390665fb0d5034244bc8d2d06a18a053fd3d34971662ef8e2a313eedcce6d1669d8998589a1fce2b173c69c6940140c23a8a692e2cd5df1c54527ddb99cda2cd3b1330b1343f9c562e78d38d280281847514d25c59abbe38a8a4fbb7339b459a76266162687f38ac5cf1a71a50050308ea29a4b8b3577c715142b893f203f15d17c98f27507dd73b398e125a5fda062c1463497166bef8e2a2757127e407e2ba2f931e4ea0fbae76731c24b4bfb40c5828c692e2cd7df1c544e3a37552dd2b9c8aa308ffc176c2cf65e30d8f3f3818ca919d25c59b0be38a89b008103087bd6140c2de62026ceb814b70df443e4031af634a4b8b3627c71513501020610f7ac28185bcc404d9d70296e1be887c80635ec69497166c4f8e2a26a02040c21ef585030b798809b3ae052dc37d10f900c6bd8d292e2cd89f1c544d404081843deb0a0616f31013675c0a5b86fa21f2018d7b1a525c59b13e38a89a808103087bd6140c2de62026ceb814b70df443e4031af634a4b8b3627c71513501020610f7ac28185bcc404d9d70296e1be887c80635ec69497166c4f8e2a26a02040c21ef585030b798809b3ae052dc37d10f900c6bd8d292e2cd89f1c544d404081843deb0a0616f31013675c0a5b86fa21f2018d7b1a525c59b13e38a89a800d156128ac768ee5b2e64ec6ae72df08a08640001af7d8a5b8b3627d715134ff1a2ac25158ed1dcb65cc9d8d5ce5be11410c800035efb14b7166c4fae2a269fe345584a2b1da3b96cb993b1ab9cb7c22821900006bdf6296e2cd89f5c544d3fc68ab094563b4772d973276357396f84504320000d7bec52dc59b13eb8a89a7f85d686b379dcb7112fb2b1462dd8c1884b4a65bfeaf7f2e5c8b3627d815134fef46e32f1c11f964ddc31c50bdb1765904158f13fa5f0000ba166c4fb12a269fdd19d8b6e4fa554c7352fec973594ada02d76083f1be01a5752cd89f63544d3fb933b16dc9f4aa98e6a5fd92e6b295b405aec107e37c034aea59b13ec6a89a7f726762db93e95531cd4bfb25cd652b680b5d820fc6f80695d4b3627d8d5134fee45ad80fd4a90ce65264bc7392c0b4f81167467b8af00ecfaa66c4fb1ba269fdc741c27856287c4f5c963f0f1d77c8181d7acf5312e01f4355cd89f63844d3fb8d0f974959275b2170f9444632e5ee5835a1e10222c0402aac9b13ec7189a7f7191f2e92b24eb642e1f2888c65cbdcb06b43c20445808055593627d8e3134fee323e5d25649d6c85c3e51118cb97b960d68784088b0100aab26c4fb1c6269fdc6408cca376113b8e3f96e8598f25d0e9a7bb4a6d130202f965d89f638d4d3fb8c7119946ec22771c7f2dd0b31e4ba1d34f7694da260405f2cbb13ec71a9a7f718e23328dd844ee38fe5ba1663c9743a69eed29b44c080be597627d8e3534fee31c46651bb089dc71fcb742cc792e874d3dda5368981017cb2ec4fb1c6a69fdc63818dc900dea1b66b13b4bc0ea536cc27660e92d2d20313a5e89f638d5d3fb8c6f31b9201bd436cd62769781d4a6d984ecc1d25a5a406274bd13ec71aba7f718de63724037a86d9ac4ed2f03a94db309d983a4b4b480c4e97a27d8e3574fee31bc52f6d91c273db841a7242f4a91c43badb38bc566018b76f54fb1c6af9fdc637732000ae524ddf33b1b0e868d19e69f561359e6c9031891eb9f638d603fb8c6ed640015ca49bbe676361d0d1a33cd3eac26b3cd92063123d73ec71ac07f718dda5412844169da4fa43900422c5df8a552f9a9f7210c63ebaf7d8e3581fee31bb33437612faa1722003ec6ac50b24f72a09f964a3f18c97b5ffb1c6b04fdc63765686ec25f542e44007d8d58a1649ee5413f2c947e3192f6bff638d609fb8c6eca5cefdd6b7ebf0ab8c7e0d93abf9bf27d2a9b84f963279180ec71ac14f718dd9345f21383d3e098295c87da6d75960cf5017965efc650c702d8e3582aee31bb2517f67fb47e23b30a85d5dcd2e18a41e4af3527dc8ca33206b1c6b056dc6376492fecff68fc4766150babb9a5c31483c95e6a4fb91946640d638d60adb8c6ec925fd9fed1f88ecc2a1757734b86290792bcd49f72328cc81ac71ac15b718dd9244bc65650c7801b0bfb750e8f02b0372025eb9ae1651b34368e3582b7e31bb247239f054e6562b8cfc3b04515fbbe963af81991bfca380c6e1c6b0570c637648d473e0a9ccac5719f87608a2bf77d2c75f033237f947018dc38d60ae18c6ec91a1a8e6de66bed65f6db873c4fe55880e68ca8a2fc28e1d5b971ac15c418dd9233351cdbccd7dacbedb70e789fcab101cd195145f851c3ab72e3582b8831bb24666a39b799afb597db6e1cf13f9562039a32a28bf0a38756e5c6b05710637648cc6085c7e035cdb26ea9000a7721222f2f118773de471051cc8d60ae21c6ec91974d1de86d41fde7951ec63ce638a28658cf5143b98e22479a1ac15c448dd9232d264e29875a5e51e20a52a1c467a334ac4ae4e3701c4633353582b88a1bb246594c9c530eb4bca3c414a54388cf46695895c9c6e0388c666a6b05711437648cb2254afeca3fdbca3ff610af0994eafaabd7d5e9bd711a70d5d60ae2296ec919634a95fd947fb7947fec215e1329d5f557afabd37ae234e1abac15c452dd9232c6213e53d5d5d1abb7a508e41e4a0a12aa0b9a02f2c46b6758582b88a6bb24658b427ca7ababa3576f4a11c83c94142554173405e588d6ceb0b057114d7648cb16110ba8042da9319660e9b8711e8672a2daaa67c811af416260ae229bec91962b221750085b52632cc1d370e23d0ce545b554cf90235e82c4c15c4537d9232c56442ea010b6a4c65983a6e1c47a19ca8b6aa99f2046bd058982b88a6fb24658ac146f98ce43ac0f6ad413eb80ea91bd1181959a3d8d7baf14057114e0648cb15728df319c87581ed5a827d701d5237a23032b347b1af75e280ae229c0c91962ae51be63390eb03dab504fae03aa46f446065668f635eebc5015c453819232c55c2f8f1f1ef3c2fe0e6d6583ff4aec1086b8ef2de96bdf1ca12b88a70424658ab75f1e3e3de785fc1cdacb07fe95d8210d71de5bd2d7be394257114e0848cb156e4a4ed528a56e7af1825c37f5220e6a158fff13a2af7e1685ae229c1191962adb20b002fe213f789ad17e97e23a7afc25cc4083425efdd10c5c453824232c55b5416005fc427ef135a2fd2fc474f5f84b98810684bdfba218b88a70484658ab6a0ed264a55b60652312c08780e04a1891dd4469067bf8e8327114e0918cb156d31da4c94ab6c0ca4625810f01c0943123ba88d20cf7f1d064e229c1231962ada63b4992956d81948c4b021e03812862477511a419efe3a0c9c453824632c55b4c02a57dd7b165abd062ca63fef8aeec899665a430dfc8e59488a7048d658ab697054afbaf62cb57a0c594c7fdf15dd9132ccb4861bf91cb29114e091acb156d2e0a95f75ec596af418b298ffbe2bbb226599690c37f239652229c1235962ada5c152beebd8b2d5e8316531ff7c577644cb32d2186fe472ca44538246b2c55b4b82a57dd7b165abd062ca63fef8aeec899665a430dfc8e59488a7048d658ab697054afbaf62cb57a0c594c7fdf15dd9132ccb4861bf91cb29114e091acb156d2e03571ce992fcd76d07f5f27b622194a6045ab6834f23b092329c1235a62ada5bf6ae39d325f9aeda0febe4f6c443294c08b56d069e4761246538246b4c55b4b7e61d9931195985df9ca42c6d07ec3517bc2effcd0c8edc88da7048d6a8ab696fb4fc57ed001933eab614bb598f3e4caf23222559e91dd351c4e091ad6156d2df52b9d564cd989000e8f5d9329de27bddf1087073a23bc0e399c1235ad2ada5be9573aac99b312001d1ebb2653bc4f7bbe210e0e7447781c7338246b5a55b4b7d23a87b1e03c8682f20a3c749f6efd1f76ee5e78e58ef1dce77048d6b5ab696fa30121bc6d4f6f889be13f1136d45866e888ff4dc81de55dcfe091ad6c56d2df45024378da9edf1137c27e226da8b0cdd111fe9b903bcabb9fc1235ad8ada5be8a0486f1b53dbe226f84fc44db51619ba223fd37207795773f8246b5b15b4b7d14090de36a7b7c44df09f889b6a2c3374447fa6e40ef2aee7f048d6b62b696fa28121bc6d4f6f889be13f1136d45866e888ff4dc81de55dcfe091ad6c56d2df45024378da9edf1137c27e226da8b0cdd111fe9b903bcabb9fc1235ad8ada5be8a0486f1b53dbe226f84fc44db51619ba223fd37207795773f8246b5b15b4b7d1401cf08f548e26d0a86c4ec36222919c3f2be9400bf2b08bf148d6b62c696fa27f39e11ea91c4da150d89d86c44523387e57d28017e56117e291ad6c58d2df44fe73c23d52389b42a1b13b0d888a4670fcafa5002fcac22fc5235ad8b1a5be89fc7396d351479907fb2f3c43090aeb09f40b8c5c5c9586038b46b5b1644b7d13f7733fff4f659492ae2b3eae0a0c343be2c35b14b62b0dab178d6b62c996fa27ed7292574ba18ba8142343840c0ec69fc032f88569561cfa301ad6c5942df44fd9713707441979d2e0134d301013eb677b123366cfac3b986135ad8b295be89fb16e80673509562877f36088181e34f6f0d0a9299c5878d4c36b5b1653b7d13f6169132716e90ed3a7b387382832c815dc4d94af35b0f34d87d6b62ca86fa27ec15e38a6daa8802a0733d498485bee53b3476bba6861e83f10ad6c5951df44fd814883a6622762d6c6346f5888ae3acf613b19d0cdc3d222225ad8b2a4be89fb011d19a5712528304435a4d90952d3c6bd2275fd9887a5e845b5b1654a7d13f6013a334ae24a5060886b49b212a5a78d7a44ebfb310f4bd08b6b62ca94fa27ec020078ee716b0343c8a3598c1d41ad42ef361a525f1e994517d6c5952af44fd80300f1dce2d606879146b3183a835a85de6c34a4be3d328a2fad8b2a55e89fb00601e3b9c5ac0d0f228d66307506b50bbcd869497c7a65145f5b1654abd13f600c03c7738b581a1e451acc60ea0d6a1779b0d292f8f4ca28beb62ca957a27ec018078ee716b0343c8a3598c1d41ad42ef361a525f1e994517d6c5952af44fd80300f1dce2d606879146b3183a835a85de6c34a4be3d328a2fad8b2a55e89fb00601e3b9c5ac0d0f228d66307506b50bbcd869497c7a65145f5b1654abd13f600c03c7738b581a1e451acc60ea0d6a1779b0d292f8f4ca28beb62ca957a27ec01800500ca17d9a64b5b26524539a3a11730c694bb1b9946bbd7c5952af54fd802ff0a01942fb34c96b64ca48a7347422e618d297637328d77af8b2a55ea9fb005fe1403285f66992d6c994914e68e845cc31a52ec6e651aef5f1654abd53f600bfc280650becd325ad9329229cd1d08b98634a5d8dcca35debe2ca957aa7ec017f8500ca17d9a64b5b26524539a3a11730c694bb1b9946bbd7c5952af54fd802ff02c2b9ba80b2bee1c970ecf2c6a810e137ed9bf7028d91ef9b2a55eaafb005fdf585737501657dc392e1d9e58d5021c26fdb37ee051b23df3654abd55f600bfbe3cc0c74d03123b2a290164a9a0626048a7a959bda3661fe7ca957aacec017f7b0593e746dc86f90c1ec8f14b3722e88bfb950f7846cde3d0952af55ad802fef50b27ce8db90df2183d91e2966e45d117f72a1ef08d9bc7a12a55eab5b005fdea164f9d1b721be4307b23c52cdc8ba22fee543de11b378f4254abd56b600bfbd42c9f3a36e437c860f6478a59b917445fdca87bc2366f1e84a957aad6c017f7a8593e746dc86f90c1ec8f14b3722e88bfb950f7846cde3d0952af55ad802fef503e8f41886741a43ba5e4515edabb397a1ee44b05d9be1e13a55eab5c005fde9f0930dbbda4e5cb2f188ecab5abd49aeeea0af208b37de0284abd56b900bfbd3d1261b77b49cb965e311d956b57a935ddd415e41166fbc050957aad72017f7a7a24c36ef693972cbc623b2ad6af526bbba82bc822cdf780a12af55ae402fef4f44986dded272e5978c47655ad5ea4d777505790459bef014255eab5c805fde9e81f20148724bf35a955b2d352b3a7d6e94cf17c8837dfa685abd56b910bfbd3cf3e40290e497e6b52ab65a6a5674fadd299e2f9106fbf4d0b57aad72217f7a79e0892aac9695f595d23917542c4fd839fe0084e1ddf803e17af55ae452fef4f3b11255592d2beb2ba4722ea8589fb073fc0109c3bbf007c2f5eab5c8a5fde9e76224aab25a57d65748e45d50b13f60e7f802138777e00f85ebd56b914bfbd3cec4495564b4afacae91c8baa1627ec1cff004270eefc01f0bd7aad72297f7a79d8153d05436c58188a05dd7c24463661f8acc73ddaf805857bf55ae453fef4f3af2a7a0a86d8b031140bbaf8488c6cc3f1598e7bb5f00b0af7eab5c8a7fde9e75e54f4150db16062281775f09118d987e2b31cf76be01615efd56b914ffbd3cebc35fa82c839234707fbb2091a281137c0127c4ad4c02dcfe0aad722a0f7a79d776bf5059072468e0ff764123450226f8024f895a9805b9fc155ae4541ef4f3aee63fc63cdbaef9ed7bb8e4c6096a306faf633875000b8e383ab5c8a84de9e75db540b20484c41c06743e2c0b923a435f098a96a9d01736b0856b9150abd3cebb53428993d6ee60386548ba96a3da693dbdd95313702e87a11ad722a167a79d7696851327addcc070ca91752d47b4d27b7bb2a626e05d0f4235ae4542cf4f3aed25cb4bda291fa90d11ef4cda0ecf8776a229720d90ba38c47b5c8a85ae9e75da3457bd3f1fa57a45a0aafc339d04f16cef1709daf1748bc906b9150b6d3cebb45170a0090cb11cb6be225ae6b96fc55988f23975b2e931d21d722a16ea79d76892e140121962396d7c44b5cd72df8ab311e472eb65d263a43ae4542dd4f3aed125c2802432c472daf8896b9ae5bf156623c8e5d6cba4c74875c8a85ba9e75da2444625d332ef0de16ddf39b54ae40d4bf255f16d6749a8d0fb9150b763cebb44714d7131334443ee588ad5ea152dfd178f70089a9e936be20722a16ed79d7688d29ae262668887dcb115abd42a5bfa2f1ee011353d26d7c40e4542ddaf3aed11a535c4c4cd110fb9622b57a854b7f45e3dc0226a7a4daf881c8a85bb5e75da23432caf146788479e412311d028d5cb3c26446a94c49b795049150b76ccebb44676595e28cf108f3c824623a051ab96784c88d5298936f2a0922a16ed99d7688ce573e1dc6b8746a48158a9c022bd0f7043d5d012e26dff8134542ddb43aed119b3a8e943a474b5747f7db5ffc4e00160326fc5e594dc194278a85bb6975da2335012f812164f93147bc7ce7f0925e5400fa3b18af9b84cc50150b76d3ebb44669025f0242c9f2628f78f9cfe124bca801f476315f370998a02a16eda7d7688cd204be048593e4c51ef1f39fc249795003e8ec62be6e133140542ddb4faed119a4097c090b27c98a3de3e73f8492f2a007d1d8c57cdc266280a85bb69f5da2334812f812164f93147bc7ce7f0925e5400fa3b18af9b84cc50150b76d3ebb44669025f0242c9f2628f78f9cfe124bca801f476315f370998a02a16eda7d7688cd204be048593e4c51ef1f39fc249795003e8ec62be6e133140542ddb4faed119a4023d2e95f52fb26960b3a204125882877c9ceb3cac267cc0b85bb69f6da23347f47a5d2bea5f64d2c167440824b1050ef939d679584cf98170b76d3edb44668fe1b5dfe2a224f1d0ff9aea8fc8c7ec9d9d37d2b2809a0d42f16eda7dc688cd1fb36bbfc54449e3a1ff35d51f918fd93b3a6fa56501341a85e2ddb4fb8d119a3f66d77f8a8893c743fe6baa3f231fb27674df4aca0268350bc5bb69f71a23347ec670249fde8db6b379a3b6fdc5a5476c9482bb53d4d084579b76d3ee444668fd75a16eca8a8195927013d07b0ab07158d3c99c6779a122ef46eda7dc988cd1fad404031fe26953505cf4037594c6c53152575e8ec342601e9ddb4fb94119a3f590c92bca9238cecc36b4696aa8f36ce24f72e2dd5684da7d4bb69f72923347eb1192579524719d986d68d2d551e6d9c49ee5c5baad09b4fa976d3ee524668fd62324af2a48e33b30dad1a5aaa3cdb3893dcb8b755a1369f52eda7dca48cd1fac46495e5491c67661b5a34b55479b67127b9716eab426d3ea5db4fb94919a3f588553e233f0f314eee812f92a0e9cb0a4a1f25395384dc214cb69f72933347eb0f368e9f2af4c52094cf254d39c9f43c8eea8ccea409b9e69a6d3ee527668fd61d6d1d3e55e98a41299e4a9a7393e8791dd5199d481373cd34da7dca4ecd1fac3a664cd558a977050b095b5cdf1e2f1a365675968d26e93e6ab4fb949e9a3f587358ac035e29508ccddf7ce1b632bc5c67592d89174dd420d669f7293e347eb0e53d6a5f6929039c538bbfeb645bd6e0c95e9d6e2b9ba9e5add3ee527d68fd61c906e7177f2869bb5ee445fec0ae0be98d697d385437556f5ca7dca4fbd1fac3910dce2efe50d376bdc88bfd815c17d31ad2fa70a86eaadeb94fb949f7a3f587221b9c5dfca1a6ed7b9117fb02b82fa635a5f4e150dd55bd729f7293ef47eb0e443738bbf9434ddaf7222ff605705f4c6b4be9c2a1baab7ae53ee527de8fd61c886e7177f2869bb5ee445fec0ae0be98d697d385437556f5ca7dca4fbd1fac391068f54891e399ee945586000db7db59a7dbe96683eaaf8f95fb949f7b3f58721f5dfce9d09d965fe077d228136614db4a64152904d560c32cf7293ef77eb0e43d480c2c4e118f4278bc6a781ec287de8f746cae06aac32a5aee527deffd61c8791c2ab148f98107a9459b18357b6de519951bb80a5587f8b6dca4fbe0fac390f138556291f3020f528b36306af6dbca332a377014ab0ff16db949f7c1f58721e270aac523e6041ea5166c60d5edb79466546ee029561fe2db7293ef83eb0e43c46d67e2f4a26ac001f99ee9a3d1cd50c755201c4fac4169b7e527df08d61c878766e21e961b3802bbc003fb3f99f8c9895682949c58847770ca4fbe12ac390f0d59d695d90cd2882f4cce1e772a4fbb0d59478535b10a92e2949f7c2658721e193fbf845ef0079316666264e64afd9e155ed166686216c9c6293ef84db0e43c310b91616ab671a8e4998af1c48c59642569e528cdc42f378d527df09c61c878611722c2d56ce351c93315e38918b2c84ad3ca519b885e6f1aa4fbe138c390f0c22e4585aad9c6a392662bc71231659095a794a33710bcde3549f7c2718721e1845c8b0b55b38d4724cc578e2462cb212b4f29466e2179bc6a93ef84e30e43c30845286f583d7d110165754440bbf46a514a94e8d942f51cd627df09c71c87860f1663375d515ca4ba97b0b0796e46fc9d416c2daf85ebddad4fbe138f390f0c1d2cc66ebaa2b949752f6160f2dc8df93a82d85b5f0bd7bb5a9f7c271e721e183a598cdd75457292ea5ec2c1e5b91bf27505b0b6be17af76b53ef84e3ce43c30743f2c13976147a88c8a4babc368960ce4b7a3c9792f60916b7df09c7ac87860e70a6a7fdb98f1d3d0e15d7f7ec78a41c41b89eeef5ec2c6d7fbe138f690f0c1cd14d4ffb731e3a7a1c2bafefd8f1483883713dddebd858daff7c271ed21e1839a29a9ff6e63c74f438575fdfb1e2907106e27bbbd7b0b1b5fef84e3da43c307345353fedcc78e9e870aebfbf63c520e20dc4f777af61636bfdf09c7b487860e6832ba5666657fbfc5e29e1fe46f02443c64e14af2ec2e1180be138f6a0f0c1ccf6574accccaff7f8bc53c3fc8de048878c9c295e5d85c23017c271ed41e18399e56fbb2466c6181cf573ea789b26738ec3fc787c8b0b9ea03f84e3da93c30733b3a09bd39af2586567b43770b5b2c99d32bd16b8e61757808f09c7b537860e6750025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200974c80d2b63d930d34583ab2dd6e840f94cc670bb2504b84e3da9fc30733a4012e9901a56c7b261a68b07565badd081f2998ce1764a09709c7b53f860e6748025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200974c80d2b63d930d34583ab2dd6e840f94cc670bb2504b84e3da9fc30733a4012e9901a56c7b261a68b07565badd081f2998ce1764a09709c7b53f860e6748025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200235ed97f8ca015c5011e62aad3ccac0a410ec308b251ef85e3da9fc40733a3ff46bdb2ff19402b8a023cc555a7995814821d861164a3df0bc7b53f880e6747fe198dbeab08e2d9cbd13fb2a34590d823b07d681fc94962188f6a7f111cce8ffb331b7d5611c5b397a27f65468b21b04760fad03f9292c4311ed4fe22399d1ff66636faac238b672f44feca8d1643608ec1f5a07f252588623da9fc44733a3fec58804e051d79511656c3bd1222e4e918302d9cfb4a4cb4c57b53f889e6747fd73d12f4b7115524e47a4da21c3c27fa2b0c9d95f3949b0d8bf6a7f114cce8ffad0638421af90ccc80c1616c306eae1c50c57d87e42937bf18ed4fe22a99d1ff590c708435f219990182c2d860dd5c38a18afb0fc8526f7e31da9fc45533a3feb218e1086be43332030585b0c1bab8714315f61f90a4defc63b53f88aa6747fd6431c210d7c86664060b0b61837570e2862bec3f2149bdf8c76a7f1154ce8ffac8638421af90ccc80c1616c306eae1c50c57d87e42937bf18ed4fe22a99d1ff590531a9c0bf7fc12cff8f3ae05cc21b2135bf3588226f9871ea9fc45543a3feb1f324790c4c65aa857bead84038ea18c2164290d014df4b23e53f88aa9747fd63d648f21898cb550af7d5b08071d431842c8521a029be9647ca7f11552e8ffac7a55309bbfefcd2416c77c380630e458803ce6900237d46cfa4fe22aa6d1ff58f33673902cb5fccae55bbe98045826d8fb260f7c016faa7df59fc4554ea3feb1e56ce720596bf995cab77d3008b04db1f64c1ef802df54fbeb3f88aa9d47fd63ca65e0995fae55ae4d3bc0880956f98be744804c02beab9bd77f11553b8ffac79357d38b6c330ddf524447380aa4513fc93542f4027d58dbaffe22aa781ff58f253bb96f853c7e415c5554980d3f00a78d16c84401fab35b60fc4554f13feb1e49038537b74f5f0570776f5812745f7714d9d2e400f5685ac2f88aa9e37fd63c91070a6f6e9ebe0ae0eedeb024e8beee29b3a5c801ead0b585f11553c6ffac79220e14dedd3d7c15c1ddbd6049d17ddc53674b9003d5a16b0be22aa78dff58f2441c29bdba7af82b83bb7ac093a2fbb8a6ce972007ab42d617c4554f1bfeb1e48838537b74f5f0570776f5812745f7714d9d2e400f5685ac2f88aa9e37fd63c91070a6f6e9ebe0ae0eedeb024e8beee29b3a5c801ead0b585f11553c6ffac792206d604680ae23ded5a89c2c950e3bed3120fb5c3a5a1854bf22aa78e0f58f243f66d2e5ae32aa40631dfe812212d6025cee391471b4324d7f4554f1c2eb1e487d59b824093bb7037e08c32a3c1c0a2cb488b484e068663eff8aa9e386d63c90f93f82a0bf4dd089b3de4c7c702e728163bdab65bdd0ce22001553c70eac7921f10b179a2b7203961f895f20d853432ac227992778a19de8012aa78e1e58f243e1162f3456e4072c3f12be41b0a68655844f324ef1433bd002554f1c3cb1e487c22c5e68adc80e587e257c83614d0cab089e649de28677a004aa9e387963c90f8458bcd15b901cb0fc4af906c29a1956113cc93bc50cef4009553c70f2c7921f083d8bfb63f69be4b062b8357d2a90d41d25d4d38719e02413aa78e1e68f243e0f072a4f74c39a4c18923692f24b7fd034f7ec030b33c1ec2854f1c3ce1e487c1d0e549ee987349831246d25e496ffa069efd806166783d850a9e3879c3c90f83a1ca93dd30e69306248da4bc92dff40d3dfb00c2ccf07b0a153c70f387921f07439527ba61cd260c491b497925bfe81a7bf6018599e0f6142a78e1e70f243e0e872a4f74c39a4c18923692f24b7fd034f7ec030b33c1ec2854f1c3ce1e487c1d0715c474549ac05ca1398864166582e99a9c2bd63783f290b9e3879c4c90f839f6ecae73769ba8e4bf3f7347ac30e852dffc7d6c3f07ff6183c70f38a921f073d69a8271ba9d79f4fb4b490ed7c7b3256abd20984e101903178e1e716243e0e795f62a6e42a11c157362f49d2ef548ca803e66f06c204c463f1c3ce2d487c1cf14ad7a6752a8605663924bb9dd507414ab40f3a0a840b2cc8e3879c5b90f839e121c1a5972b6e8d843f0f9f33a06caa901460d0120817fd92c70f38b821f073c143834b2e56dd1b087e1f3e6740d9552028c1a024102ffb258e1e717043e0e7821318ef09841cb8c8c904a4c67810d23afdc59c4520619a4c1c3ce2e187c1cf032631de13083971919209498cf021a475fb8b388a40c334983879c5c30f839e064c63bc261072e32324129319e04348ebf71671148186693070f38b861f073c0c24d9d0f8f74848fe14eb4e2bb6e4b9d29a6f3e26030e7661e1e7170d3e0e781749b3a1f1ee9091fc29d69c576dc973a534de7c4c061cecc3c3ce2e1a7c1cf02e1f799c90b383a6b0207360a6d1f10f4515ff54950c3b7d88879c5c35f839e05b3ef3392167074d6040e6c14da3e21e8a2bfea92a1876fb110f38b86bf073c0b609f8caefa4711d784e93aa933e22650f043fae5130ef9a231e7170d8e0e7816b13f195df48e23af09d2755267c44ca1e087f5ca261df34463ce2e1b1c1cf02d627e32bbe91c475e13a4eaa4cf889943c10feb944c3be688c79c5c363839e05ac4fc6577d2388ebc2749d5499f113287821fd7289877cd118f38b86c7073c0b582b9f07a71d745a3cb600d12bd88478eaf03d41100efb4632e7170d8f0e7816af573e0f4e3ae8b4796c01a257b108f1d5e07a82201df68c65ce2e1b1e1cf02d5e3a8e77494c33ebaaa4c96ca758700ba66d37603d3beebccc9c5c363d39e05abb012f473f6eca5a0d16590146a73e3f4786b11c7777df1d9a38b86c7b73c0b575025e8e7edd94b41a2cb2028d4e7c7e8f0d6238eeefbe3b347170d8f6e7816aea04bd1cfdbb2968345964051a9cf8fd1e1ac471dddf7c7668e2e1b1edcf02d5d4097a39fb7652d068b2c80a3539f1fa3c3588e3bbbef8ecd1c5c363db9e05aba812f473f6eca5a0d16590146a73e3f4786b11c7777df1d9a38b86c7b73c0b575025e8e7edd94b41a2cb2028d4e7c7e8f0d6238eeefbe3b347170d8f6e7816aea04bd1cfdbb2968345964051a9cf8fd1e1ac471dddf7c7668e2e1b1edcf02d5d4023b5f8643b8f8942f946cb4b957dcbbe04d097b8ef90711d5c363dbae05aba7f476bf0c8771f1285f28d96972afb977c09a12f71df20e23ab86c7b75c0b574fe1aea3a3dc4a0a7c3b1e155264c5556f2bf84bae0be43687670d8f6ec816ae9fb35d4747b89414f8763c2aa4c98aaade57f0975c17c86d0ece1b1edd902d5d3f66ba8e8f712829f0ec785549931555bcafe12eb82f90da1d9c363dbb205aba7ec63642a9afb67c0d55bd0d12a5908df90a8683302f21ce7b486c7b7650b574fd752daade2cd3204628467ca4ca86fe71bfd12c202e43b736a0d8f6ecb16ae9fad31c7b47270c68b7cd595bc91473df632a667e002c8788ad51b1edd972d5d3f59638f68e4e18d16f9ab2b79228e7bec654ccfc00590f115aa363dbb2e5aba7eb253312a76997cb0ab231d1a3d135600c545e1dc0821e3cf556c7b765db574fd633274ad9a095be40e13005c721d0a29853806140d43c942abd8f6ecbc6ae9fac564e95b3412b7c81c2600b8e43a14530a700c281a87928557b1edd978d5d3f58a55e50f14fbd212f018c799c06a86ce0f8c5aac320f26aeb063dbb2f2aba7eb1337dc76d6ce06a897fe555b78cb6bc419c4f7b4611e4f0161c7b765e6574fd6256fb8edad9c0d512ffcaab6f196d7883389ef68c23c9e02c38f6ecbccae9fac4a6b8434080e7d2517c61b95db240d3861c0212d81793da9881edd979a5d3f5893631ac0bcf35ccce758fd53ae3e7898be2c84b6fff27cf7113dbb2f35ba7eb1255247da26bd1c1c867ec0cf54734f5977054bc9fce4fb92237b765e6c74fd624930a20cfa509abbc4ca47c6a0dcfcdae8b6d9eff6c9f8c847f6ecbcd9e9fac491614419f4a1357789948f8d41b9f9b5d16db3dfed93f1908fedd979b3d3f589224e9a8c9618cd71caf5e5427b6a51939d87aa1bd827e4c520dbb2f368a7eb1243294771d907fd664db890aceecb014f35bb9693ad4fcb2e42b765e6d24fd62485528ee3b20ffacc9b712159dd96029e6b772d275a9f965c856ecbcda49fac490a31302010f6581beeaf08dbb3226364d19a9caab23f2e5d0bdd979b4a3f58921362604021ecb037dd5e11b76644c6c9a3353955647e5cba17bb2f36947eb1242650d2d8f0afc2f27288e996c47febbb4116b506c5fcbb1830765e6d29fd62484b2db80a8e35e8679cde995580f6359e7cd9ac6988f977d461ecbcda54fac490955b70151c6bd0cf39bd32ab01ec6b3cf9b358d311f2efa8c3d979b4a9f589212a42f282e5ae04212b472b7dfbcf34a1ee12f40220e5e0f588b2f36954eb12425311f75e78326ac50e5b1d23ef94c76bd6d22a603ecbc38f1265e6d2aad62484a523eebcf064d58a1cb63a47df298ed7ada454c07d97871e24cbcda555ac49094a47dd79e0c9ab14396c748fbe531daf5b48a980fb2f0e3c49979b4aab589212941bcd4c6e69b8ab2aa5af47749c9986b13d955df35e1e1c942f369557b1242527379a98dcd37156554b5e8ee939330d627b2abbe6bc3c39285e6d2aaf62484a4e6f3531b9a6e2acaa96bd1dd272661ac4f65577cd78787250bcda555ec490949c6a7cbc202427dc0cfa40639cdb2a5d8498ed4b97f0f288a279b4aabe89212937610bd0ed1eb23ad1c146ef31acb2e303de1cf32ce1e6b545f369557e1242526d4e29fa8713c6f85b4f54065b4fc3ee02687c4256c3cf0e8ce6d2aafd2484a4d928664dbafdf0736e6b6e34ae95e603ff7d3ae0aa879fc11acda555fb490949b150cc9b75fbe0e6dcd6dc695d2bcc07fefa75c1550f3f82359b4aabf6921293622dab8f98ce2450717a7efab24df637f8a12ddea71e80a86c369557ee242526c35b571f319c48a0e2f4fdf5649bec6ff1425bbd4e3d0150d86d2aafdc484a4d8642c097100ef3c47db6c212c12e3707dd30f9d6997a0445b1da555fb990949b0b119386ccf44a0bb33a4a4d7a52cc37b50e36092ff40a2f64b4aabf742129361523270d99e894176674949af4a5986f6a1c6c125fe8145ec969557ee842526c2a464e1b33d1282ecce92935e94b30ded438d824bfd028bd92d2aafdd084a4d85418ae8f1478b2e0519f1893ca8cbfe5a31df2a57ca0531f26a555fba20949b0a7315d1e28f165c0a33e312795197fcb463be54af940a63e4d4aabf7441293614e62ba3c51e2cb81467c624f2a32ff968c77ca95f2814c7c9a9557ee882526c29c5186d1509bf98544c58ac64c5c5d55139bd787e2029a9d362aafdd114a4d85372f1ffb4e0e558d4157dbb490af18d221e3f16bc10536de6d555fba23949b0a6d5e3ff69c1cab1a82afb769215e31a443c7e2d7820a6dbcdaaabf7447293614da489245e50fb8b7bd2c34fa3ab2c170823c080b0114dd1db6557ee88f526c29b31d36e476f5d3f23225301c6d5be108ff245271ff29bbdf6daafdd11fa4d853653a6dc8edeba7e4644a6038dab7c211fe48a4e3fe5377bedb55fba23f49b0a6ca00edea88adb24b80618699ad65e24bf73d8c23f9a6f121b7abf7447f93614d9301dbd5115b649700c30d335acbc497ee7b1847f34de2436f57ee88ff26c29b2603b7aa22b6c92e01861a66b597892fdcf6308fe69bc486deafdd11fe4d85364c076f54456d925c030c34cd6b2f125fb9ec611fcd37890dbd5fba23fc9b0a6c980edea88adb24b80618699ad65e24bf73d8c23f9a6f121b7abf7447f93614d9301dbd5115b649700c30d335acbc497ee7b1847f34de2436f57ee88ff26c29b2603b7aa22b6c92e01861a66b597892fdcf6308fe69bc486deafdd11fe4d85364c003079d03af8842e89012feaae7842399725458d078927fd6fba23fcab0a6c97f060f3a075f1085d12025fd55cf084732e4a8b1a0f124ffadf7447f95614d92fe0c1e740ebe210ba2404bfaab9e108e65c9516341e249ff5bee88ff2ac29b25fc183ce81d7c4217448097f5573c211ccb92a2c683c493feb7dd11fe5585364bf83079d03af8842e89012feaae7842399725458d078927fd6fba23fcab0a6c97f060f3a075f1085d12025fd55cf084732e4a8b1a0f124ffadf7447f95614d92fe04df99998b8733cdbd185d2b1d7670e574158901b24a199bfe88ff2ad29b25fbf28058bde4748fc6f6fd1cd5ba52c44a92ef37c334944d780d11fe55b5364bf7d500b17bc8e91f8dedfa39ab74a5889525de6f8669289af01a23fcab6a6c97efa2c288825f38674758c0d5d668b0f3a9f68104cca25150204447f956e4d92fdf35851104be70ce8eb181abacd161e753ed02099944a2a040888ff2adc9b25fbe63cb47944a47c548dfcfb9d92229b12784c838f259455ac1211fe55ba364bf7cb057b4b361f5b2bd3c6bd631c3b944ceb45497a4828acfc2523fcab756c97ef950af6966c3eb657a78d7ac638772899d68a92f4905159f84a47f956ead92fdf2a15ed2cd87d6caf4f1af58c70ee5133ad1525e920a2b3f0948ff2add5b25fbe542bda59b0fad95e9e35eb18e1dca2675a2a4bd2414567e1291fe55bab64bf7ca857b4b361f5b2bd3c6bd631c3b944ceb45497a4828acfc2523fcab756c97ef9503b7bbf70c1c7fd30a4728b7f68e7c5635571a50215a128a57f956eae92fdf29f0309d78e59f27d1915ab3ef6c82db2c15725a6012b43f54bff2add5e25fbe53d0613af1cb3e4fa322b567ded905b6582ae4b4c025687ea97fe55babc4bf7ca7a0c275e3967c9f46456acfbdb20b6cb055c969804ad0fd52ffcab757897ef94f4184ebc72cf93e8c8ad59f7b6416d960ab92d30095a1faa5ff956eaf12fdf29e8309d78e59f27d1915ab3ef6c82db2c15725a6012b43f54bff2add5e25fbe53d0613af1cb3e4fa322b567ded905b6582ae4b4c025687ea97fe55babc4bf7ca7a04e883c435301c8fd3795e5aa01cad85075abdc47d0fef700cab7578a7ef94f3f2922d1337c6614b23bf1f34bf9f3d89b979a148ca1ff9202956eaf15fdf29e7d5245a266f8cc296477e3e697f3e7b1372f34291943ff24052add5e2bfbe53cfa309d9d7ac7fad580bc8df527de2d8a690aaaae2f87ffec0b55babc58f7ca79f3613b3af58ff5ab01791bea4fbc5b14d215555c5f0fffd816ab7578b1ef94f3e64e88ce97f64dd8babefdfc976f14519ed6ed14bb2001542e56eaf164df29e7cb2923f5dcc2fe342d4ac22126d486cb385a1c857340044c5dadd5e2cabe53cf955247ebb985fc685a9584424da90d9670b4390ae6800898bb5babc5957ca79f2a30a2301fe25b536cf7ceac93487954dc14b471ca0012d577b7578b2bf94f3e536144603fc4b6a6d9ef9d592690f2a9b82968e3940025aaef6eaf1657f29e7ca64e9b192c5fcfd06bac00da4518437b6aff142325004cf9dfdd5e2cb0e53cf94b29488b059602238f24c7dc8226e51ed0aa6aa247009b97c0babc5962ca79f2955291160b2c04471e498fb9044dca3da154d5448e01372f817578b2c594f3e52a313484c32e6b10f45fe59a0091f2a33d55ece51902700303eaf1658c29e7ca53626909865cd621e8bfcb340123e5467aabd9ca3204e00607d5e2cb1853cf94a650e46bb9900ec6894c5c8ffa3e28b4f003f5f06109c1b010abc59631a79f294b2ddb301ff6800fca657f47ec72af91dab42e3cbf13850422578b2c644f3e52955bb6603fed001f94cafe8fd8e55f23b5685c797e270a0844af1658c89e7ca52a437f192cb062c1e162c347a9c11c6f657cfb4ef94e15b48a5e2cb1923cf94a5313108b063728067a924cb74b789706c5a638f9ef9c2d0d15bc59632579f294a52621160c6e500cf524996e96f12e0d8b4c71f3df385a1a2b78b2c64af3e5294a4c422c18dca019ea4932dd2de25c1b1698e3e7be70b43456f1658c95e7ca52942496b0de8fa2b68c5f2be253bb165e27de0a2b79e16a0caee2cb192ccf94a527492d61bd1f456d18be57c4a7762cbc4fbc1456f3c2d4195dc59632599f294a4e1e6d1c2714ed5ce94975b146e2b7a09a246b09e485a9d6bc8b2c64b43e52949b3cda384e29dab9d292eb628dc56f413448d613c90b53ad791658c9687ca5293605c6c9492a17f65cf29ced13813caa633dee838f16a8fef32cb192d1f94a526b0b8d9292542fecb9e539da27027954c67bdd071e2d51fde6596325a3f294a4d6171b2524a85fd973ca73b44e04f2a98cf7ba0e3c5aa3fbccb2c64b47e52949ac2e364a4950bfb2e794e7689c09e55319ef741c78b547f799658c968fca5293585c6c9492a17f65cf29ced13813caa633dee838f16a8fef32cb192d1f94a526b044eb81d219614e562063ca681df374626a12cddfd521826696325a40294a4d5f15e95c5109251f640d8dbcc8324510bf8067f7bcaa44a8ce2c64b48152949abd2bd2b8a2124a3ec81b1b7990648a217f00cfef795489519c58c96902a529357a57a5714424947d903636f320c91442fe019fdef2a912a338b192d2054a526af43b5d3b351f8b7dd839340e398886adf6af8219e25226ea726325a40b94a4d5e702cccf1715797e683f2e446b076b83e80b468fc1a44f78e5c64b48182949abcd05999e2e2af2fcd07e5c88d60ed707d0168d1f83489ef1cb8c9690305293579a0b333c5c55e5f9a0fcb911ac1dae0fa02d1a3f06913de397192d2060a526af34166678b8abcbf341f97223583b5c1f405a347e0d227bc72e325a40c14a4d5e682cccf1715797e683f2e446b076b83e80b468fc1a44f78e5c64b48182949abcd05999e2e2af2fcd07e5c88d60ed707d0168d1f83489ef1cb8c9690305293579a03f461e7234c21cc7985742b9d13f21fd7de64c6613dfdd7292d2060b526af33f0a9e95913fe6bc46fd74ad6b98dc6bf5a80ef4c927c15ee625a40c17a4d5e67d153d2b227fcd788dfae95ad731b8d7eb501de9924f82bdcc4b48182f49abccfa2a7a5644ff9af11bf5d2b5ae6371afd6a03bd3249f057b989690305e935799f454f4ac89ff35e237eba56b5cc6e35fad4077a6493e0af7312d2060bd26af33e835fbb1c0d4ce4727a410feb18424e7552d31a88f7c1792635a40c17b4d5e67cf6bf76381a99c8e4f4821fd630849ceaa5a63511ef82f24c6b48182f69abccf9e64011fb0299b9f565d0a22be06f1c54f6108fe3af05fed8e690305ee35799f3b5414980d2999c16486da6d740441b2996e545872e0c17f1dd2060bdd6af33e75343b88c729960580da7b02dffee18d2d88eb0ce2c184a23ca40c17bbd5e67ce96877118e532c0b01b4f605bffdc31a5b11d619c58309447948182f77abccf9d25d007bc97cba98bb36b23377f1e45cb0cfee8f8806142cf390305ef05799f3a34613503fcfd7b42e3a2a8ee7da26e15c4c1f7b0d0c29fde82060bde1af33e7451838f92c7611eb14411b45c7aaabeab34481521718559fd140c17bc45e67ce893071f258ec23d62882368b8f5557d5668902a42e30ab3fa28182f788bccf9d1260e3e4b1d847ac51046d171eaaafaacd1205485c61567f450305ef11799f3a244dda221086f1db59d5a056354bbd7d94d04cecb5c2aea28b060bde23f33e744727c69ccde446396b7806d4628dd923244cdc3568855ee9170c17bc48e67ce88d4f8d399bc88c72d6f00da8c51bb2464899b86ad10abdd22e182f7891ccf9d11a2b2ccbe4677b6865ace179822dc2b48bdfb3319f157d485d305ef12499f3a233565997c8cef6d0cb59c2f3045b856917bf66633e2afa90ba60bde24933e7446638c5883e7450244e804c0e00ad68fa2a2b0f227955f6c575c17bc49367ce88cb718b107ce8a0489d00981c015ad1f454561e44f2abed8aeb82f78926cf9d11966f2879a6a7a313f1cdf65ffaac0210a3587ee5e257dcb9d805ef124e9f3a232b6a634bfa25a8aa9b68b2e7ed4e6249415d4027c1afbb17b10bde249e3e74465560d8f0a121b3d7ee9e2bf7d29322ba7d66c2ab805f77d36317bc493d7ce88ca94dc439ef19ca3295091e179d1ca39cf579c7b2fdbef14ac72f78927bf9d11951279acc8b09f6e7e1df0257322fa561e59fd1c1f87de4398f5ef124f8f3a232a14f35991613edcfc3be04ae645f4ac3cb3fa383f0fbc8731ebde249f1e74465422a7d8ad8fe3e223f48cf84c0b4f3af912b8963def7928a3e7bc493e4ce88ca8354fb15b1fc7c447e919f098169e75f225712c7bdef25147cf78927c99d11950636088410cf5b0bb4f0043afaca2ce63f5a67eb78de4bccfaef124f943a232a0b6c1108219eb61769e00875f59459cc7eb4cfd6f1bc9799f5de249f2874465416643468f013ceb18b8cd713e31f11c0f815e209e07930d7ecbc493e51e88ca82b547b2a8cfdffe5cee6744fbe3481a9ead8066fbdf26353da78927ca4d11950553508adc6d2624e5599aec7745f617bd05c4f3b78e4c84bb5f124f94aa232a0a96a115b8da4c49cab335d8ee8bec2f7a0b89e76f1c990976be249f2954465415260350fc81febbc0e338145c973e4173c1d7f49e09322d2d8c493e52b88ca82a34c7c783d1639fad433c8b38ade265672e740efbe264749b28927ca5811950545250b492702d6786034578f0db2aad4e07ac43b794c903766124f94b1232a0a894a16924e05acf0c068af1e1b6555a9c0f58876f299206ecc249f296246541512203f7d48e1bc64389e24642ec1097b7c975349e232428199493e52c58ca82a23407efa91c378c8713c48c85d8212f6f92ea693c464850332927ca58b195054460d104dd05d54139a4557b8b2fa8415ed098f8385c90baa6624f94b1732a0a88b1a209ba0baa827348aaf7165f5082bda131f070b921754cc49f2962e654151163441374175504e69155ee2cbea1057b4263e0e17242ea99893e52c5cca82a22c68826e82eaa09cd22abdc597d420af684c7c1c2e485d533127ca58b9950544585d1735b2aba3bc5c2241b3279e9f86cb453a945990bc4a634f94b1742a0a88af4640c4122da9fb7011498e47339d359136b784b0217a38c79f2962e95415115d1893e0d131b67997ef5944865d98931d19b1655d42f615903e52c5d3a82a22b93127c1a2636cf32fdeb2890cbb31263a3362caba85ec2b207ca58ba750544572624f8344c6d9e65fbd65121976624c7466c595750bd85640f94b174ea0a88ae450b15f3664164f7747904c2ae322c0e379cd86e717b25082f2962e9e415115c72d7517199e8f21a65be6c04dbca3a9c19fdd69cb2f664506e52c5d3d82a22b8d5aea2e333d1e434cb7cd809b794753833fbad3965ecc8a0dca58ba7b0544571a41e6b513509f09513c61292ee8eccf012bb80329bd9ab81c94b174f70a88ae330fdfc2d377a0955a45887a55c837c5fd03b262507b37143a2962e9ef15115c651fbf85a6ef412ab48b10f4ab906f8bfa0764c4a0f66e287452c5d3de2a22b8ca3f7f0b4dde8255691621e95720df17f40ec98941ecdc50e8a58ba7bc544571940b106f4893672d89f909faa6381c57e2c9d56e80d9ba45d24b174f79a88ae3271620de9126ce5b13f213f54c7038afc593aadd01b3748ba4962e9ef35115c64e2c41bd224d9cb627e427ea98e0715f8b2755ba0366e917492c5d3de6a22b8c9c58837a449b396c4fc84fd531c0e2bf164eab7406cdd22e9258ba7bcd445719383d194d360cd55b575d65d25b7823a6274999440a9ba60125b174f79b88ae326f0644f318f00d39668791ccaee6a574493f74e412374da64c62e9ef38115c64dd0c89e631e01a72cd0f23995dcd4ae8927ee9c8246e9b4c98c5d3de7022b8c9ba1913cc63c034e59a1e4732bb9a95d124fdd39048dd3699318ba7bce045719374322798c78069cb343c8e6577352ba249fba72091ba6d3263174f79c08ae326e8644f318f00d39668791ccaee6a574493f74e412374da64c62e9ef38115c64dd054b0bbcad809af88beffbdd4cb0cb1229adede43e9b66d8d5d3de7032b8c9b9f3573d0428675e1c94ac5a3a18c778a3fe2001884d36e7f1bba7bce075719373d6ae7a0850cebc392958b474318ef147fc4003109a6dcfe3774f79c0eae326e7a61e199b6f03a09dcf7dcb67e283c50fa3442be104dbba06fe9ef381e5c64dcf34fd58c1ab6d69671bc7f94f446d6c9ef14c7d81d9b78e4e0d3de703db8c9b9e52bbd70e2440faf9b45c551e0840bbbd8d5d20c3836f36dc2a7bce07c719373c9577ae1c4881f5f368b8aa3c1081777b1aba418706de6db854f79c0f8e326e7923b081c35e6a14124e3db6f7a068d175e038a8cdddbcf5b0b9ef381f2c64dcf2302229118a3a50501947d06ec037856b6b35775b8b7a05a183de703e68c9b9e4504452231474a0a0328fa0dd806f0ad6d66aeeb716f40b4307bce07cd19373c8a088a44628e94140651f41bb00de15adacd5dd6e2de816860f79c0f9a326e7914111488c51d28280ca3e837601bc2b5b59abbadc5bd02d0c1ef381f3464dcf2282229118a3a50501947d06ec037856b6b35775b8b7a05a183de703e68c9b9e4504452231474a0a0328fa0dd806f0ad6d66aeeb716f40b4307bce07cd19373c8a014b69ed5bfa3c31cec07e2f8d473d5a7821fca2ae8182a1079c0f9a426e7913f296d3dab7f478639d80fc5f1a8e7ab4f043f9455d0305420f381f3484dcf227e52da7b56fe8f0c73b01f8be351cf569e087f28aba060a841e703e6909b9e44fc31c74f5ad3809b9f2d053fbe99fcd536bd40ad5440c2f484ce07cd22373c89f7638e9eb5a701373e5a0a7f7d33f9aa6d7a815aa88185e9099c0f9a446e7913ee532f96182464f13480db26f25e517cd5a145114e030d7614381f3489dcf227db327184dd1f2c6520ce7c75dcb30121a5eecc7e99061c9029703e6914b9e44fb564e309ba3e58ca419cf8ebb96602434bdd98fd320c392052e07cd22973c89f6a55d86c215314173b06b7ff6ac262ae92677456611873e4a6c0f9a453e7913ed337c330ef7c8ab12dda3626cd7b23851f7b2b08bf30e96d4e81f348a8cf227da56f8661def915625bb46c4d9af6470a3ef656117e61d2da9d03e691519e44fb4a6b1f1c6ac88d476f359ec32de2ec3c7898ee7ef9c3a7593b07cd22a43c89f69362509182677d11963803ae53bc36a0ebde1f59f0875056770f9a45497913ed2550b37bb1a55ca5e43ccd849f6ecb69d268810fde0ea250ef1f348a93f227da492d795010211bce8046613136d3f4fb9f7d447bb91d4645df3e691528e44fb4915af2a02042379d008cc2626da7e9f73efa88f7723a8c8bbe7cd22a51c89f692241f798ed5ad1bcb8e64aecd346321678a1544ae1751abb7df9a454a4913ed24310018a878c05fc29995c019e82c254ebeeeaf1bfea371afcf348a94a227da4852003150f180bf85332b8033d0584a9d7ddd5e37fd46e35f9e691529444fb490a40062a1e3017f0a66570067a0b0953afbbabc6ffa8dc6bf3cd22a52889f692140c1eace93692640497a634ec0c70cf5a2399e9fc51ba7be89a454a5213ed2427183d59d26d24c8092f4c69d818e19eb44733d3f8a374f7d1348a94a427da484e307ab3a4da4990125e98d3b031c33d688e67a7f146e9efa2691529484fb4909c60f56749b4932024bd31a76063867ad11ccf4fe28dd3df44d22a52909f6921384dfd27403f88c301472976b8bd6b1d9ce5e0fbc21ba9628aa454a5223ed2426f280ca72d557408ba5b19156971346334780453813754691648a94a457da484dd50194e5aaae81174b6322ad2e268c668f008a7026ea8d22c9152948afb4909ba2c44f5622c32a5a1392a7d9dbb2fb4cc8c53aa01dd53485a22a52916f69213735889eac458654b427254fb3b765f699918a75403baa690b4454a522ded2426e63d262e35872d193cb1701e6ee31cfb2cdd910404754ec5698a94a45cda484dcb065eb517e4bcb5312fa664d5bc981e5467646405ea9f2ed4152948bab4909b950cbd6a2fc9796a625f4cc9ab79303ca8cec8c80bd53e5da82a5291756921372a197ad45f92f2d4c4be999356f26079519d919017aa7cbb5054a522ead2426e5432f5a8bf25e5a9897d3326ade4c0f2a33b23202f54f976a0a94a45d5a484dca865eb517e4bcb5312fa664d5bc981e5467646405ea9f2ed4152948bab4909b95057e8fba96df928ddc192c2af8961f28798cedcba53e77e83a52917579213729f3be44fffb254d4734febad5709220d09dde01571a7d0a1084a522eb02426e53d03daf8ac3b0c2b9e6c9d82a608a2420e680286e04fa2e61194a45d61484dca7907b5f1587618573cd93b054c1144841cd0050dc09f45cc232948bac2909b94f20f6be2b0ec30ae79b2760a9822890839a00a1b813e8b984652917585213729e41ed7c561d8615cf364ec153045121073401437027d17308ca522eb0a426e53c83daf8ac3b0c2b9e6c9d82a608a2420e680286e04fa2e61194a45d61484dca79007716e3437e7f68560767cb90aa669c7ac933806f45e6633948bac2a09b94f1f0ee2dc686fcfed0ac0ecf972154cd38f5926700de8bccc672917585413729e3e1dc5b8d0df9fda1581d9f2e42a99a71eb24ce01bd17998ce522eb0a826e53c7c3b8b71a1bf3fb42b03b3e5c855334e3d6499c037a2f3319ca45d61504dca78f803293bf054e1eb0dd42df388a0c4c4757575dc6c45e8073a48bac2a19b94f1ef065277e0a9c3d61ba85be711418988eaeaebb8d88bd00e74917585433729e3de0ca4efc15387ac3750b7ce22831311d5d5d771b117a01ce922eb0a866e53c7bc1949df82a70f586ea16f9c45062623ababaee3622f4039d245d6150cdca78f783293bf054e1eb0dd42df388a0c4c4757575dc6c45e8073a48bac2a19b94f1ef065277e0a9c3d61ba85be711418988eaeaebb8d88bd00e74917585433729e3de0566154c20edd462cd8430a20278f455809b9770e7a0372932eb0a867e53c7bbf38d50230f41d0f117d4c3c38457cb2aabfb54a19f40889275d6150d0ca78f77d71aa0461e83a1e22fa9878708af965557f6a9433e811124ebac2a1a194f1eefa6f666170a6d6befdc1f718d90c50f2a5ab178464d023c89e7585434429e3ddf36adf1b8e241000b350b459aa0f000d46027164c6a049353deb0a868953c7bbe561d08fc91e82841e6e2edb4c145e4286b125258a40940e7cd6150d13a78f77c94fb3783f13678af4a923de901f1aad080e8ca7118129c0faac2a1a284f1eef912b79492afd3198a11f0de5183493820ac95baa20025525f6585434519e3ddf2156f29255fa6331423e1bca306927041592b7544004aa4becb0a868a33c7bbe4239f77d58cb28e53c48fdbc58c8ac3025d1b1047d09563bda6150d14778f77c830001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe41400035c18f06fcfab2189d1aebd33a814fccdebde5540ddc8551d147f8f87c827fff6b831e0df9f564313a35d7a675029f99bd7bcaa81bb90aa3a28ff1f0f904fffe631894c8ca4d4b1a4131d744e063672e2739f14d3773b948451fe3e2f209fffb5243823e6afd18ec4f29d681b724f656fab63e976ee916918a3fc7c6e413fff530995d29ac5cb4906b19d4fb64a814a8a1aed92bddd3d124147f8f8ec827ffe96132ba5358b96920d633a9f6c9502951435db257bba7a24828ff1f1d904fffd24e77cd5387d554f9792d7be588fe7a9d32fdc0ac7750e89151fe3e3c209fffa32901f353e60d2caabf211fc3085b1d35123ddd55eea37523a3fc7c79413fff455203e6a7cc1a59557e423f8610b63a6a247bbaabdd46ea4747f8f8f2827ffe8a301a25fc6e973562c94aa70417ca9ccef539d154ba8f788f8ff1f1e604fffd1360344bf8dd2e6ac592954e082f95399dea73a2a9751ef11f1fe3e3cc09fffa264c7af09e90bf5842f1f0c40855889b368129a14fea3f863f3fc7c79913fff44b250839e9f7e1333db0a7b008a16f5e67ae959e9cd480b07f7f8f8f3327ffe8954a1073d3efc2667b614f601142debccf5d2b3d39a90160feff1f1e664fffd12a20334054b5e74fae8f64e81a7c1ba1996698d670520465fefe3e3ccd9fffa253406680a96bce9f5d1ec9d034f8374332cd31ace0a408cbfdfc7c799b3fff44a60cdf59ffadffc1720a59c861e6ccae6046a5b5be48133bfcf8f8f3377ffe894b19beb3ff5bff82e414b390c3cd995cc08d4b6b7c902677f9f1f1e66efffd1296337d67feb7ff05c8296721879b32b9811a96d6f9204ceff3e3e3ccddfffa252c66facffd6ffe0b9052ce430f36657302352dadf24099dfe7c7c799bbfff44a585a07f8a7b65e99d87262ae1663290dff169db7e1813563d08f8f3378ffe894af402249fc431fb668b18b8424bcb043f8d97dcbc0026c6ba21f1e66f2ffd1295d0c56eca55ca1ef892fdd30416fbeafec5f3df37d04da7b453e3ccde6ffa252b918add94ab943df125fba6082df7d5fd8be7be6fa09b4f68a7c799bcdff44a572315bb2957287be24bf74c105befabfb17cf7cdf41369ed14f8f3379bfe894ae462b7652ae50f7c497ee9820b7df57f62f9ef9be826d3da29f1e66f37fd1295c851812302a0817b4aca992c0ef24926c0a02193cd4da95854e3ccde70fa252b8f2f149eb21765794d61f88015daf0757bec8583979b5454aac799bce2f44a571d5e293d642ecaf29ac3f1002bb5e0eaf7d90b072f36a8a9558f3379c5e894ae3a4864d37533f867ed54a8284f621ffdea5e586a5b6d52f6ac1e66f38cd1295c731cdbff973e53529276167896ba9e23cf68f330b3daa791593ccde71aa252b8e539b7ff2e7ca6a524ec2cf12d753c479ed1e66167b54f22b2799bce3544a571ca736ffe5cf94d4a49d859e25aea788f3da3ccc2cf6a9e4564f3379c6a894ae39472f25566c8fd174b7d79ecadcb4f4675f3dbe19bd53e2ecae66f38d61295c72771f7037a685cb14ec7ba01538cfcb4e693fa1f34aa7e0196ccde71ad252b8e4d70005fa1a71be5555c3a2a9f105791c7d4369a6654fda72e99bce35b4a571c996c1317f0249a4d62853a7d36170d4b8a54af90c9a9fcf25e3379c6b794ae39316438888d1f971d7cd73b22642478bf0f55a17d9053fb88bd66f38d70295c7261548369c71590bdb17b3c6cc03f4fa6195785571da7f8b57bcde71ae152b8e4c135192c3b0183fe1ac33f017874fd742d5b4d0a384ff30ef89bce35c3a571c9816a3258760307fc35867e02f0e9fae85ab69a14709fe61df1379c6b874ae3930260770998dc727b22d9c22dd9ca53f8b0197684de3fcddfe36f38d70f95c726034d006bde8f4778fd804a83ab8b06195adf2f65b97f9d63c7de71ae202b8e4c0526133069f4f174b2cd5b2f4f0c6a5ab06aa1276fff3c6b90bce35c41571c98094c2660d3e9e2e9659ab65e9e18d4b560d5424edffe78d72179c6b882ae393012245f1a54aa2855830232e534280792bc56c6f9bcfcf35243f38d71065c72602348be34a95450ab060465ca68500f2578ad8df379f9e6a487e71ae20cb8e4c0461d8ec1ff7f03d8c3d591bcc8967c72ec075e42f0f3ceed10ce35c41a71c9808b3b1d83fefe07b187ab2379912cf8e5d80ebc85e1e79dda219c6b8834e3930116024d60aad271e5c7230d1b1a504ff3aac9bb67c0cf3d584438d7106ac726022b049ac155a4e3cb8e461a3634a09fe7559376cf819e7ab08871ae20d58e4c0456093582ab49c7971c8c346c69413fceab26ed9f033cf56110e35c41ab1c9808ac126b0556938f2e391868d8d2827f9d564ddb3e0679eac221c6b883563930115824d60aad271e5c7230d1b1a504ff3aac9bb67c0cf3d584438d7106ac726022b049ac155a4e3cb8e461a3634a09fe7559376cf819e7ab08871ae20d58e4c045601f6a836172dbf480900cee8c0a5b12ad1b1c4c30cf57b50f35c41ab2c9808abf3ed506c2e5b7e9012019dd1814b6255a363898619eaf6a1e6b8835659301157e09bc6632a1d254ba0cf9e2281fca72af18b38cc03d60783dd7106acc26022afb1378cc6543a4a97419f3c4503f94e55e316719807ac0f07bae20d5984c0455f626f198ca874952e833e788a07f29cabc62ce3300f581e0f75c41ab309808abec4de331950e92a5d067cf1140fe539578c59c6601eb03c1eeb8835661301157d827d8bbd6f387ce589c644a79f30552ec377b2800d60927de7106acc36022afaf4fb177ade70f9cb138c894f3e60aa5d86ef65001ac124fbce20d5986c0455f5e2b754808a481bc1a3e5751dfc27373ab8a2efc005826437ac41ab30e808abebb56ea9011490378347caea3bf84e6e757145df800b04c86f58835661d01157d7639e778cf68697320c6236f77002bf6a8d4fe4bfe609ab1ec106acc3b022afaeb73cef19ed0d2e6418c46deee0057ed51a9fc97fcc13563d820d598760455f5d673b03bea78084f3ae553e5d3f70e029e003b8bf6826c6bb141ab30ed08abebab7372d081c673212d976df39fe47a2d36acb973ea04da7b63835661db1157d75572f7f9b06348c512fba20f37bf52826805b543d109b69ac806acc3b722afaea972024c0d9cf40cddc40a466775032ccab7ace39f136ed9910d59876f455f5d517016f0c8104a9c7354dab4c6e06481901b9c233b26df57231ab30edf8abebaa16c403a3cf6f7bb9e767b9185b7272b1ae37aa2734dc0524735661dc0157d75416492cd26c451f9f4b9bd4b0364ac7e307337a0e39b82488f6acc3b812afaea815537f2fa5f0676a14040bdfebfb7245b92b19dc43706351fd598770355f5d50136823ea1946f6ffa4d47a3f575cc70b1d1a597856e0e0e40ab30ee07abebaa016d047d4328dedff49a8f47eaeb98e163a34b2f0adc1c1c815661dc0f57d75402661b5333282042a101e4b7cdcd8feac1f2d8ba12b839dd03acc3b81fafaea8035848ff1326a307f9d08f9793917dfd7e91f3d02270755e08598770405f5d50053ca456d323a892ab6de5571f195a22f7d029fc41e0ec6011b30ee081bebaa009055b06531db3a80ea890d63629126dea4c965480c1da6424661dc1047d7540110ab60ca63b67501d5121ac6c5224dbd4992ca90183b4c848cc3b8208faea8022156c194c76cea03aa24358d8a449b7a9325952030769909198770411f5d500442ad83298ed9d40754486b1b148936f5264b2a4060ed3212330ee0823ebaa008855b06531db3a80ea890d63629126dea4c965480c1da6424661dc1047d7540110377323108cd7848cdee0eebd18abe5443f0cec153b4e288dc3b82090aea8021f6ee6462119af0919bdc1dd7a3157ca887e19d82a769c511b877041215d50043e69dee4ef09c094eb4849e2ec590dbd0ba8760c51ed3a46380ee08243baa0087b5fd0228ae9e3ac8e5d59edd0a879a211fd2e74a0da7630711dc10488754010f54bb29dc2aa29dbd4877a039947516c1ea69f453eb4ee04e33b820911ea8021e9237794322ab63a60dbba2f2a85010037f980e67a69ddadc777041224d50043d146ef2864556c74c1b7745e550a02006ff301ccf4d3bb5b8eee082449aa0087a219f0a975813b6c3b3baee4a20a6228da9245f5e6a7785b1edc10489454010f4333e152eb0276d876775dc94414c451b5248bebcd4ef0b63db8209128a8021e8667c2a5d604edb0eceebb92882988a36a4917d79a9de16c7b7041225150043d0c5b97a458e03de491aa3d4d08496f6ecf3e720b323bc47cf7e08244a3a0087a174341a15e96de4bdb2140c208893d059929267261778a9df0c10489484010f42d12959b6a041f1a6e0f47ac0908d8332cfe8f40bfef16dfe2820912918021e859252b36d4083e34dc1e8f581211b06659fd1e817fde2dbfc5041225230043d0b24a566da8107c69b83d1eb0242360ccb3fa3d02ffbc5b7f8a08244a460087a16420bf33fcf75b5628470388403d1fc162a0bc61fc78b8a3151048948d010f42c7417e67f9eeb6ac508e0710807a3f82c54178c3f8f171462a2091291a021e858e0f0f28a0b3cfdb58e8d448f8eadd2d852f33e3eee2e4305541225235043d0b1b1e1e5141679fb6b1d1a891f1d5ba5b0a5e67c7ddc5c860aa8244a46a087a16363c3ca282cf3f6d63a35123e3ab74b614bccf8fbb8b90c155048948d410f42c6c048b9db274e15d7f13686fbf4d47942425e17b74172326ab091291a921e858d709173b64e9c2bafe26d0df7e9a8f28484bc2f6e82e464d561225235243d0b1ae122e76c9d38575fc4da1befd351e50909785edd05c8c9aac244a46a487a1635c245ced93a70aebf89b437dfa6a3ca1212f0bdba0b919355848948d490f42c6b848b9db274e15d7f13686fbf4d47942425e17b74172326ab091291a921e858d701d860efb728e329a39d41fe19f50ac7f6871ca7fe4667962225235253d0b1adf3b0c1df6e51c653473a83fc33ea158fed0e394ffc8ccf2c444a46a4a7a1635be022a949aa09b4d20b416a77e73a0d9f84e0985fc919b89898948d495f42c6b7b0455293541369a41682d4efce741b3f09c130bf9233713131291a92be858d6f608aa526a826d3482d05a9df9ce8367e1382617f2466e262625235257d0b1adec1154a4d504da6905a0b53bf39d06cfc2704c2fe48cdc4c4c4a46a4afa1635bd822a949aa09b4d20b416a77e73a0d9f84e0985fc919b89898948d495f42c6b7b0455293541369a41682d4efce741b3f09c130bf9233713131291a92be858d6f6016b77f54fd35cae4d2700794de94a60e2ea3db2166e406635235257e0b1adebf2d6efea9fa6b95c9a4e00f29bd294c1c5d47b642cdc80cc6a46a4afc1635bd7e5addfd53f4d72b9349c01e537a529838ba8f6c859b90198d48d495f82c6b7afc41ce5354c010d9de6046649eeb03586c216135083721d71b91a92bf158d6f5f70faeff56568436748d52f135cc64d8d2ef04c60d6e455238235257e3b1adebed1f5dfeacad086ce91aa5e26b98c9b1a5de098c1adc8aa47046a4afc7635bd7da3ebbfd595a10d9d2354bc4d73193634bbc131835b91548e08d495f8ec6b7afb4098a535f8a84365c375db1a65984ee9224688c68722c35c21a92bf1e8d6f5f671314a6bf15086cb86ebb634cb309dd2448d118d0e4586b8435257e3d1adebece26294d7e2a10d970dd76c6996613ba4891a231a1c8b0d7086a4afc7a35bd7d9c4c529afc5421b2e1baed8d32cc277491234463439161ae10d495f8f46b7afb3824b78ea57ea5e87b42a1425d8ead111cf2cb228422c50022a92bf1e9d6f5f66f496f1d4afd4bd0f6854284bb1d5a2239e5964508458a00455257e3d3adebecde1ef09342d0fa24a4d74b316e31126c6e776ee60d8b15a48ba4afc7a85bd7d9bb3de12685a1f44949ae9662dc6224d8dceeddcc1b162b4917495f8f50b7afb37607d4a5b81a4b154b29f2edb0baa7d9b489fdf4332c58362f92bf1ea26f5f66eb0fa94b7034962a9653e5db61754fb36913fbe86658b06c5f257e3d44debecdd61f5296e0692c552ca7cbb6c2ea9f66d227f7d0ccb160d8be4afc7a89bd7d9bac3ea52dc0d258aa594f976d85d53ecda44fefa19962c1b17c95f8f5137afb3758095cb42e7b13d76a6bf50303a0dbc3434c219f2fc58506fa2bf1ea27f5f66eaf12b9685cf627aed4d7ea060741b7868698433e5f8b0a0df457e3d44febecdd5e2572d0b9ec4f5da9afd40c0e836f0d0d30867cbf16141be8afc7a89fd7d9babc4ae5a173d89ebb535fa8181d06de1a1a610cf97e2c2837d15f8f513fafb3757821dd9b94879ff95e8c165832041a5c2f6e5c4ef9585213a3bf1ea2805f66eaef43bb37290f3ff2bd182cb0640834b85edcb89df2b0a427477e3d4500becdd5de1388c6fef4e26831fd1f88c006c798b865b397e26149f28ffc7a8a027d9babbb27118dfde9c4d063fa3f11800d8f3170cb672fc4c293e51ff8f51404fb3757764e231bfbd389a0c7f47e23001b1e62e196ce5f898527ca3ff1ea2809f66eaeec285890a47d75c447b5c26df82c9aedbdd9df1b100a513880e3d45014ecdd5dd750b12148faeb888f6b84dbf05935db7bb3be362014a27101c7a8a029d9babbae2d749b3ecc3993d6a3cfdfd8a8c9def213bec83d294686048f514054b375775b5ae9367d987327ad479fbfb15193bde4277d907a528d0c091ea280a966eaeeb641e4c5a80748d2125c05a75a9985a3c2fb3d7cf1a51bbc133d450153cdd5dd6b0fdbe3fce4f426dc84d176ad29696f80a2bd55e04a391c277a8a02a89babbad51fb7c7f9c9e84db909a2ed5a52d2df01457aabc09472384ef5140551375775aa3f6f8ff393d09b721345dab4a5a5be028af5578128e4709dea280aa26eaeeb540af17893fe03b99bf351dd6141a9a3ffc22d0aff51ca853cd4501545dd5dd6a715e2f127fc077337e6a3bac2835347ff845a15fea3950a79a8a02a8bbabbad4e2bc5e24ff80ee66fcd47758506a68fff08b42bfd472a14f35140551775775a9c578bc49ff01dccdf9a8eeb0a0d4d1ffe116857fa8e5429e6a280aa2eeaeeb5383b29e1ecb69e1c7701e3fe0c10f867f6cf130bf21ca9f7ce4501545ed5dd6a6f02661c86439ebba5d08e2410184ef7e84a6873e13955939d8a02a8beabbad4dd04cc390c873d774ba11c4820309defd094d0e7c272ab273b1405517d5775a9ba099872190e7aee9742389040613bdfa129a1cf84e5564e76280aa2faaeeb53741330e4321cf5dd2e84712080c277bf4253439f09caac9cec501545f55dd6a6e82661c86439ebba5d08e2410184ef7e84a6873e13955939d8a02a8beabbad4dd04cc390c873d774ba11c4820309defd094d0e7c272ab273b1405517d5775a9ba025997a3dbe116c2bf04f2bfe0a1c220d465f544b55668b6380aa2fabeeb5373f4b32f47b7c22d857e09e57fc1438441a8cbea896aacd16c701545f57dd6a6e7e227841a3cea833678e02d7f01eceb02fc5bfad2a559bd18f02a8beb0bad4dcfb44f083479d5066cf1c05afe03d9d605f8b7f5a54ab37a31e05517d6175a9b9f615f35f3c1103505604d187b87198e8b9c34110a65670ea3d0aa2fac3eb5373eb2be6be782206a0ac09a30f70e331d1738682214cace1d47a1545f587d6a6e7d657cd7cf0440d415813461ee1c663a2e70d04429959c3a8f42a8beb0fad4dcfac3bad528d5e7d0567f35265bb83256dc8c64ae12fb388f5e95517d6205a9b9f57036cfdc7935c8d87b36af36efca9038c38d81e5c67138fd3aa2fac41b5373ead06d9fb8f26b91b0f66d5e6ddf952071871b03cb8ce271fa7545f58836a6e7d5a0db3f71e4d72361ecdabcdbbf2a40e30e36079719c4e3f4ea8beb106d4dcfab41b67ee3c9ae46c3d9b579b77e5481c61c6c0f2e3389c7e9d517d620da9b9f56836cfdc7935c8d87b36af36efca9038c38d81e5c67138fd3aa2fac41b5373ead06d9fb8f26b91b0f66d5e6ddf952071871b03cb8ce271fa7545f58836a6e7d5a06751ca91ad85e4a4a78303b7209f0b08e249f316c4e598eb8beb106e4dcfab3f5ab5edd0316e4c011bcc2f66379c3e0c70d6422a89ccd5d817d620dd9b9f567d417e344d393f1aba045e86c46596a4138deee052139b4fb12fac41bc373eacf90f0ec14748e0b82bd5833580c18b7021c8201ca1273843635f5883796e7d59f11e1d828e91c17057ab066b018316e043904039424e7086c6beb106f2dcfab3e23c3b051d2382e0af560cd603062dc087208072849ce10d8d7d620de5b9f567c4048862e71d68441678dfd3fe02b9a908ed43410639c3bf1bfac41bcc73eacf870910c5ce3ad0882cf1bfa7fc05735211da86820c73877e37f5883798e7d59f0e12218b9c75a11059e37f4ff80ae6a423b50d0418e70efc6feb106f31cfab3e1c24431738eb4220b3c6fe9ff015cd48476a1a0831ce1df8dfd620de639f567c3848862e71d68441678dfd3fe02b9a908ed43410639c3bf1bfac41bcc73eacf8701d1eb590836b0586e8c0a7b84d93491854aa7cc4387987805883798f7d59f0df3a3d6b2106d60b0dd1814f709b269230a954f98870f30f00b106f31efab3e1be008d2eeee40e98d36fc8c6d92cab4c5bfeec4f0de1e7c202620de63ef567c37b011a5dddc81d31a6df918db2595698b7fdd89e1bc3cf8404c41bcc7deacf86f60234bbbb903a634dbf231b64b2ad316ffbb13c37879f0809883798fbd59f0dec046977772074c69b7e4636c9655a62dff762786f0f3e1013106f31f7ab3e1bd808d2eeee40e98d36fc8c6d92cab4c5bfeec4f0de1e7c202620de63ef567c37b011a5dddc81d31a6df918db2595698b7fdd89e1bc3cf8404c41bcc7deacf86f60234bbbb903a634dbf231b64b2ad316ffbb13c37879f0809883798fbd59f0dec046977772074c69b7e4636c9655a62dff762786f0f3e1013106f31f7ab3e1bd8019414790e4fb5627958d0124a1aa83f9989169dee7c3a6630de63ef667c37aff32828f21c9f6ac4f2b1a0249435507f33122d3bdcf874cc61bcc7deccf86f5fe65051e4393ed589e5634049286aa0fe66245a77b9f0e998c3798fbd99f0debfc561c9533fe3d33f4792e311d03b247c770cdaaf43e1ed7196f31f7b43e1bd7f7384b8314d2dceaa0bf228a31fdc2b7898dddb1e57c3f5233de63ef697c37afed70970629a5b9d5417e451463fb856f131bbb63caf87ea467bcc7ded2f86f5fda6d40650021d62d3ac95050bfed690620e3b92392f0feecd0798fbda6f0debfb3669322ad1a0edd2d5f66c977d130343c73b4a322e1ff7da1f31f7b4ee1bd7f6559389e070a803d128b93bae798be907393aba242c4009f44e63ef69ec37afec93e8394baeb62fcdce3ed9dc727db48e1d399a0828802e28acc7ded3e86f5fd9109198222ad287c7194a163864614b9be53759d021007691698fbda7e0debfb21123304455a50f8e32942c70c8c29737ca6eb3a04200ed22d31f7b4fc1bd7f6422466088ab4a1f1c652858e191852e6f94dd67408401da45a63ef69f837afec8448cc11156943e38ca50b1c3230a5cdf29bace810803b48b4c7ded3f06f5fd9081daa7ad7a8ea49d116dc605c57a9c3dfe39c2c1e0078356a8fbda7e1debfb20f3b54f5af51d493a22db8c0b8af5387bfc738583c00f06ad51f7b4fc3bd7f641e02bc440b7a0ba9fc2837a9695505377a3ab30c7501e279ab3ef69f887afec83b05788816f41753f8506f52d2aa0a6ef4756618ea03c4f3567ded3f10f5fd90760af1102de82ea7f0a0dea5a55414dde8eacc31d40789e6acfbda7e21ebfb20ec15e2205bd05d4fe141bd4b4aa829bbd1d59863a80f13cd59f7b4fc43d7f641d82bc440b7a0ba9fc2837a9695505377a3ab30c7501e279ab3ef69f887afec83b05788816f41753f8506f52d2aa0a6ef4756618ea03c4f3567ded3f10f5fd907603b235b8b594d01c1dab0824d37ac06895905793d78a00ed0bda7e21fbfb20ebf02590fc388fc863b82272c9265b6350d5e4d4e77f141c1a27b4fc4407f641d7d04b21f8711f90c77044e5924cb6c6a1abc9a9cefe2838344f69f8880fec83afa09643f0e23f218ee089cb24996d8d435793539dfc5070689ed3f1101fd9075f412c87e1c47e431dc113964932db1a86af26a73bf8a0e0d13da7e2203fb20ebe82590fc388fc863b82272c9265b6350d5e4d4e77f141c1a27b4fc4407f641d7d04b21f8711f90c77044e5924cb6c6a1abc9a9cefe2838344f69f8880fec83afa02256498f1584119856914c9163eb6b523f95f9f950720c9fd3f11020d9075f3f44ac931e2b082330ad229922c7d6d6a47f2bf3f2a0e4193fa7e22041b20ebe7e156b7ee92c72c919270b5a3d860bd543aa9a43e241c9d6804fc44084641d7cfb2ad6fdd258e592324e16b47b0c17aa87553487c48393ad009f888108c83af9f655adfba4b1cb24649c2d68f6182f550eaa690f8907275a013f1102119075f3ec376e4ff639f8cb810520f9e426bcd21801147b0f0e5058037e22042420ebe7d76edc9fec73f197020a41f3c84d79a4300228f61e1ca0b006fc44084841d7cfae69cb9885be45b0bbe14a0f889151705ab09448393943040ef888109183af9f5b5fa989b852ede42f8f5a4709190108b00d6aec6f7287ac1ef1102124075f3eb54b656c1d7c3e4b16eb7ab60a2860395ac71834dbe510fc3ee22042490ebe7d6922dd30e7cedf18e5a3bb940c471e9ab03a72c5b4ca239c7ec44084931d7cfad145ba61cf9dbe31cb477728188e3d356074e58b69944738fd888109263af9f5a217871c4c11dee64e5bb4782912d892bb960d72d0289015fc1102124d75f3eb432f0e389823bdcc9cb768f05225b125772c1ae5a051202bf82204249aebe7d6865e1c7130477b99396ed1e0a44b624aee5835cb40a24057f044084935d7cfad0c484b3b0d6559b52aaa69e9408d22bdd75cadf27e448253e18810926caf9f5a171ca8cec7a115ed0d2199fa7910a3a3a9659e40f989064bc4102124da5f3eb42d39519d8f422bda1a4333f4f221474752cb3c81f3120c9788204249b4be7d685a72a33b1e8457b4348667e9e4428e8ea5967903e624192f10408493697cfad0b47158cee9df11eb20d995fbc07b7b4545d93463c948340221810926d3f9f5a1676ec3f680948658f97ff21f78ed54b2865eab238f9069a84402124da8f3eb42cd699a45adff6f34aaccaa66e9d1078d076998a31c20d4f48904249b52e7d685995f46e408d540ec0d661af5cb986d42097f73a23541ab8d13084936a6cfad0b314aa020be80e45ad298fc138f2738ac0dab29a0678358be2710926d4e9f5a166121529a29d82b385cfebe4f1644cf801602959ccc06b3204f2124da9e3eb42cc142a53453b05670b9fd7c9e2c899f002c052b39980d66409e4249b53c7d685982115cc154370f642bc7bf6451099c2852b698cf2d1ace253d84936a79fad0b30322b982a86e1ec8578f7ec8a2133850a56d319e5a359c4a7b0926d4f3f5a1660645730550dc3d90af1efd91442670a14ada633cb46b3894f6124da9e7eb42cc0c16f8634e8edda4160ac14a80433f6a906108d565d672cded249b53d0d68598172df0c69d1dbb482c15829500867ed520c211aacbace59bda4936a7a1ad0b302e5be18d3a3b7690582b052a010cfdaa418423559759cb37b4926d4f435a16605c43d573214d4fa36822d07bfa10597c7db489072bb398136a24da9e87b42cc0b713bd3eef7101c98812671fec171120f615546a546731cad549b53d106859816d277a7ddee203931024ce3fd82e2241ec2aa8d4a8ce6395aa936a7a20d0b302da4ef4fbbdc4072620499c7fb05c4483d85551a9519cc72b5526d4f441a16605b429fc50285e70cef85fff2758aee72fab56e5aea0398ffaab4da9e88442cc0b6753f8a050bce19df0bffe4eb15dce5f56adcb5d40731ff5569b53d108859816ce3403994e5025be994cc2c55ab1fae6a807d9167de6418eae36a7a2120b302d9b6807329ca04b7d3299858ab563f5cd500fb22cfbcc831d5c6d4f442416605b365c20bde616f97d1cffd13d62be49c29acba6b5f49907deb9da9e88492cc0b66b4453d47904557cf1cc68a2bd72f1ad30438fc7e632116174b53d109359816cd514ba019edf0d7c9b65976d72dc41825b3361ebc9642466ea6a7a2127b302d9a92974033dbe1af936cb2edae5b88304b666c3d792c848cdd4d4f4424f6605b35252e8067b7c35f26d965db5cb7106096ccd87af2590919ba9a9e8849ecc0b66a431e265a3cece6792f981938ed86a3ad44751ba482124db5453d1093e9816cd4763c4cb479d9ccf25f303271db0d475a88ea374904249b6a8a7a2127d302d9a8e539bef3c119c2103b2cc76335807134bc989451d849511524f4424fb605b351b334a3724f99ac4bf325f145ea66c4e923f54e638092bc6a59e8849f7c0b66a3566946e49f335897e64be28bd4cd89d247ea9cc7012578d4b3d1093ef816cd46a593b3540bccd95b496427972900f6243a995f4dd24b0be977a2127e002d9a8d33e88c32e4ffdae20f94b1add167cec81ff6e45b74963212ff4424fc105b351a50923df09765ddef9bf5c5db2235800feab1ee76b92c7e660e8849f830b66a3491247be12ecbbbdf37eb8bb6446b001fd563dced7258fccc1d1093f0616cd4692248f7c25d9777be6fd7176c88d6003faac7b9dae4b1f9983a2127e0c2d9a8d24491ef84bb2eef7cdfae2ed911ac007f558f73b5c963f33074424fc185b351a481e5049443c407253c28c031a2bde37e55e30d2b62c800a0f8849f831b66a348f3ca092887880e4a78518063457bc6fcabc61a56c5900141f1093f0636cd4691e05537dbdc7644c06d6f63460a5d707902505a6d5b201cc3f2127e0c7d9a8d23b0aa6fb7b8ec8980dadec68c14bae0f204a0b4dab6403987e424fc18fb351a476154df6f71d91301b5bd8d182975c1e4094169b56c80730fc849f831f66a348ec2a9bedee3b226036b7b1a3052eb83c81282d36ad900e61f9093f063ecd4691d85537dbdc7644c06d6f63460a5d707902505a6d5b201cc3f2127e0c7d9a8d23b036821065c2ec0392ab8cb40cb13f19ff4cf736b3403b2be524fc18fc351a475f6d0420cb85d8072557196819627e33fe99ee6d66807657ca49f831f86a348ebe661a9a43e21291027af8f82abb5a8ff7e01f36ca00ee539593f063f1d4691d7b58478d349a87a4bcc2b8184d6d1347ea6c80c99101de4b2c27e0c7e4a8d23af53ca173160b71cc3152365892d084b7cf8543ef1f03be3a594fc18fca51a475e905553ed8ed461b1a7132d91d97679799b6ca3a3b077e18b39f831f95a348ebd10aaa7db1da8c3634e265b23b2ecf2f336d9474760efc31673f063f2b4691d7a21554fb63b5186c69c4cb64765d9e5e66db28e8ec1df862ce7e0c7e568d23af442aa9f6c76a30d8d38996c8ecbb3cbccdb651d1d83bf0c59cfc18fcad1a475e885553ed8ed461b1a7132d91d97679799b6ca3a3b077e18b39f831f95a348ebd1036ba33ca7f25e605f3214baae3511b318589a35defc4ba74f063f2b5691d7a1f6d746794fe4bcc0be6429755c6a236630b1346bbdf8974e9e0c7e56ad23af43e66fb27d6d2fa1acf994b56a383a294c0c268e974bf148dd4c18fcad6a475e87b5a08a85a7c56b856ff5cd53efda3517c31142ee67e2abfaa831f95ae48ebd0f54023a961cf0ff365cb7fd275f1a4caf30e6ab9c9fc572356063f2b5d91d7a1e90c59ab707482698363c5cce3d9a7bde0c917cf90f8afeaad0c7e56bc23af43d118b356e0e904d306c78b99c7b34f7bc1922f9f21f15fd55a18fcad78475e87a23166adc1d209a60d8f17338f669ef783245f3e43e2bfaab431f95af08ebd0f4462cd5b83a4134c1b1e2e671ecd3def0648be7c87c57f556863f2b5e11d7a1e8851ad0fb41e891aee0922f63590da06073dbf550c8b004ed1c7e56bc33af43d0f2f6c78151374b893df0c14631812340927c10616160241a48fcad78775e87a1d5ed8f02a26e97127be1828c6302468124f820c2c2c0483491f95af0eebd0f43a49c439012435650748f6798456a6f81f4b467455580aaa933f2b5e1ed7a1e8731f9acaaf1ecd4cc65eb31b00a3ac183942cf44a7b016f9277e56bc3eaf43d0e53f35955e3d9a998cbd66360147583072859e894f602df24efcad787d5e87a1ca0a7d83695197b5d1479293fa850e88dfb77f6e9bc05d889ef95af0fbbd0f439314fb06d2a32f6ba28f2527f50a1d11bf6efedd3780bb113df2b5e1f77a1e872629f60da5465ed7451e4a4fea143a237eddfdba6f0176227be56bc3eef43d0e4c53ec1b4a8cbdae8a3c949fd4287446fdbbfb74de02ec44f7cad787dde87a1c9833ea8f41efdddfcc45ef67a04746b5f6243945b905da2df095af0fbcd0f4392f67d51e83dfbbbf988bdecf408e8d6bec48728b720bb45be12b5e1f79a1e8725e5bbc95b495da01e8e483c6791378ffd33d2772e1176a5bc356bc3ef443d0e4bb438b84160216868995cdb4ea1d5027a1269141bf2ed65b87ad787de987a1c975132960d8da8f8fcaf86191cc30fe773cf964df7b5dae5b105af0fbd40f4392e92652c1b1b51f1f95f0c3239861fcee79f2c9bef6bb5cb620b5e1f7a81e8725d24ca583636a3e3f2be1864730c3f9dcf3e5937ded76b96c416bc3ef503d0e4ba4255d5f73aadf010f8fd2b6597e51e1e2776957d7ed747c83d787dea17a1c97474ababee755be021f1fa56cb2fca3c3c4eed2afafdae8f907af0fbd42f4392e8e2187d67b81de86f60c11015defa5af8489e7bb5cb5d396105e1f7a86e8725d1b430facf703bd0dec182202bbdf4b5f0913cf76b96ba72c20bc3ef50dd0e4ba361231b29adddc9e8ffd0a2d6fb4f4e60cd3e1496fd74ffc42787dea1ca1c9746b24636535bbb93d1ffa145adf69e9cc19a7c292dfae9ff884f0fbd4394392e8d648c6ca6b77727a3ff428b5bed3d398334f8525bf5d3ff109e1f7a8728725d1ac1d9fed83c5477737b51793759e0558614b4ca77bba818614c3ef50e60e4ba3573b3fdb078a8eee6f6a2f26eb3c0ab0c296994ef775030c2987dea1cc1c9746ae02920ebbeb805f96a12475ce6e73897fd974f9ebea07bc540fbd4399392e8d5b05241d77d700bf2d4248eb9cdce712ffb2e9f3d7d40f78a81f7a8732725d1ab60a483aefae017e5a8491d739b9ce25ff65d3e7afa81ef1503ef50e64e4ba356c149075df5c02fcb50923ae73739c4bfecba7cf5f503de2a07dea1cc9c9746ad82920ebbeb805f96a12475ce6e73897fd974f9ebea07bc540fbd4399392e8d5b05241d77d700bf2d4248eb9cdce712ffb2e9f3d7d40f78a81f7a8732725d1ab60309607a7b67a686015e39b93934087f10980d6f781f0b904ef50e64f4ba356bf612c0f4f6cf4d0c02bc7372726810fe21301adef03e17209dea1cc9e9746ad7e4e6a774bb04c243824549646436047bed245b7db07c48814bd43993e2e8d5afb28e7474436facb28156f54847d1eb77850cdcbb30f8ab42a7a87327d5d1ab5f551ce8e886df596502adea908fa3d6ef0a19b97661f156854f50e64faba356bea2faf75bdb24daf5822837a09ead905dbef798ac93e2c74aaea1cc9f6746ad7d35f5eeb7b649b5eb04506f413d5b20bb7def315927c58e955d43993ece8d5afa64ad02fa39f99401856d4101fa1c23f6a6a288721f8b376aca87327dad1ab5f4b21b2b7f4159502e87a6e483739e2a6cf80936a40f168915a50e64fb6a356be9543656fe82b2a05d0f4dc906e73c54d9f0126d481e2d122b4a1cc9f6d46ad7d2a12dd387d2cb68e59b67f48d4dde8c338ae900500c5a3e96a43993edb8d5afa5325ba70fa596d1cb36cfe91a9bbd186715d200a018b47d2d487327db71ab5f4a64b74e1f4b2da3966d9fd235377a30ce2ba401403168fa5a90e64fb6e356be94c22fc1c963c16f58580c06e9ee5a441c020c284032d20ef531cc9f6dd6ad7d29745f8392c782deb0b0180dd3dcb488380418508065a41dea63993edbad5afa52e1802cb05c6be58cdcfc7e2738cef2efb2f4c6c09b485614d7327db76ab5f4a5b3005960b8d7cb19b9f8fc4e719de5df65e98d813690ac29ae64fb6ed56be94b6600b2c171af963373f1f89ce33bcbbecbd31b026d2158535cc9f6ddaad7d296c4c28b0db0c5549264b053b945dd79fd426a5bc4aa42cae6c993edbb65afa52d72463ba62ef0d150462d09f20b20d67a2f98dd492485b00da327db76db5f4a5ad48c774c5de1a2a08c5a13e41641acf45f31ba92490b601b464fb6edb6be94b5a1da142389296d6c95808a47abe93c6869279ae46216da769c9f6ddb7d7d296b33b428471252dad92b01148f57d278d0d24f35c8c42db4ed393edbb6fafa52d660297618f20bddddd2ce8b9e2f0ad4214f629151585b841a827db76e05f4a5acb052ec31e417bbbba59d173c5e15a8429ec522a2b0b7083504fb6edc0be94b5960a5d863c82f77774b3a2e78bc2b50853d8a4545616e106a09f6ddb817d296b2c14bb0c7905eeeee96745cf17856a10a7b148a8ac2dc20d413edbb702fa52d658297618f20bddddd2ce8b9e2f0ad4214f629151585b841a827db76e05f4a5acb052ec31e417bbbba59d173c5e15a8429ec522a2b0b7083504fb6edc0be94b596031eabc7505d9fa0306f4a0b421aead383687a15e6e120e0af6ddb818d296b2bf63d578ea0bb3f4060de94168435d5a706d0f42bcdc241c15edbb7031a52d657e53bd4a80edca6ac3e898aac87d18dcdb8660e176b849dc2cdb76e0644a5acafb338cedaeb1f7583f9df77d88f08fe1b1b9041eea70955c5ab6edc0c994b595f56719db5d63eeb07f3beefb11e11fc36372083dd4e12ab8b56ddb8193296b2bea5a460f679e3fe3b644a41e1bb89daec19052d7a6c257156bdbb7032752d657d3409e777c12e24a24560e642f6799857dcce80b4a84afced8b76e064fa5acafa50d4f47a4fc27170078e2f056c59132f646127292096141b26edc0ca04b595f491a9e8f49f84e2e00f1c5e0ad8b2265ec8c24e52412c28364ddb8194096b2be92353d1e93f09c5c01e38bc15b1644cbd91849ca48258506c9bb7032812d657d246a7a3d27e138b803c71782b62c8997b2309394904b0a0d9376e065025acafa486106d2fc98d3f2bf5af52d644f71575f0d69851d9615bf27edc0ca05b595f48f4e1ffea6080a683682b082c09540d6b8c71566382c2d2250db81940c6b2be91d285255f8e6775324d2272d7920dfd56c3a6d286d585be8a2b7032819d657d23950a4abf1cceea649a44e5af241bfaad874da50dab0b7d1456e065033acafa4722d5bb090703fcf4b1562dddc79dd7dab95f6fdb26171468bdc0ca068595f48e35ab76120e07f9e962ac5bbb8f3bafb572bedfb64c2e28d17b81940d0b2be91c641811aee9761bfe422519f69ddd41ea9041e52c685c6be30703281a2657d238b0f148e8a05260280116966cbb206654cb47f018a0b8f2061e0650345cafa47151e291d140a4c050022d2cd97640cca9968fe0314171e40c3c0ca068b95f48e2a3c523a2814980a0045a59b2ec8199532d1fc06282e3c818781940d172be91c5404b6ccfcff9296b858115e5586915260503a684d5c7aa71003281a2f57d238a7096d99f9ff252d70b022bcab0d22a4c0a074d09ab8f54e200650345eafa4714e12db33f3fe4a5ae1604579561a45498140e9a13571ea9c400ca068bd5f48e29c25b667e7fc94b5c2c08af2ac348a930281d3426ae3d538801940d17abe91c5384b6ccfcff9296b858115e5586915260503a684d5c7aa71003281a2f57d238a7022ebf84cc8b559c2cef1f2a8c8887404b38f65a88f568601650345ebfa4714df45d7f099916ab3859de3e5519110e809671ecb511ead0c02ca068bd7f48e29be17c239dff937e9c3088df29b187ff80d7a7ff29f3d5bbc06940d17b0e91c537b2f8473bff26fd386111be53630fff01af4ffe53e7ab7780d281a2f61d238a6f65f08e77fe4dfa70c2237ca6c61ffe035e9ffca7cf56ef01a50345ec3a4714dec4a2427aca021d0d01135bcd0ba5de8668041f0f6eadf8435a068bd8848e29bd7205aa80616a62457ef31a1996b19f8c7acc63dead5c0ac6c40d17b1191c537ad40b5500c2d4c48afde634332d633f18f598c7bd5ab8158d881a2f623238a6f5a0d7cf8c530fb1417898cae5da2c60b195f5b53a8570455b20345ec474714deb31af9f18a61f6282f13195cbb458c1632beb6a750ae08ab64068bd88e8e29bd6635f3e314c3ec505e2632b9768b182c657d6d4ea15c1156c80d17b11d1c537acc6be7c62987d8a0bc4c6572ed163058cafada9d42b822ad901a2f623a38a6f59863e1e4ffe613c43065910dd222bed990a1f796827046ff21345ec475714deb2f53d622aca28a0b1897e8439c3bdbdb1bf0318901e08fa24368bd88ebe29bd65d33be9e061b7698e8fc96af306e15de328ca56e00c120e887d17b11d8c537acb9677d3c0c36ed31d1f92d5e60dc2bbc65194adc018241d10fa2f623b18a6f59725b0cd0c5443ce65bbf20e4b9aeb5a0c4ded814000485462045ec476414deb2e3422bfa375edc4f6f4b07f16b53c9698469f283fd090c30418bd88ec929bd65c5106a4d1b941b219662d60ace9df0fb03802763f7121a048417b11d93537acb8920d49a372836432cc5ac159d3be1f607004ec7ee243409082f623b26a6f5971241a9346e506c86598b582b3a77c3ec0e009d8fdc486812105ec4764d4deb2e240f64c189773b8f6ae3767e6ce5e60016ad7d7bb590d1c821bd88ec9b9bd65c471ec98312ee771ed5c6ecfcd9cbcc002d5afaf76b21a390437b11d93737acb88e3d930625dcee3dab8dd9f9b39798005ab5f5eed643472086f623b26e6f59711c073864f8903efe0ee87a1b5f258e28b0182e39a9868fe50eec4764dddeb2e2370e70c9f1207dfc1dd0f436be4b1c5160305c73530d1fca1dd88ec9bbbd65c46e1ce193e240fbf83ba1e86d7c9638a2c060b8e6a61a3f943bb11d93777acb88dc39c327c481f7f07743d0daf92c714580c171cd4c347f2877623b26eef59711b873864f8903efe0ee87a1b5f258e28b0182e39a9868fe50eec4764dddeb2e2370731ef7bede424494dc0993dca8233dfdb209912dd1fe45de88ec9bbcd65c46df7250482a92e70be184d94fb146a4a3f610557e58a3fe2fbe11d9377aacb88dbd70b2e901fc309a7ad678c75a83a76fe6cced58ae47fe037d23b26ef659711b796d782ab0cec3b7ad79b7b6acfdad07c8461d0d598ffdaafb4764ddedb2e236f16702ae0e73e9f212c0359551f1b8378b387c76b01ffcf9f78ec9bbdc65c46de15a17b4c9be3666dd4d31529bd9ce97111d3b495d3ffb97f01d9377b9cb88dbc14041c24052cf50726728cd2fa9fb561ce6b8eeb77ff8d3e13b26ef749711b7810c95dd2d7c01239c9b17c2574a54d43479b4396bfff34bc3764ddeea2e236f01192bba5af8024739362f84ae94a9a868f36872d7ffe69786ec9bbdd45c46de02325774b5f0048e726c5f095d295350d1e6d0e5afffcd2f0dd9377ba8b88dbc0464aee96be0091ce4d8be12ba52a6a1a3cda1cb5fff9a5e1bb26ef751711b780855702b849674bc817e424d6c9bab6b424785f2bcff36603864ddeea3e236f00f36f2afb6034bfbbac94ac2d12db4fe7f3b4e4176fe6e6471c9bbdd48c46de01d6de55f6c0697f775929585a25b69fcfe769c82edfcdcc8e39377ba9188dbc03a67dd1784e39271a2f1f1333cad3221f7997b61d8f9bb35c826ef752411b780735bcc87b69d8765fdb0a88e7150c26be9df391faef3780f914ddeea49236f00e543ab681a11714eb32e1744da97e2ffce6ab49b5ae6f1c3239bbdd49346de01c9136928e0f945201e28f4b1ad2624279781ab92b2cde52a48377ba9278dbc039126d251c1f28a403c51e9635a4c484f2f035725659bca54906ef7524f1b7807224da4a383e5148078a3d2c6b498909e5e06ae4acb3794a920ddeea49e36f00e44275b9fb4a08b83a9146bb561277f64b6b99ef1936f2af642bbdd493d6de01c874eb73f694117075228d76ac24efec96d733de326de55ec8577ba927adbc0390e2980d77f5890915c1e74fd7c945bbad592be224abcad7d0bef7524f6b780721b5301aefeb12122b83ce9faf928b775ab257c4495795afa17deea49ed6f00e4363215b6aa38a4c828469a1dea47cd1350f73ae527f2b79830bdd493dbde01c86b642b6d54714990508d343bd48f9a26a1ee75ca4fe56f30617ba927b7bc0390d654693355b8f5a358e72e9fa11592753e892df09ccae004c3f7524f70780721ab34e4bf58484dc9699b23673a21831277be9e3d3695c1ad88eea49ee1f00e435569c97eb0909b92d33646ce74430624ef7d3c7a6d2b835b11dd493dc3e01c86aa5fa5560df799a85e3953c4e07c6a71d9a6bb50d757085a24ba927b88c0390d534b5d04c8c595d3743f6db1b8ef330badf9b8fdabae12584a7524f71280721aa522cc623e618e29a04ba18b69d4c43f569fb457545c265495ea49ee2600e435494598c47cc31c5340974316d3a9887ead3f68aea8b84ca92bd493dc4c01c86a921743e1a65c9b2938fb4c559f496f25552b13b94e709af658a927b8990390d5232e87c34cb9365271f698ab3e92de4aaa5627729ce135ecb1524f71320721aa465d0f8699726ca4e3ed31567d25bc9554ac4ee539c26bd962a49ee2640e43548c463165dfbb3bcc7fa728d4f241d752a404e0267084d956c6493dc4c91c86a9171875246c4cda1bb71b17d1dc7a0ccd42b602a8de09b4518d927b8993390d522d30ea48d899b4376e362fa3b8f4199a856c0551bc1368a31b24f71326721aa45a61d491b133686edc6c5f4771e833350ad80aa37826d1463649ee264ce43548b44fbb7c0f3d336070a584b6dbc6c492105c57a2ed4da4306d93dc4c9ac86a91672b8950cb50c9439917cf95af83e74c1b64f1a1d79b4a04dc27b8993690d522cd5712a196a19287322f9f2b5f07ce9836c9e343af369409b84f71326d21aa459a3a379bda1987911c2c047eb605fb58684008e35b6d29b7719ee264db43548b33008190610971a4f024cf25640254d8cb2c5422b3da5512e43dc4c9b786a91665010320c212e349e0499e4ac804a9b19658a84567b4aa25c87b89936f0d522cca0206418425c693c0933c95900953632cb1508acf69544b90f71326de1aa45994040c83084b8d278126792b2012a6c65962a1159ed2a89721ee264dbc3548b32808190610971a4f024cf25640254d8cb2c5422b3da5512e43dc4c9b786a91665010320c212e349e0499e4ac804a9b19658a84567b4aa25c87b89936f0d522cca0206418425c693c0933c95900953632cb1508acf69544b90f71326de1aa45994040c83084b8d278126792b2012a6c65962a1159ed2a89721ee264dbc3548b32800da2b9b6480772dc9beb8bfa4b36f32700650fd75514883ec4c9b787a91664ff1b45736c900ee5b937d717f4966de64e00ca1faeaa29107d89936f0f522cc9fe368ae6d9201dcb726fae2fe92cdbcc9c01943f5d545220fb1326de1ea45993fc6d15cdb2403b96e4df5c5fd259b7993803287ebaa8a441f6264dbc3d48b327f8663df41156d9b0818b7ee79ca9cd5a6ab2935972514a27ed4c9b787b91664fef588e40cf8415e3bae3c3f73149f8dcd011690ee1a295f3db9936f0f822cc9fdd3d2eda4bde8e4a2d944e165a8a4fe19acf1479c0452d8bb8326de1f145993fb906700d44937f1712f56254ad0afdeb304a6b4f7d8a5cbb7164dbc3e38b327f710ce01a8926fe2e25eac4a95a15fbd66094d69efb14b976e2c9b787c71664fee219c035124dfc5c4bd58952b42bf7acc129ad3df62972edc5936f0f8e2cc9fdc433806a249bf8b897ab12a56857ef5982535a7bec52e5db8b26de1f1c5993fb886700d44937f1712f56254ad0afdeb304a6b4f7d8a5cbb7164dbc3e38b327f7105a14013f464565167910bd99561b8e03f9ac4bae4b99122d9b787c72664fee1f403a5b2b62ed4ce4bee7a32aa29544029f9af3599733c85c36f0f8e5cc9fdc3d0c870f039c3d1c814a956e4d3b88afffeb7842b02e6934b96de1f1cc993fb879190e1e07387a3902952adc9a77115fffd6f085605cd26972dbc3e399327f70f2321c3c0e70f472052a55b934ee22bfffade10ac0b9a4d2e5b787c73264fee1e46438781ce1e8e40a54ab7269dc457fff5bc215817349a5cb6f0f8e64c9fdc3c8548348e69a344acc761d0ccbaee927f963c686ffe694ef97de1f1cca93fb878f3518ea7a0acb1850b900418f543077ed73cf69fccd2b8330bc3e399627f70f1d6a31d4f4159630a17200831ea860efdae79ed3f99a570661787c732c4fee1e3a60760295018ee3fab0c72e35472007b07b8003f034afb0c3f0f8e6599fdc3c734cfe5dd6d9804aad2e548462849e375ba34263dd69610588e1f1ccb43fb878e5260f145a89631812296f30bcff9a96b1f2c723b7d2c3af12c3e399697f70f1c94c1e28b512c6302452de6179ff352d63e58e476fa5875e2587c732d2fee1e392244eaa16fbeee3007282eaebf4c882c2775eeadc4b10604c0f8e65a6fdc3c723489d542df7ddc600e505d5d7e9910584eebdd5b89620c0981f1ccb4dfb878e461d4d0108c61e0eb996d1d3a7c980330489be076e2c4325313e39969cf70f1c8b3a9a02118c3c1d732da3a74f93006609137c0edc58864a627c732d39ee1e391601465ccfeedabd9e280d76971c5ef40cd33a79b5b10e38c5f8e65a74dc3c722b028cb99fddb57b3c501aed2e38bde819a674f36b621c718bf1ccb4e9b878e4560519733fbb6af678a035da5c717bd0334ce9e6d6c438e317e39969d370f1c8ac0a32e67f76d5ecf1406bb4b8e2f7a06699d3cdad8871c62fc732d3a6e1e391581465ccfeedabd9e280d76971c5ef40cd33a79b5b10e38c5f8e65a74dc3c722b028cb99fddb57b3c501aed2e38bde819a674f36b621c718bf1ccb4e9b878e4560519733fbb6af678a035da5c717bd0334ce9e6d6c438e317e39969d370f1c8ac02f40c0a443c151cbd381738625d82e64497f36d5871e06fd732d3a6f1e39157f5e8181488782a397a702e70c4bb05cc892fe6dab0e3c0dfae65a74de3c722afe49155b3de567c9e71acbf6108dbee18bd23f37531c79bff6ccb4e9bd78e455fb1e3d0f28a1321686025e141911dbeb1250c0caa338f523ee9969d37bf1c8abf53c7a1e5142642d0c04bc283223b7d624a181954671ea47dd32d3a6f7e39157ea0506954f5b2adccfd63e785c3dcdd443ef458689e3d633bb65a74df0c722afd30a0d2a9eb655b99fac7cf0b87b9ba887de8b0d13c7ac6776cb4e9be18e455fa6141a553d6cab733f58f9e170f737510fbd161a278f58ceed969d37c31c8abf4c2834aa7ad956e67eb1f3c2e1ee6ea21f7a2c344f1eb19ddb2d3a6f8639157e98506954f5b2adccfd63e785c3dcdd443ef458689e3d633bb65a74df0c722afd302ce502983bbe1cb29495337fb018b07894f32d397ac81b6db4e9be19e455fa5f59ca0530777c3965292a66ff603160f129e65a72f59036db69d37c33c8abf4be3fa6630dc55af5821f1af5f6b6c0e9dd000f10e2eb2211b7d3a6f8689157e97b0b5f1ec861186dbc0afc13e563dffbb4ac607dc2d645c770a74df0d222afd2f516be3d90c230db7815f827cac7bff76958c0fb85ac8b8ee14e9be1a4455fa5ea2d7c7b218461b6f02bf04f958f7feed2b181f70b59171dc29d37c3488abf4bd45af8f64308c36de057e09f2b1effdda56303ee16b22e3b853a6f8691157e97a842044532e7e95e787c87664e345de345724a382a645e1b0b74df0d232afd2f4f101ae312a6353fa8c5d4f4945f19ee8590d6cc51c8bdda17e9be1a4755fa5e9d2035c6254c6a7f518ba9e928be33dd0b21ad98a3917bb42fd37c348eabf4bd3a406b8c4a98d4fea31753d2517c67ba16435b314722f7685fa6f8691d57e97a740ce97142080c7ffdfb6dcc9aef2d9c2732f8be8b45f074c04df0d23bafd2f4e719d2e2841018fffbf6db9935de5b384e65f17d168be0e9809be1a4775fa5e9ce33a5c5082031fff7edb7326bbcb6709ccbe2fa2d17c1d30137c348eebf4bd39c674b8a104063ffefdb6e64d7796ce13997c5f45a2f83a6026f8691dd7e97a7385aa96ccd572a829783a2f1a6e937ea6ddbce44b15f08f005df0d23bbfd2f4e6f4165324784b787e6d40c0b45c8cdfcd663dee55fbe13840cbe1a4778fa5e9cdd0edcbd3bdfd1928574de3e8387fa21a7740026bc7c28ac1a7c348ef2f4bd39b91db97a77bfa3250ae9bc7d070ff4434ee8004d78f8515834f8691de5e97a73723b72f4ef7f464a15d378fa0e1fe8869dd0009af1f0a2b069f0d23bcbd2f4e6e402f8428bd4ef16e373b81c14362f35364c4391e0e14704d4e1a47798a5e9cdc705f08517a9de2dc6e77038286c5e6a6c988723c1c28e09a9c348ef314bd39b8e0be10a2f53bc5b8dcee07050d8bcd4d9310e4783851c13538691de6297a7371c17c2145ea778b71b9dc0e0a1b179a9b2621c8f070a3826a70d23bcc52f4e6e382f8428bd4ef16e373b81c14362f35364c4391e0e14704d4e1a47798a5e9cdc705f08517a9de2dc6e77038286c5e6a6c988723c1c28e09a9c348ef314bd39b8e04a22fba212283b94bacd2d05822b758dbd26d43551c2d939691de62a7a7371bf20584ff0fab2f9e142608202fab5131626900467a3875673d23bcc55f4e6e37d40b09fe1f565f3c284c10405f56a262c4d2008cf470eace7a47798abe9cdc6fa0d739870c12e6a3cd6483003e132745346826d9b8e1efdd048ef3158d39b8df31ae730e1825cd479ac906007c264e8a68d04db371c3dfba091de62b1a7371be635ce61c304b9a8f35920c00f84c9d14d1a09b66e387bf74123bcc5634e6e37cc6b9cc386097351e6b241801f0993a29a34136cdc70f7ee8247798ac69cdc6f98634bdfb8e94926853149283609856d2f146935b5e1f181058ef3158e39b8df2f52aa181ea8f4cfc22f58786409690258d514c768c3e4a60c1de62b1d7371be5d316688ea284c223c2b7718c009302cac566beace87caf0193bcc563be6e37cb962cd11d45098447856ee318012605958acd7d59d0f95e0327798ac77cdc6f97251ac7c5577930ba87aa28af81b1edaac05f207371f2d6465ef3158f09b8df2e32f6b5157c5889a08c20b3de82c9bdd52b8266a6b3e5c6cccde62b1e2371be5c55ed6a2af8b11341184167bd05937baa5704cd4d67cb8d999bcc563c46e37cb8a49bf9e0bec84eadad4f31f98a8cd9d458cdc05a9f9735734798ac789dc6f97131f9194c4af6c586d76ac672947f96285c5fa6750f2e85269f3158f14b8df2e253f2329895ed8b0daed58ce528ff2c50b8bf4cea1e5d0a4d3e62b1e2971be5c4a0a58abbf9413e46da777c49d1643b211c42bf940cba2eda8cc563c53e37cb89314b1577f2827c8db4eef893a2c8764238857f2819745db5198ac78a7c6f971262962aefe504f91b69ddf1274590ec84710afe5032e8bb6a33158f14f8df2e24c52c55dfca09f236d3bbe24e8b21d908e215fca065d176d4662b1e29f1be5c498319d14a617a0c992444271c95a994916ef01f009ba307e8dc563c53f37cb892f633a294c2f4193248884e392b532922dde03e0137460fd1b8ac78a7e6f97125e5286ab4534e5a900ddcfef1d60c34c56684a1c23e8c39e38158f14fddf2e24bb311faf37402dd4b988660632b7e4c0a77cd69444d188e0712b1e29fcbe5c4975623f5e6e805ba97310cc0c656fc9814ef9ad2889a311c0e2563c53f97cb892ea50911589d719d59dee5e40c2d5f12a989f9cad10462525c5ac78a7f3f97125d32d3483c084962df3a982a97da2407d2beb7bb61d8c4bef8c58f14fe8f2e24ba55a690781092c5be7530552fb4480fa57d6f76c3b1897df18b1e29fd1e5c4974a40e467aee8bb3a8672d0cdee7f601caa5a3134733131623263c53fa4cb892e930ddb280aa7d8f7c4b267c3d4f51e614f60a4c4e362646865c78a7f4a97125d251bb650154fb1ef8964cf87a9ea3cc29ec14989c6c4c8d0cb8f14fe952e24ba4a376ca02a9f63df12c99f0f53d479853d8293138d8991a1971e29fd2a5c4974946ed940553ec7be25933e1ea7a8f30a7b0526271b1323432e3c53fa54b892e92869c4d95753f1ff02f342654748443cf0b68eaa3326482a5d78a7f4aa7125d24f5f9c0b5b7e4680bdb34af28686e6a1dc195fb0634c91f8bbf14fe955e24ba49d4b4a6f63d2ef8433335c0d05042b6bb2df01bcc399259578e29fd2acc497493922a737747c418b1e337e4201feb4ff606a45d584324ccef2c53fa55a892e9271454e6ee8f883163c66fc8403fd69fec0d48bab0864999de58a7f4ab5125d24e216af367ec768af309abf2ffff132257c5559b20dc934dfcc14fe956b24ba49c32d5e6cfd8ed15e61357e5fffe2644af8aab3641b9269bf9829fd2ad6497493865abcd9fb1da2bcc26afcbfffc4c895f15566c83724d37f3053fa55ac92e9270c418c0ca311a7fc3ca2bfa7f77fef53dd570fec6b49a8a261a7f4ab5a25d24e170f2a71f2f9b27b31124577e6f63ccfb55a6234d39352e8c44fe956b54ba49c2d1e54e3e5f364f662248aefcdec799f6ab4c469a726a5d1889fd2ad6a9749385a3ca9c7cbe6c9ecc44915df9bd8f33ed56988d34e4d4ba3113fa55ad52e9270b40565e844a3f65c405ef1e72fa844a5a57f5402999a98ea237f4ab5ab5d24e1670acbd08947ecb880bde3ce5f50894b4afea805333531d446fe956b56ba49c2ce1597a1128fd971017bc79cbea1129695fd500a666a63a88dfd2ad6ad7493859c2b2f42251fb2e202f78f397d42252d2bfaa014ccd4c7511bfa55ad5ae9270b38565e844a3f65c405ef1e72fa844a5a57f5402999a98ea237f4ab5ab5d24e167038cf6141552e0ac3ab030decfef2dcaa96c2af30531ee870e956b56ca49c2cdf719ec282aa5c158756061bd9fde5b9552d855e60a63dd0e1d2ad6ad9493859be6f4fddb22b1aadc678d25fabf2299aa5074d18be4c7d45c4a55ad5b39270b37b6ab214112c97de44be6ae74fdab15d44badc8d7998fc2f8a4ab5ab6824e166f5617680cf2f923f41499bf697abc0e28421fb76f031fa0315956b56d149c2cde94eff5a4b3587013a5ffe15274ddfed02f03949dd63f5aa2c2ad6ada393859bd12a110d434170852c8cc25246921e02008cb4efb7c7ecf85955ad5b48270b37a154221a8682e10a591984a48d243c04011969df6f8fd9f0b2ab5ab6904e166f4234568db9dc249769ffcf71123ed62ffcdf161adc1fb5856656b56d219c2cde8368ad1b73b8492ed3ff9ee2247dac5ff9be2c35b83f6b0accad6ada433859bd065d6c8f9446f4e05fcc03ec40f1b6e7ee289ac76d7ed7b99a5ad5b48770b37a0b46eb77d5644c437764ce0079d9cbf7d6fd77ead7fdb11735b5ab690fe166f41519e948579efb09a6966228eba9f617a8a73231acfb63d26c6b56d220c2cde82933d290af3df6134d2cc451d753ec2f514e646359f6c7a4d8d6ada441859bd05267a5215e7bec269a5988a3aea7d85ea29cc8c6b3ed8f49b1ad5b48830b37a0a45b5c9b69ce3acfec7fd76f55460ee53fe5d3e964db2037645ab69107166f414742cb8f8072d82290cc7506a2827bf27a77ea2ec6b64212c9b56d220f2cde828d11a977adbc12c7d965b0353cfb560cef9c16b98a6c85c9946ada441f59bd05192352ef5b78258fb2cb606a79f6ac19df382d7314d90b9328d5b4883eb37a0a3246a5deb6f04b1f6596c0d4f3ed5833be705ae629b2172651ab69107d66f41464195e161ab6f8c182fa47d1dfd10e8f778cf82850642ff0a456d220fbcde828c732bc2c356df18305f48fa3bfa21d1eef19f050a0c85fe148ada441f79bd0518e6578586adbe3060be91f477f443a3dde33e0a14190bfc2915b4883ef37a0a31c570309828e288ecf9f04b6f67ed2a3b714039e8021812923b69107df6f4146373a186bb1f2b3a0570acf95e4f4036f68d44998fd4303f6486d220fbfde828c6d00433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d900866021779386cbc4caa783bcca0d98a9ab1bef0c132123b4883f017a0a31b2010cc042ef270d9789954f0779941b31535637de1826424769107e02f414636402198085de4e1b2f132a9e0ef3283662a6ac6fbc304c848ed220fc05e828c6c80433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d900866021779386cbc4caa783bcca0d98a9ab1bef0c132123b4883f017a0a31b2010cc042ef270d9789954f0779941b31535637de1826424769107e02f414636402198085de4e1b2f132a9e0ef3283662a6ac6fbc304c848ed220fc05e828c6c80433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d90012727a2469e94e7c976dabb4c06bc0a4575e4b091322c7b5883f017b0a31b1ff24e4f448d3d29cf92edb576980d78148aebc961226458f6b107e02f6146363fe49c9e891a7a539f25db6aed301af02915d792c244c8b1ed620fc05ec28c6c7fc1fa629d025acf69c8833859df9bc2d1d6734b4459917e1ad41f80bd9518d8ff73f4c53a04b59ed3910670b3bf3785a3ace69688b322fc35a83f017b2a31b1fee0aaaffed6d165d29ed943e6fdd4edc7049152d1364612ab607e02f6646363fdb1555ffdada2cba53db287cdfba9db8e0922a5a26c8c2556c0fc05ecc8c6c7fb62aabffb5b45974a7b650f9bf753b71c12454b44d9184aad81f80bd9918d8ff6c5557ff6b68b2e94f6ca1f37eea76e38248a9689b230955b03f017b3231b1fed836c25783a7c85556a60a0ef5cb4beeff3d952d3346144f617e02f6656363fdaf6d84af074f90aaad4c141deb9697ddfe7b2a5a668c289ec2fc05eccac6c7fb5e671bb6bb7583d81264ee63cf238de3f7a29710ca1852e186f80bd9968d8ff6bb5a49c623c16a32dc96a2ef963d79efe9f1707d9130a7670ef017b32e1b1fed7540a5e4f45936e870fa0c0724715207ce8f23571f6150721ee02f665d363fdae90d5e229588d05399c0de3640d9023797ca890a3bc2a2883ec05eccbb6c7fb5d11abc452b11a0a73381bc6c81b2046f2f951214778545107d80bd9976d8ff6ba235788a5623414e670378d9036408de5f2a2428ef0a8a20fb017b32edb1fed7446af114ac46829cce06f1b206c811bcbe544851de151441f602f665db63fdae8861f482056367bc53daa98c058681a17754d2ffb92a2a27ed05eccbb7c7fb5d0f4ffb5cb79d31fb5f8219400303616ae955e85b6f5455f3db0bd997708ff6ba1d2c09121c10c67976d0f8a7fdfd20fdcd581312dba8ad8bb717b32ee21fed743958122438218cf2eda1f14ffbfa41fb9ab02625b7515b176e2f665dc43fdae8723c36a11d197c689310a8c7efeae21f300c8ea76ba2b7d2dd5eccbb897fb5d0e3047f9ae7095b53ddee17b7d7cc22665ac55faad4457149bbbd997713ff6ba1c508ff35ce12b6a7bbdc2f6faf9844ccb58abf55a88ae293777b32ee27fed7438a11fe6b9c256d4f77b85edf5f3089996b157eab5115c526eef665dc4ffdae871423fcd7384ada9eef70bdbebe611332d62afd56a22b8a4dddeccbb89ffb5d0e2847f9ae7095b53ddee17b7d7cc22665ac55faad4457149bbbd997713ff6ba1c501c05b58e01ccfe758fbd22f17aaaf3535837b685ae2adb78b32ee280ed74389f380b6b1c0399fceb1f7a45e2f555e6a6b06f6d0b5c55b6f1665dc501dae8713e7016d6380733f9d63ef48bc5eaabcd4d60deda16b8ab6de2ccbb8a03b5d0e27c6c40051ce4ca76644aaf3f83cbb5c2956e00102a71587fc6997714086ba1c4f7649262e69ff76f806224a6ff8dc9ad2588427c51e2b2a38e32ee2811d74389ed55371e7a165161b8910f75f711f18245bcc754a0c566eb1d65dc5024ae8713d9368095a103054628eee513e61a412c8625d1053e8acf7a3bcbb8a04a5d0e27b16d012b42060a8c51ddca27cc3482590c4ba20a7d159ef47797714094ba1c4f626614af30e2779b5b885a77905f62da13438670f72b3f8cf02ee2812a74389ec3583bb70e9b51b96edd7b1718b523dc21334f3deb5680bde15dc50255e8713d853c89c6ca0d05f59587bc562960a5e03d12e0d7d3ad031fc3bb8a04acd0e27b090525e640f06e6de2dc3ed44ab7a9e874d2040ba45a07e3887714095aa1c4f6110a4bcc81e0dcdbc5b87da8956f53d0e9a4081748b40fc710ee2812b54389ec2214979903c1b9b78b70fb512adea7a1d348102e91681f8e21dc50256a8713d844292f320783736f16e1f6a255bd4f43a690205d22d03f1c43b8a04ad50e27b088525e640f06e6de2dc3ed44ab7a9e874d2040ba45a07e3887714095aa1c4f611030cf20cae4303f1354a0b14eeb9b3694ecc3d08840fe150fe2812b55389ec21f619e4195c8607e26a941629dd7366d29d987a11081fc2a1fc50256aa713d843e4f4edbd867237f051f48ed33a4cb024e5f519e1e03f9f8408a04ad55e27b087b2ab0105da4a980c20b58025f3ff42c976ae5983907f5948214095aacc4f610f5556020bb4953018416b004be7fe8592ed5cb30720feb29042812b55989ec21ea36d29a23690885bffa263174f62eda5857d8bce11fd7f60950256ab413d843d36da53446d2110b7ff44c62e9ec5db4b0afb179c23fafec12a04ad56827b087a6675cc13a7a8499b7b55eedcbcf19915c0ba54f817f617c264095aad14f610f4b5acbdb21cb6bb6273784038f94914ab2c38cfafffec49c4d812b55a39ec21e9541aa0ef06d39ef063bce2f171f80bd60335c51fcfd8adc9c0256ab483d843d290f66768db0d660c444628626355fa2bb12fafff6fb175d3904ad56917b087a511ecced1b61acc18888c50c4c6abf457625f5ffedf62eba72095aad22f610f4a23d99da36c3598311118a1898d57e8aec4bebffdbec5d74e412b55a45ec21e94407460d1a5d1588d9efda5929a15b3dd3441a5bb4d8bc8dc9256ab48cd843d2870e8c1a34ba2b11b3dfb4b25342b67ba68834b769b1791b924ad56919b087a50e1d18346974562367bf6964a6856cf74d10696ed362f2372495aad233610f4a1c3a3068d2e8ac46cf7ed2c94d0ad9ee9a20d2dda6c5e46e492b55a466c21e943800732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f00e654a54f7620ad94d7752418240a5ddbd02e9517950126ad56919d087a50de01cca94a9eec415b29aeea48304814bbb7a05d2a2f2a024d5aad233a10f4a1bc039952953dd882b6535dd490609029776f40ba545e54049ab55a467421e943780732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f00e654a54f7620ad94d7752418240a5ddbd02e9517950126ad56919d087a50de01cca94a9eec415b29aeea48304814bbb7a05d2a2f2a024d5aad233a10f4a1bc039952953dd882b6535dd490609029776f40ba545e54049ab55a467421e943780732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f007266fdfc4c83304ca43b4c101a6885d67c70f1149502caae56919d097a50ddff70e054a56f68e351153cc0182b2f33a7a5243e262a07395dad233a13f4a1bbfd6dd301f7b5344959f73fa8284cbc8f49f68ad849541016bc5a467428e94377f967b85c9c40cb156bbb4578488fd7468e99580c8fa821d179b48ce852d286eff15b8311e557f8ad8f43511889160cb517def2751c504546f46919d0a6a50ddfe143187c778653ddd65368590a2277922a6a274635a08c31e9d233a14e4a1bbfc11243519be30a3e647396da0c3b4d4c4f8090e868411a07d4a467429d94377f812486a337c6147cc8e72db418769a989f0121d0d082340fa948ce853b286eff02490d466f8c28f991ce5b6830ed35313e0243a1a104681f52919d0a7650ddfe041e2ce58beeb475db697cf859d0c88a76b0c99f3f08d1e2a6233a14eda1bbfc073c59cb17dd68ebb6d2f9f0b3a19114ed61933e7e11a3c54c467429db4377f80e04c5eedc91345a2572ba095f398051d56f68d8f923492e998ce853b786eff01b098bddb92268b44ae57412be7300a3aaded1b1f246925d3319d0a76f0ddfe0361317bb7244d16895cae8257ce6014755bda363e48d24ba6633a14ede1bbfc06c262f76e489a2d12b95d04af9cc028eab7b46c7c91a4974cc67429dbc377f80d84c5eedc91345a2572ba095f398051d56f68d8f923492e998ce853b786eff01b024d0343efcedc766240753df266862a8995d7b21692777329d0a76f1ddfe035f49a0687df9db8ecc480ea7be4cd0c55132baf642d24eee653a14ede3bbfc06be1f5329a8ca19a0505ce377748fffb29d11b84882a49f80cb7429dbc877f80d7b3ea65351943340a0b9c6eee91fff653a23709105493f0196e853b790eff01af6095eff4ffec903f9405405ca365cf26ef3237e07927fa72ed0a76f22dfe035eb12bdfe9ffd9207f280a80b946cb9e4dde646fc0f24ff4e5da14ede45bfc06bd6257bfd3ffb240fe501501728d973c9bbcc8df81e49fe9cbb429dbc8b7f80d7ac4af7fa7ff6481fca02a02e51b2e79377991bf03c93fd3976853b7916ff01af5822024dacc2f2c24bd206849b5c2d4ee9de7a3c7627fc16ee0a76f22efe035eaf44049b5985e58497a40d0936b85a9dd3bcf478ec4ff82ddc14ede45dfc06bd5e141b8f5fe22d8be714e03a65671363a2262b4dd59ff1ffb929dbc8bcf80d7abb28371ebfc45b17ce29c074cace26c7444c569bab3fe3ff7253b79179f01af576506e3d7f88b62f9c5380e9959c4d8e8898ad37567fc7fee4a76f22f3e035eaec2ceed3abe7cee1f073c7fb232ef9450bdd9ccaa9ff91a1ca4ede45e8c06bd5d759dda757cf9dc3e0e78ff6465df28a17bb399553ff2343949dbc8bd180d7abae3fcda75c759e0a799be61484b2433c2a22b586a4fe482b2a3b7917a401af575b0bada765c19e97ab049251015ae4a04ef1ad6946fc91fa5576f22f49035eaeb5175b4ecb833d2f560924a202b5c9409de35ad28df923f4aaede45e9206bd5d6a2eb69d97067a5eac124944056b92813bc6b5a51bf247e955dbc8bd240d7abad45d6d3b2e0cf4bd582492880ad72502778d6b4a37e48fd2abb7917a481af575a846eccf08f04bfd6815eb380da4a82ce9c718f06cc92149586f22f49135eaeb4f19ebf6beb6fa7d87f89c98133fae81ce3a743cd6924436b1de45e9236bd5d69d33d7ed7d6df4fb0ff13930267f5d039c74e879ad24886d63bc8bd246d7abad3a67afdafadbe9f61fe272604cfeba0738e9d0f35a4910dac77917a48daf575a745b720ea28e366ef791aae891f3d2366c7fe442b19223598ff22f491c5eaeb4e742f675f1f2cf60a6f01bf91bde0294d3ac0ae16024485720e45e9239bd5d69cd11ff4490bc014405acfe1a2fb26351a204581ebd48925242c8bd24747abad39923fe89217802880b59fc345f64c6a34408b03d7a9124a485917a48e8f575a73247fd1242f0051016b3f868bec98d468811607af52249490b22f491d1eaeb4e641c0c7d32b66ca2e534b6f9758978b50acf0351e74494361745e923a4d5d69cc73818fa656cd945ca696df2eb12f16a159e06a3ce89286c2e8bd24749abad398e7031f4cad9b28b94d2dbe5d625e2d42b3c0d479d1250d85d17a48e93575a731c6c76424289c799e1727df3a44223d051245ceb3724a354bb2f491d27aeb4e63764fedd31e9f1b67ab1c20f407aa5c89cf4fc326b49484d775e923a505d69cc6d56101310aa45efad304a4678eba9b934963ac0d392923eefbd2474a1bad398d938327ece2aee62122d5ab4e9cdb19a63d8b7dda4252621e07a48e94475a731b17064fd9c55dcc4245ab569d39b6334c7b16fbb484a4c43c0f491d288eb4e63626cdc53e5821c0b008230fb9f2d24918a0f21d28d949a2b82e923a512d69cc6c365cb0077da9a98b8d1281f3650a74b0eca8601182935fb06d2474a26ad398d8557a8599c8b97b4296f16666497acbe18414e5e2d526d9a0ea48e944e5a731b093b630be5ed91eb0aaaf2f4c125b7a42b2edf1857a4dcd81e491d289db4e6361102d87078b18658cd22ac117a41cd70510a008cac49bb543d923a513c69cc6c2105b0e0f1630cb19a455822f4839ae0a2140119589376a87b2474a278d398d8420b61c1e2c61963348ab045e90735c144280232b126ed50f648e944f1a731b08416c383c58c32c66915608bd20e6b8288500465624ddaa1ec91d289e34e6361082d87078b18658cd22ac117a41cd70510a008cac49bb543d923a513c69cc6c2105b0e0f1630cb19a455822f4839ae0a2140119589376a87b2474a278d398d8420422e76d937f8b60077ca868869ba3c3d2c65870f6ed6b3658e944f1b731b083f106f465f4653eeb8bc5b3508c9d2a075050d6a1bddaf0acc1d289e37e636107d20de8cbe8ca7dd7178b66a1193a540ea0a1ad437bb5e15983a513c6fcc6c20fa41bd197d194fbae2f16cd423274a81d41435a86f76bc2b3074a278df98d841f40f8c8ba70901f87daf9fd03e44f32ba2d4adacdbed79fa61e944f1c031b083e71f19174e1203f0fb5f3fa07c89e65745a95b59b7daf3f4c3d289e380636107ce3e322e9c2407e1f6be7f40f913ccae8b52b6b36fb5e7e987a513c700c6c20f9c0876b5e51e7246a549c4a9ea1df7851151afc2dc6bd177104a278e028d841f3710ed6bca3ce48d4a938953d43bef0a22a35f85b8d7a2ee20944f1c051b083e6e21dad79479c91a952712a7a877de144546bf0b71af45dc41289e380a36107cdc43b5af28f392352a4e254f50efbc288a8d7e16e35e8bb882513c70146c20f9b8137db6febd86ed0c6910c699d5d6790fc73e89c3bd191505a278e029d841f36f26fb6dfd7b0dda18d2218d33abacf21f8e7d13877a322a0b44f1c053b083e6de4df6dbfaf61bb431a4431a675759e43f1cfa270ef464541689e380a76107cdbc280010a2c299eb1b154c5cc6a511f078e636aa1ae8ca4c2e13c7014fc20f9b77500021458533d6362a98b98d4a23e0f1cc6d5435d194985c278e029f841f36ee2c129b37e0ca2f2421f79b128aa5e9de451d0468a32ad4b94f1c0540083e6ddb5825366fc1945e4843ef3625154bd3bc8a3a08d14655a9729e380a80107cdbb63c5cc58c598b3f4854a4944220f5cf73c0b66d9f8cacf6e63c70150120f9b76b04cbe3c589790148760f507c3849c6e22daf373c195b91cd78e02a0341f36ed50997c78b12f20290ec1ea0f870938dc45b5e6e7832b7239af1c0540683e6ddaa132f8f1625e40521d83d41f0e1271b88b6bcdcf0656e4735e380a80d07cdbb54265f1e2c4bc80a43b07a83e1c24e37116d79b9e0cadc8e6bc701501a0f9b76a84cbe3c589790148760f507c3849c6e22daf373c195b91cd78e02a0341f36ed50258ed15e0582abc68eb0377eff970440622943802b73ddb01c0540693e6dda9f4b1da2bc0b05578d1d606efdff2e0880c452870056e7bb60380a80d27cdbb53e224d9e24ec6d31d2078705f3f4ba38fc34e769fdadd11ac1701501a5f9b76a7b449b3c49d8da63a40f0e0be7e97471f869ced3fb5ba23582e02a034bf36ed4f61548d140881749ffeae23fc7c9470beb7fe003f3b7460f06c0540698e6dda9eb2a91a281102e93ffd5c47f8f928e17d6ffc007e76e8c1e0d80a80d31cdbb53d655234502205d27ffab88ff1f251c2fadff800fcedd183c1b01501a639b76a7ac3658e2b1171cd2b723d8263640968756ab427b9aba321c3702a034c836ed4f576cb1c5622e39a56e47b04c6c812d0ead5684f7357464386e054069906dda9eae6575e37132d5cd945c26c0d0f8b84555594c4a67e8ca14dd0a80d321dbb53d5b56fe1f8f3c0e1de08513a999e7ceb2a55edaf0ccd195cdbb1501a644b76a7ab53a0e97cb4e7ebe78d6ed7b2bc5fb8d4569f83d96a32d3f772a034c8a6ed4f569002f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a200be210dcd7ffea5ea84793e09550a1600cb5ca919708bbd501a645776a7ab44017c421b9afffd4bd508f27c12aa142c0196b95232e1177aa034c8aeed4f568802f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a200be210dcd7ffea5ea84793e09550a1600cb5ca919708bbd501a645776a7ab44017c421b9afffd4bd508f27c12aa142c0196b95232e1177aa034c8aeed4f568802f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a2004a33667a566128a2513f66014b683dfb779f0516708d61511a645777a7ab43ff207925a18324d3fc6f44f3fa8d2ea3f19b806629e11c66a334c8aef04f5687fd40f24b430649a7f8de89e7f51a5d47e33700cc53c238cd4669915de09ead0ffa0df6ef32e2f5d2a989d9f7e22b18b7c11a43f4a484733e8dd322bbc23d5a1ff31bedde65c5eba55313b3efc456316f823487e94908e67d1ba64577847ab43fe637dbbccb8bd74aa62767df88ac62df04690fd29211ccfa374c8aef08f5687fcc6fb7799717ae954c4ecfbf1158c5be08d21fa5242399f46e9915de11ead0ff986b814bdb05bfad506a65a61aa7e9a40c5081a64547358cde322bbc24d5a1ff2f6314f062e1e1dd58a191742d463170134d45a8878e6cbdbd6457784aab43fe5d523c39729a263d690fe9105282c1082146cdad0c1cdb1f7bc8aef0965687fcb9308acb920aaefd89ec98489cfbe0383d39ddb61539b7e2f8915de12dad0ff97161159724155dfb13d9309139f7c0707a73bb6c2a736fc5f122bbc25b5a1ff2e24e3d86f5011e78df7f274a6be5df08ef93b93451e6e12fe3457784b7b43fe5c3288d6696d89f7476cb14bccfc21c39d9d3b4c4a0cdc403c78aef0970687fcb85511acd2db13ee8ed9629799f843873b3a76989419b88078f15de12e0d0ff970a2e47f30838e05492f9191b36fecf0f61fb156e803711b31f2bbc25c2a1ff2e135c8fe61071c0a925f232366dfd9e1ec3f62add006e23663e57784b8543fe5c26453224cdb9e3d503b12a94d3f19a6582989815fddc48707daef0970b87fcb84b1676a2484a2a2cbf2f1b519fd992f2ffdd7287f8b89284fc5de12e180ff970952ced44909454597e5e36a33fb325e5ffbae50ff1712509f8bbc25c301ff2e12a59da892128a8b2fcbc6d467f664bcbff75ca1fe2e24a13f17784b8603fe5c2543fc76aef27b3e8b145a0b4f6c2f5bff997d69bc2c495cbe3ef0970c17fcb84a70ba12e8b25ca541a580791e57c49a7eddbef9382892d3bc8de12e183ff97094d17425d164b94a834b00f23caf8934fdbb7df2705125a7791bc25c307ff2e129a2e84ba2c97295069601e4795f1269fb76fbe4e0a24b4ef23784b860ffe5c25345d0974592e52a0d2c03c8f2be24d3f6edf7c9c144969de46f0970c1ffcb84a684625415f3307c45d4d3f464fbaf8a6d86b3b942592d5608ee12e1840f97094cf185cdb6b3c720b726744b4976c4f75ab82b9844825ac651ec25c3082f2e1299d30b9b6d678e416e4ce89692ed89eeb57057308904b58ca3d84b86105e5c2533a61736dacf1c82dc99d12d25db13dd6ae0ae6112096b1947b0970c20bcb84a6744ef93406b9f2de4b06ebccb358d9d556c20e7e3e2d64ccf712e1841897094ce72a04c0ba4a483f4dda9dc15ea811d2a8305f58795acb3def25c308322e1299cd5409817494907e9bb53b82bd5023a55060beb0f2b5967bde4b8610645c25339a34255b95ff837fef373d2d7296a5729b6dbfbde26b2e9bbd970c20c9b84a6733684ab72bff06ffde6e7a5ae52d4ae536db7f7bc4d65d377b2e1841937094ce665ca7c704d4708274a9baddc250f3f26863415386acbc12f75c308327e1299ccb4561e6b67f4387a1203be37c98460ccb72c5030a5979c9efb8610650c253399516d62619d4e991fa0d3deef126ea419191cc6211b2f537e070c20ca284a673292dac4c33a9d323f41a7bdde24dd483232398c42365ea6fc0e1841945094ce6525b58986753a647e834f7bbc49ba9064647318846cbd4df81c308328a1299cca442c3897b7daf128836b59f812db034873aa56c8a97ab6304861065152533994711996ba3d1c0a7c83a3166fa51be9109218d35122f586a0a0c20ca2b4a67328d2332d747a3814f907462cdf4a37d2212431a6a245eb0d4141841945694ce651a4665ae8f47029f20e8c59be946fa44248634d448bd61a828308328ad299cca3418ddb5cb6467c0f99e515fca8452b043b8ac048e7ac4f4516106515b5339946731bb6b96c8cf81f33ca2bf9508a560877158091cf589e8a2c20ca2b6a67328ce6376d72d919f03e679457f2a114ac10ee2b01239eb13d1458419456d4ce6519c53000707f9a08a84bf51264c18f3aa1871a28070d629468c08328adb99cca337321266bcc9a397c14b68749028457c2b8f875cdeac543119106515b83399466d6424cd7993472f8296d0e920508af8571f0eb9bd58a8623220ca2b7067328cda545bf39ffcf0e1bcfa67fa38977418a8ea5fcf77b1526865419456e1ce6519b334ca3fecd0444631c1961c692546594c8101faec62a674cb8328adc49cca336569947fd9a0888c63832c38d24a8cb2990203f5d8c54ce99706515b89399466ca5f3b586017739b7ed31e999c8b778d2cb04a47ae8a9b772f0ca2b7137328cd934a89096d0549b9b573035b310d4d42540cd6eb5a1538925f19456e27e6519b2521246b86e0f5f622b2ccde5a10f8aca2c5f032b12a72c8bf328adc50cca336494248d70dc1ebec456599bcb421f159458be0656254e5917e6515b8a199466c9210a406c85a3a5b4297f9a1603a40da85c40326c1a9ccc6fdca2b7144328cd92321480d90b474b6852ff342c07481b50b88064d8353998dfb9456e2886519b24642901b2168e96d0a5fe68580e9036a17100c9b06a7331bf728adc510ca33648c11328eefa8355ccc8c9332f9c864fc28cc5b920a4e67dbef515b8a229466c91722651ddf506ab999192665f390c9f85198b724149ccfb7dea2b7144528cd922e44ca3bbea0d57332324ccbe72193f0a3316e4829399f6fbd456e288a519b245c15a6d02a180d691c315fbfc6398609410f1eec4f7340837b8adc5115a33648b72b4da054301ad23862bf7f8c730c12821e3dd89ee68106f715b8a22b466c916e569b40a86035a470c57eff18e61825043c7bb13dcd020dee2b7144568cd922dc3948d9fd96cdcb9957c42629c28e72032539be789a05bfdd56e288ae19b245b77291b3fb2d9b9732af884c53851ce4064a737cf1340b7fbaadc5115c33648b6e7135c0a33199b11d2bd6c09f0097f007412955df6818a3765b8a22b966c916db6e7dd9f33995e4f22473a935f78e08092e9507bbd032eaedb7144573cd922db5690e0c93498e4c9c15ad7a63e57a380d096c6b74a06779dc6e288ae89b245b695e2e71d3697f1beff8211cbfc1529814bf1b32e640d097b9dc5115d23648b6d1486f3c53a960ba97bd086177790358242a78c1c981a2d374b8a22ba56c916da11cf0d1542923f7e746d6eae6e864d8430133df9003474aea7144574bd922db4139e1a2a85247efce8dadd5cdd0c9b0860267bf20068e95d4e288ae97b245b68273c34550a48fdf9d1b5bab9ba193610c04cf7e400d1d2ba9c5115d2f648b6d047398e34e1f8241f2037d7f2f3984ea12b5e1587d1a3bfb548a22ba5fc916da0773441f491567069bd3c126566967fc2018050cf734799aaa144574c0922db40d729a973f01308fef744874a4c92e203adc4c75eb68f4d955288ae982245b68197147872ad8c3a296b557114188ba687064db47d3d1eb56ab5115d30548b6d0316ea1670287e9c7e537744a7b07d2f8db75f8eba4a3d85157a22ba60b916da061695526b1e63612823baebcee060419b19834334647b246b044574c1822db40c15ebca610a2cea7bc4423a1d402665b5ddcaac2898f66316188ae983145b68181498ba4ce1bffd230550d6b9ffb2adeb66597e1101ece06c4115d30638b6d03011f29a2490e62271876e0ff37ecb3e56777721e1d3d9db18922ba60c816da06013e5344921cc44e30edc1fe6fd967caceeee43c3a7b3b63124574c1902db40c0208b8e1d10feb1f19a84a24d7a92dbd988a0ad471f6786a258ae983215b6818031171c3a21fd63e33509449af525b7b311415a8e3ecf0d44b15d30642b6d0300622e387443fac7c66a128935ea4b6f662282b51c7d9e1a8962ba60c856da0600c45c70e887f58f8cd425126bd496decc45056a38fb3c3512c574c190adb40c01817a075bdd514745251687572893a01834cefa31c67884659ae983216b681802f2f40eb7baa28e8a4a2d0eae51274030699df4638cf108cb35d30642d6d03005e5e81d6f75451d14945a1d5ca24e8060d33be8c719e211966ba60c85ada0600bc4916069b7f06254a5809d38c402e341513bf74e03c43d6ce74c190b6b40c01771e3e65e3d46ecd4c7cd9cf1076ba9024d3c145bd7889519de983216e681802ed3c7ccbc7a8dd9a98f9b39e20ed752049a7828b7af112a33bd30642dcd03005da050bf03c281db7e9c02d6439d148688dfb4772f2e226ea78a60c85baa0600bb30a17e078503b6fd3805ac873a290d11bf68ee5e5c44dd4f14c190b7540c01766142fc0f0a076dfa700b590e74521a237ed1dcbcb889ba9e2983216ea81802ecc285f81e140edbf4e016b21ce8a43446fda3b9797113753c530642dd503005d9850bf03c281db7e9c02d6439d148688dfb4772f2e226ea78a60c85baa0600bb302d906031da197fefd272af321f6b39ba1530ba5944def315c190b7550c01765f5b20c063b432ffdfa4e55e643ed673742a6174b289bde62b83216eaa1802ecbe4253d9743ec882771690e4c0740b0ee301054562137d70580642dd553005d97b10ba0b9553f387a5f9e7f178de7445c0ae4ce6c126fc84b10c85baab600bb2f52174172aa7e70f4bf3cfe2f1bce88b815c99cd824df90962190b7556c01765ea42e82e554fce1e97e79fc5e379d11702b9339b049bf212c43216eaad802ecbd411e2b55775febfe79c05b3beea0056001ea9920637e5c989642dd55c005d97a723c56aaeebfd7fcf380b677dd400ac003d53240c6fcb9312c85baab800bb2f4e478ad55dd7faff9e7016cefba80158007aa64818df97262590b7557001765e9c1b280368865881f4acf3c5ef4660d7fba18eec2ebf2ff04c216eaae102ecbd37365006d10cb103e959e78bde8cc1aff7431dd85d7e5fe09842dd55c205d97a6e6ca00da2196207d2b3cf17bd19835fee863bb0bafcbfc13085baab840bb2f4dc655273f10926925d346457722964e7d7b8b9bd72f98126620b7557091765e9b756b7408ee8afa772358ed6dc4927f7aa1db5d6e2f303f0c516eaae132ecbd36d3980d9caa7c1d19c37e3d5b088ae174ee7ae09c2e609858b2dd55c275d97a6d97301b3954f83a3386fc7ab61115c2e9dcf5c1385cc130b165baab84ebb2f4db27215bfd77569c928ac557eba191685364afa83089827ba2db755709e765e9b63703dd85bc13615092571256c288b32674237620e3051185c6eaae13decbd36c56c8e096458ceacca17a872d047748cc930b1201960a3d4b9dd55c27cd97a6d89652e6b7587ffdc4bfc170d988547418d0da49c2fc1494d74baab84fab2f4db11566f2f97e6623b4fc4f4432900ecab14c78b945c82943eea755709f665e9b62138f0b7dca326f95756aeae49f8377e243b5984b6052a21d5eaae13edcbd36c4171e16fb9464df2aead5d5c93f06efc4876b3096c0a5443abd55c27db97a6d8826fd5381f62fe68152780e11fd73c208b99a86ed514aa2b58aab84fb82f4db1036bbcc8eb9c5f52e21bc7ea37a4d66911df9339a72955fab255709f715e9b6205638bea840f21287c0455fc67400afa1e6b68cf4b52ad9965aae13ee3bd36c409532a2db4f4a4d3afd57220c676741c378313fa93a55cd6cc55c27dc87a6d88113266b416bfac2a1777aa6984e3466069b26a51244abb5199ab84fb91f4db102164cd682d7f58542eef54d309c68cc0d364d4a2489576a3335709f723e9b6204255ad2907d5132b15ab6fce0b8377a9a175eba08e2aeeea67ae13ee48d36c4083376caabc8088d8e323a5c40efd4d7b3d98199d1955df78d05c27dc92a6d881056ed955790111b1c6474b881dfa9af67b30333a32abbef1a0b84fb9254db1020a69c5039ed885e6445b5d3833eb9414f10ca8d062577f8742709f724b9b6204135f9c5fea876e4f408380985fcd8651dcc593fcc1af00b285e13ee49836c408254b4b1881e53f2138d3c758b7916acbb4376a55805e03090cc27dc9316d88104922a889b0a0e0c5297454d9671933bf631b1706fdbc07b61a84fb9263db1020914551136141c18a52e8a9b2ce32677ec6362e0dfb780f6c3509f724c7b620412216b47f6f59e5975d9e198d945b2d2587189e77f3f0207c6b13ee49906c4082432d68fedeb3cb2ebb3c331b28b65a4b0e313cefe7e040f8d627dc9320d88104865ad1fdbd67965d76786636516cb4961c6279dfcfc081f1ac4fb92641b102090c41b65427a58f3da4bd92949acfc7543371361b9c810587599f724c84620412170f7f00fc2180fe0147eb512d95ecd0618eae9336020cb2b43ee49909c408242d1efe01f84301fc028fd6a25b2bd9a0c31d5d266c041965687dc932138810485a3dfc03f08603f8051fad44b657b341863aba4cd80832cad0fb926427102090b4080a608de26a72c20c20b164a5c4ab0721b6f5ad106739a2f724c84f204121671014c11bc4d4e584184162c94b89560e436deb5a20ce7345ee49909e408242ce2029823789a9cb083082c5929712ac1c86dbd6b4419ce68bdc93213c8104859c4053046f1353961061058b252e2558390db7ad688339cd17b926427902090b380cb8618afd09aed88ed13e4252a8d86cc7b1b6ce06753e30724c84f30412166f1970c315fa135db11da27c84a551b0d98f636d9c0cea7c60e49909e608242cde32e1862bf426bb623b44f9094aa361b31ec6db3819d4f8c1c93213cc104859bc65c30c57e84d76c47689f2129546c3663d8db67033a9f183926427982090b3785798715ca6fd7040b9da0c1d20ebaec7275dc8dd6755870824c84f31412166ef3b433b66245d6339407a403238358588fafdedb7ceacb21149909e638242cddd0298cf791f1d492a4dbaa85c66c9330ca23e376c9d5b082393213cc804859bb905319ef23e3a92549b7550b8cd926619447c6ed93ab6104726427990090b37720a633de47c7524a936eaa1719b24cc3288f8ddb2756c208e4c84f32012166ee414c67bc8f8ea49526dd542e33649986511f1bb64ead8411c9909e640242cddc8298cf791f1d492a4dbaa85c66c9330ca23e376c9d5b082393213cc804859bb905319ef23e3a92549b7550b8cd926619447c6ed93ab6104726427990090b37720324636f49db4cd4b3b703f11a8aaeb233bd0372456c3ace5c84f32022166ee3f648c6de93b699a9676e07e235155d64677a06e48ad8759cb909e640442cddc7e552b347f4d35b7e4ba87243e9909d4879b83388e5b105798213cc809859bb8fb3668c1ab70cdf28141d470752871d109e348cd19b6225331427990140b3771f56cd18356e19be50283a8e0ea50e3a213c6919a336c44a66284f32028166ee3ea65b55f5a999a4cbcd417e9cc98256c2239659063d88af0c609e640512cddc7d3577d176209971c3174f5fb9126a9003f1f0d7cc4b117858d13cc80a359bb8fa53b0c8770e990bb1ab6b21f1a43b02878ea5d55866230af1b27990147b3771f49022b678ea983f8ed3a2a662c7dbe78ec80fd0709c46302374f32029066ee3e910456cf1d5307f1da7454cc58fb7cf1d901fa0e1388c6046e9e640520cddc7d2208ad9e3aa60fe3b4e8a998b1f6f9e3b203f41c27118c08dd3cc80a419bb8fa44115b3c754c1fc769d1533163edf3c76407e8384e231811ba799014833771f48822b678ea983f8ed3a2a662c7dbe78ec80fd0709c46302374f32029066ee3e910456cf1d5307f1da7454cc58fb7cf1d901fa0e1388c6046e9e640520cddc7d22016ec3c573760be06575fb31765fc631aeb841e6e18c231d4cc80a41abb8fa43f2dd878ae6ec17c0caebf662ecbf8c635d7083cdc318463a999014835771f487e5bb0f15cdd82f8195d7ecc5d97f18c6bae1079b86308c7533202906aee3e90fc43743b66916872ea87c3c0b3264140d208634f6dc61332a7640520d6dc7d21f712facf79f933688cdc4da95e42e0a99ebd08fad88c28094fc80a41aeb8fa43ed25f59ef3f266d119b89b52bc85c1533d7a11f5b11850129f9014835d71f487da4beb3de7e4cda2337136a5790b82a67af423eb6230a0253f202906bae3e90fb423e8d47c9ffdc71eaf3372ea0d6374f0948a32c16141ee7f40520d76c7d21f6747d1a8f93ffb8e3d5e66e5d41ac6e9e129146582c283dcfe80a41aed8fa43ece1bb5aa9f56599f328993f3a02bebfbbcfe6b270285095dfe014835dc1f487d9b376b553eacb33e651327e74057d7f779fcd64e050a12bbfc02906bb83e90fb366ed6aa7d59667cca264fce80afafeef3f9ac9c0a142577f80520d7707d21f66c69bfada7892f7c4c1965c4f955be05e29f9b9411284c93f10a41aee1fa43ecd75f91b3fbe8c17b4fff91b1eaa1da33bfeb79841f509acbe314835dc4f487d9ad4b35c0a4a7e57957cbe98bcd3a128f7a8335643ba1373bc72906bb8ae90fb359227dd9f6262d756764993f926a8346efb2ad247442701b8f520d7716d21f66b144fbb3ec4c5aeacec9327f24d5068ddf655a48e884e0371ea41aee2da43ecd621609c0856f1858555f2b2641a06b43b976f6edce09c2123e4835dc5c487d9ac32c13810ade30b0aabe564c8340d68772ededdb9c1384247c906bb8b890fb358658270215bc6161557cac990681ad0ee5dbdbb738270848f920d7717121f66b0c3c605cd84f254562c61f5a04f9b845c663f9ca6d4e1235f341aee2e343ecd61704d3125d74ad0d7d5904dc01e9ceb3877435f0d79c260fe7835dc5c787d9ac2d09a624bae95a1afab209b803d39d670ee86be1af384c1fcf06bb8b8f0fb3585a134c4975d2b435f564137007a73ace1dd0d7c35e70983f9e0d77171e1f66b0b4269892eba5686beac826e00f4e759c3ba1af86bce1307f3c1aee2e3c3ecd61684d3125d74ad0d7d5904dc01e9ceb3877435f0d79c260fe7835dc5c787d9ac2d02674a45b6c043262ed61a835303498e9330076f084c3a0f16bb8b8f1fb35859f4ce948b6d80864c5dac3506a606931d26600ede1098741e2d77171e3f66b0b3e25e4ea1a86734c43824cc8ccb7308b9f784437bf131027c6aee2e3c8ecd6167b4bc9d4350ce69887049991996e61173ef0886f7e26204f8d5dc5c791d9ac2cf623a60116f02fb3c5d5f94b2ad32056788d533af94c42431bbb8b8f24b35859eb474c022de05f678babf29655a640acf11aa675f29884863777171e4966b0b3d61aaa5d08972151cf24ab54a342df81dce18f47e2310ab06fee2e3c93cd6167ab3554ba112e42a39e4956a94685bf03b9c31e8fc4621560dfdc5c79279ac2cf566aa974225c85473c92ad528d0b7e0773863d1f88c42ac1bfb8b8f24f35859eac616540f18f6d1130f220cd120d5a36e1b8bc9b0e885727807171e49f6b0b3d574edcda8ff53ca519b107c21c111295be1dbb921a10aff301e2e3c93fd6167aad29cc0dccc0dbcceb2ed5ac3018835376e7b9803121618a04c5c79280ac2cf55953981b9981b799d65dab58603106a6edcf73006242c314098b8f25015859eab233428fdfd9d1b664881cd8b8586b75d64b285cc18587cc14171e4a03b0b3d56366851fbfb3a36cc91039b170b0d6ebac9650b9830b0f98282e3c94076167aac6591c982c3da95c49ed398ad9580bff53d8e3cf031620d4515c79280fc2cf558b3e4b890551b53b4ba7393daaa67626a25e09fa032c434ca3b8f25020859eab1508a96ab779ccf94f1b38a34d434a753f6856500358883d4871e4a0420b3d56291152d56ef399f29e3671469a8694ea7ed0aca006b1107a90e3c94084167aac5222a5aadde733e53c6ce28d350d29d4fda159400d6220f521c79281082cf558a4454b55bbce67ca78d9c51a6a1a53a9fb42b2801ac441ea438f25021059eab14816a90424733217a980505ccc2b057bf131a75c32888578881e4a0421b3d5628f2d520848e6642f5300a0b998560af7e2634eb865110af1103c94084367aac51e5aa41091ccc85ea601417330ac15efc4c69d70ca2215e22079281086cf558a3c415a79d06ff34003cf490e594e8a0784397d3d91442d6841f250210e9eab14770ec74c4db64902bf6b5844aa937237031f3cd71f885c7484e4a0421e3d5628ed1d8e989b6c92057ed6b0895526e46e063e79ae3f10b8e909c940843c7aac51da3b1d3136d9240afdad6112aa4dc8dc0c7cf35c7e2171d21392810878f558a3b4024cbb1a88aa98b327884d4c91efe013a62914f942e54828250210f2eab1476704997635115531664f109a9923dfc0274c5229f285ca90504a0421e5d5628ece0932ec6a22aa62cc9e21353247bf804e98a453e50b9520a0940843cbaac51d9c1265d8d44554c5993c426a648f7f009d3148a7ca172a414128108797558a3b3824cbb1a88aa98b327884d4c91efe013a62914f942e54828250210f2eab1476704997635115531664f109a9923dfc0274c5229f285ca90504a0421e5d5628ece01f411f4f0108af81aed97b1c72562ce436879a4db953ae0a40843cbbac51d9bf3e823e9e02115f035db2f638e4ac59c86d0f349b72a75c148108797758a3b37e0916d5e8da8540be882c1469bfb6db8b8660c533e5505c2a0210f2efb14766fb122dabd1b50a817d105828d37f6db7170cc18a67caa0b8540421e5df628ecdf6245b57a36a1502fa20b051a6fedb6e2e198314cf954170a80843cbbec51d9bec48b6af46d42a05f44160a34dfdb6dc5c3306299f2a82e1501087977d8a3b37d81d7fb73a7eb68ea04f876e93f1cbe0b3124eaf3b550766a1210f2efc14766faf3aff6e74fd6d1d409f0edd27e397c166249d5e76aa0ecd42421e5df828ecdf5e02113596d13cbd390ae3e247bd8daac6f57d18ea541f3e85843cbbf151d9bebb04226b2da2797a7215c7c48f7b1b558deafa31d4a83e7d0b087977e2a3b37d760844d65b44f2f4e42b8f891ef636ab1bd5f463a9507cfa1610f2efc54766faec1089acb689e5e9c8571f123dec6d5637abe8c752a0f9f42c21e5df8a8ecdf5d82113596d13cbd390ae3e247bd8daac6f57d18ea541f3e85843cbbf151d9bebb04226b2da2797a7215c7c48f7b1b558deafa31d4a83e7d0b087977e2a3b37d760105fbe612591d0fa85beb9e759c8d9b80b88969207d145620f2efc55766faebf20bf7cc24b23a1f50b7d73ceb391b37017112d240fa28ac41e5df8aaecdf5d7e417ef984964743ea16fae79d672366e02e225a481f4515883cbbf155d9bebafc0f104bb602f10a8bfabbf732c4a4f5bb0887108d3e8bcf117977e2acb37d75f71e20976c05e21517f577ee658949eb76110e211a7d179e22f2efc55966faebee3c412ed80bc42a2feaefdccb1293d6ec221c4234fa2f3c45e5df8ab2cdf5d7dc0494b65cedead717a2a5e18e1b85d5d2f07ae066f4601c8ccbbf15669bebafb709296cb9dbd5ae2f454bc31c370baba5e0f5c0cde8c03919977e2acd37d75f6e1252d973b7ab5c5e8a9786386e17574bc1eb819bd18072332efc559a6faebedc24a5b2e76f56b8bd152f0c70dc2eae9783d70337a300e4665df8ab34df5d7db8494b65cedead717a2a5e18e1b85d5d2f07ae066f4601c8ccbbf15669bebafb701ea9244a93bd65ac218259bb6718e258bb9e68db8c05359a77e2acd47d75f6df3d524895277acb584304b376ce31c4b1773cd1b7180a6b34efc559a8faebedbe06b6e9d72558196852cf8ee592c1b15d9abbff6b30167a6adf8ab352f5d7db7b0d6dd3ae4ab032d0a59f1dcb258362bb3577fed6602cf4d5bf1566a5ebafb6f61adba75c956065a14b3e3b964b06c5766aeffdacc059e9ab7e2acd4bd75f6dec35b74eb92ac0cb42967c772c960d8aecd5dffb5980b3d356fc559a97aebedbd86b6e9d72558196852cf8ee592c1b15d9abbff6b30167a6adf8ab352f5d7db7b062ef93918165afc226b804aa4e9453ae03c2496302d0f15cf1566a5fbafb6f5f51f17fcfd92de23c1a36314c9386cf56b3c6eec305a386bae2acd4c075f6debd2ff5584c88be473001328a911d6bc6a813d039830b48b176c559a981ebedbd795feab099117c8e60026515223ad78d5027a07306169162ed8ab35303d7db7af24be7b9def95b9f77d190523c6c0d429afb8342092d2469dc1566a608afb6f5e323e1cc6ac919c1a76fe6cc70ce78ad30a348e00f5a4a77b92acd4c125f6debc547c398d59233834edfcd98e19cf15a614691c01eb494ef72559a9824bedbd78a1b998a57fac989558c6159bb3040dcbd3965dc3a692b82e5ab35304a7db7af13373314aff59312ab18c2b3766081b97a72cbb874d25705cb566a6094fb6f5e266e66295feb262556318566ecc10372f4e59770e9a4ae0b96acd4c129f6debc4c68deab6cacaecd642fd0f5d178650de477713dd0495dbb2e59a98254edbd78975dcfaf862fc01d802c68139ae72843c39b24d79d92bd1a5db35304aadb7af12d47b1b7b935e2bdb825964f2dc4aeaf81e28c0b38257bd8bc66a60956b6f5e2591b75c81f4227fe2817f2c6537fbb86fe715a726d4af95579cd4c12ae6debc4b136eb903e844ffc502fe58ca6ff770dfce2b4e4da95f2aaf39a98255cdbd789626dd7207d089ff8a05fcb194dfeee1bf9c569c9b52be555e735304ab9b7af12c467c099a6e7a273f88c5c5a93f43a5fee3715ef6757cc4fcf6a6095746f5e25875b938bfaa5a76aa8e57edd1fded2e7d71a6e3acbaf9a439fd4c12ae9debc4b0d433970a221b1580997c3e237b403f7a8e11ed1945f362b40a98255d4bd789619128539f119c532cafc4dec675e66174c6e7fff25be6dfa825304abaa7af12c31250a73e2338a6595f89bd8cebccc2e98dcfffe4b7cdbf504a6095754f5e258624a14e7c46714cb2bf137b19d79985d31b9fffc96f9b7ea094c12aea9ebc4b0c4203c2835a48c190faf358b32e98ee25e2042552af371781398255d54d78961874078506b4918321f5e6b1665d31dc4bc4084aa55e6e2f027304abaa9af12c30e0d02f9836892e6f6899c54c39c99b1732d4bb0a8cdc7844f609575545e25861b1a05f306d125cded1338a987393362e65a9761519b8f089ec12aeaa8bc4b0c36340be60da24b9bda2671530e7266c5ccb52ec2a3371e113d8255d5517896186c6817cc1b449737b44ce2a61ce4cd8b996a5d85466e3c227b04abaaa2f12c30d85c41f0e35f90f220668b7431bff93f2d80fd6689dc79e8f709575546e25861af44963a73958466f899dd105b7650a655ae3d2910b8f575ef12aeaa8ec4b0c35d153ecd94016b50a9008048aee2ff74a608bcae1e71ec8fdf255d551e896186b92a7d9b2802d6a1520100915dc5fee94c11795c3ce3d91fbe4abaaa3d12c30d7254fb365005ad42a4020122bb8bfdd29822f2b879c7b23f7c9575547a25861ae43608c54ce1bd07ffd0c86d6f0e59cd2af227ccf08f6622fa2aeaa8f54b0c35c76c118a99c37a0fffa190dade1cb39a55e44f99e11ecc45f455d551ea96186b8e64356de05d56a2b70fe7ddb42fc55ca674e18fbf3d9a2fe9abaaa3d62c30d71b547d346d910fc825ec95e36055e8e14796057b7b7b3603d4575547ad5861ae35350cc187f8821303a5f1eeb8a22fea89d84d52f3f66daba9aeaa8f5bb0c35c696a19830ff10426074be3dd71445fd513b09aa5e7ecdb57535d551eb76186b8d260455eccb86acec6648de2da7f1dd2220d77a7ccd9b852a7baaa3d6fc30d71a34c9d16464738204495e1edacf499cc3ec731ab96b372495075547ae0861ae345254c853964d2c340f88a0351df91c0783aa5b32a66e636a1eaa8f5c20c35c6894a990a72c9a58681f11406a3bf2380f0754b6654cdcc6d43d551eb84186b8d1221446d9269ad8fbbaeee353f74a529db96d928a69b9a7e88aaa3d70930d71a234288db24d35b1f775ddc6a7ee94a53b72db2514d3734fd115547ae1261ae344611240ef67d18c1a6887efcf5c8f2cf6907a6fe976e6b9e23aa8f5c25c35c688b22481decfa31834d10fdf9eb91e59ed20f4dfd2edcd73c47551eb84b86b8d11644903bd9f463069a21fbf3d723cb3da41e9bfa5db9ae788eaa3d70970d71a22c1532d060bf288fec10be0fa63df4a342e97a50b8735e951e547ae12f1ae344572a65a0c17e511fd8217c1f4c7be94685d2f4a170e6bd2a3ca8f5c25e35c688ae54cb4182fca23fb042f83e98f7d28d0ba5e942e1cd7a547951eb84bc6b8d115c35a8dbb2cfa7021852b6a529e6034211f814e1c09af64cf3a3d70979d71a22b76b51b7659f4e0430a56d4a53cc068423f029c38135ec99e747ae12f3ae34456e62b5c77814fe8b1917a0bc9f8e6b30428c95e2ff6bdad7cf8f5c25e85c688adb517de79d005f98e9fc07a1371334887fc56e21fbd7b753a01eb84bd1b8d115b52f0e27e6d721b48bc4d56a661cc738fa371e9ff4af704b413d7097a471a22b695e1c4fcdae43691789aad4cc398e71f46e3d3fe95ee096827ae12f48e34456d2484af84832e954e6e01bd190697b0be388bcdbcfbdc2d105f5c25e92c688ada31ca8493d3c352c858cfdcb18c9543fc1bdbc139c7b87460ceb84bd268d115b453950927a786a590b19fb963192a87f837b782738f70e8c19d7097a4d1a22b68a72a124f4f0d4b21633f72c632550ff06f6f04e71ee1d1833ae12f49a34456d147154a296b80be6e434b480be410026089a22f8e0dc3bd4685c25e935688ada276ebb9dda467a5080362f2974785e740be0884dbeb8794cd1b84bd26bd115b44d69899461635723b839247ae0e71b10126d52f77a70f43da47097a4d8a22b68995f25816f9d10ca283f0f1db9c494481f86e84af1e1ea1f49e12f49b24456d1314a5d5b8c108417084ae4636b7f86b839ba12f1e0c3d5e294c25e936588ada26120cd0fc4f76ab0c8628eeecef56b986e20683fbe87ad692a84bd26cc115b44c1419a1f89eed56190c51ddd9dead730dc40d07f7d0f5ad255097a4d9822b689820f4697c0b40d45d95701e333cc0c89b32de35af71eb748ab12f49b31456d13031e8d2f81681a8bb2ae03c667981913665bc6b5ee3d6e915625e936628ada26063d1a5f02d03517655c078ccf303226ccb78d6bdc7add22ac4bd26cc515b44c0c064716b276ccb18284d5419656c275941b5d33b5f5bbe95997a4d98b2b6898170c8e2d64ed99630509aa832cad84eb2836ba676beb77d2b32f49b31656d1302e191c5ac9db32c60a135506595b09d6506d74ced7d6efa5665e93662cada2605c3238b593b6658c1426aa0cb2b613aca0dae99dafaddf4accbd26cc595b44c0b864716b276ccb18284d5419656c275941b5d33b5f5bbe95997a4d98b2b689817054f52efbaff8b308676e5ac2ceacda7e17e8d2bbb77ecf33f49b31666d1302df35fcb6a43653e8c89ba2dd7d93b7dcf6dc1401746eff4268e93662cdda2605bd6bf96d486ca7d1913745bafb276fb9edb82802e8ddfe84d1d26cc59bb44c0b7a6405333dafb225da3b519dee453d9bd61c9261cebbfeada4a4d98b38689816f3541cbf2835c6ce6c436963d480d95fa6e5671f9a77feff4a49b31671d1302de5344bd6fd41f01f905398efa0f810e74877109b31efffa29593662ce4a2605bc96897adfa83e03f20a731df41f021ce90ee213663dfff452b26cc59c944c0b7925d41b4a1de2300f91b29e67bd6a1c51c8884c8c4c0002e574d98b39389816f234695c1f092a884aa0319f4efa3a1b233bd4bed86800200af9b3167281302de45193ddc8dfbb38c0bd2fa11d73da18c6226da370a0005a5603662ce512605bc89327bb91bf7671817a5f423ae7b4318c44db46e14000b4ac06cc59ca24c0b791264f77237eece302f4be8475cf68631889b68dc2800169580d98b39449816f22456013d1cb3fee3166496b6b1e36a8b0be314144d002ecf02b316728a302de4473814d2e63e6048e495f3955bbd333e12726a8497005f4206662ce515605bc88d7029a5cc7cc091c92be72ab77a667c24e4d5092e00be840ccc59ca2ac0b7911a6c65a445cfe3a64a24947d66eb2b204475ec6e59017eac1a98b39456816f223364dda1387629cf4c15ef22c5ccb46883981b38af02fefc36316728ae02de446555cd9b1dc2b6214ff8a46d838fc6f901dc78cd5b05ff9c6d62ce515d05bc88c937ad8ee85bcec557be0f02ff15ec19fe6533f6b30c00dcdbc59ca2bb0b7911916f5b1dd0b79d8aaf7c1e05fe2bd833fcca67ed661801b9b78b39457616f223226ac8944e459d9816c50233f44e0e8ff4411236c93005177016728aed2de4464361a38149619db2e556ca8fe0927b47e32e66c98f600bd2e12ce515db5bc88c854f595b3f999de8827a5b47b91b54b7c1090fef1bc01949c359ca2bb7b79119092ac50f2c099e53bcc17cb76a2d07977cbe623a3480343787b39457706f223211558a1e58133ca77982f96ed45a0f2ef97cc4746900686f0f6728aee0de4464223726955cfcdbd1aad2b905a0aa7c85eda5cb44cf00d2821fce515dc2bc88c8436e4d2ab9f9b7a355a5720b4154f90bdb4b96899e01a5043f9ca2bb857911908668acae20c9d1c96317aa3e7aa0503fb1436f6f39034bac803945770bf223210b5d6bb4ee6a06157dfc1aa4ed36fea75d33213a6f0698fd01728aee18e446421546e9c289aa6eadb3c4fb71d2645b76b51284d0db0d339e03e515dc32c88c842919e5ddc02b3fde1f56bd0b9cbf151564d14bfdb31a68e008ca2bb8669119085133cbbb80567fbc3ead7a17397e2a2ac9a297fb6634d1c011945770cd223210a267977700acff787d5af42e72fc545593452ff6cc69a3802328aee19a446421445b4146ae306173b282ae84ddef06d32136a24995d348a447515dc33588c842874294e60937256a1cd22331b3d46bce3d1986ef28a692ec8fa2bb866c1190850d113c24bf44ad56f1710c8b5f9f35c474df503a4e4d277d2045770cd923210a192278497e895aade2e21916bf3e6b88e9bea0749c9a4efa408aee19b24642143244f092fd12b55bc5c4322d7e7cd711d37d40e939349df48115dc33648c84286415f37ea6fbcd3a43552a82f4f00c4ba1a6c42e6f693d8d032bb866ca190850c72be6fd4df79a7486aa5505e9e01897434d885cded27b1a065770cd943210a18e57cdfa9bef34e90d54aa0bd3c0312e869b10b9bda4f6340caee19b286421431c3bae4de4b4cc54d2761a3f9f76c08507e263cf7849ee0c1a5dc33651c8428637036ef4763ffb2c5cb8faa736e3df320a7109faed93ddbc35bb866ca490850c6d06dde8ec7ff658b971f54e6dc7be6414e213f5db27bb786b770cd949210a18da0dbbd1d8ffecb172e3ea9cdb8f7cc829c427ebb64f76f0d6ee19b292421431b41b77a3b1ffd962e5c7d539b71ef99053884fd76c9eede1addc3365248428636836ef4763ffb2c5cb8faa736e3df320a7109faed93ddbc35bb866ca490850c6d06dde8ec7ff658b971f54e6dc7be6414e213f5db27bb786b770cd949210a18da067cf763cd52d99e60b6ff5b0ee2aaa96eec11761f770b16fe19b292521431b3f5bb1452680bdb683e3a61359d2b37d2889c48ac0eee306e0c336524b4286367d4374e2f9d7ddefbf94124eab9bc5224bbfcb717eddc7b1c2866ca497850c6cf912fc1ea0861e6236f4eac54f2de86c922bd93efabb9107860cd949300a18d9f125f83d410c3cc46de9d58a9e5bd0d92457b27df577220f0c19b292601431b3e24bf07a82187988dbd3ab153cb7a1b248af64fbeaee441e18336524c0286367c423f34db10755946f741c527165a18c8c0b0c53d2dc89e03166ca498150c6cf8747e69b620eab28dee838a4e2cb4319181618a7a5b913c062cd949302a18d9f0e1bdf8f70f3b8d4759d3771bd8ce45a2ad873ab48722924c69b292606431b3e1b37bf1ee1e771a8eb3a6ee37b19c8b455b0e75690e452498d36524c0c86367c366f7e3dc3cee351d674ddc6f6339168ab61cead21c8a4931a6ca498190c6cf86c6b0ed43474292664b681b5e45d80f9516fdfb640914aca35d949303318d9f0d762300115beb4cf8139c993c0b1601a9d8c01c87e2297386cb292606731b3e1ad50725ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c3592cf70e5d7dfac62c4d78c6eaa89ae26634ce35ef8a61cdb5ca49819fc6cf86b159ee1cbafbf58c589af18dd55135c4cc699c6bdf14c39b6b9493033f8d9f0d623fee9222ce4d9b6902a943a298c9b1937f7b33bb2988dad8292606801b3e1ac30bef7cf272fdb989d218af3d27f18b21ab38c373531359b1524c0d01367c358517def9e4e5fb7313a4315e7a4fe31643567186e6a626b362a4981a026cf86b0a2fbdf3c9cbf6e6274862bcf49fc62c86ace30dcd4c4d66c549303404d9f0d6145f7be79397edcc4e90c579e93f8c590d59c61b9a989acd8a92606809b3e1ac284b0a27d4063e1b54ee511bca7576da155fce933231373f1624c0d01467c3584f2226a854e2deb961a9685f8ce14bdc256bdf82616270222d4981a029cf86b09d444d50a9c5bd72c352d0bf19c297b84ad7bf04c2c4e0445a930340539f0d613a14acfa0061dd683e7267a62b7b8d98905bc0658289c22cb6260680a83e1ac273"
- ]
- },
- "shouldOverrideBuilder": false,
- "executionRequests": [
- "0x0096a96086cff07df17668f35f7418ef8798079167e3f4f9b72ecde17b28226137cf454ab1dd20ef5d924786ab3483c2f9003f5102dabe0a27b1746098d1dc17a5d3fbd478759fea9287e4e419b3c3cef20100000000000000b1acdb2c4d3df3f1b8d3bfd33421660df358d84d78d16c4603551935f4b67643373e7eb63dcb16ec359be0ec41fee33b03a16e80745f2374ff1d3c352508ac5d857c6476d3c3bcf7e6ca37427c9209f17be3af5264c0e2132b3dd1156c28b4e9f000000000000000a5c85a60ba2905c215f6a12872e62b1ee037051364244043a5f639aa81b04a204c55e7cc851f29c7c183be253ea1510b001db70c485b6264692f26b8aeaab5b0c384180df8e2184a21a808a3ec8e86ca01000000000000009561731785b48cf1886412234531e4940064584463e96ac63a1a154320227e333fb51addc4a89b7e0d3f862d7c1fd4ea03bd8eb3d8806f1e7daf591cbbbb92b0beb74d13c01617f22c5026b4f9f9f294a8a7c32db895de3b01bee0132c9209e1f100000000000000",
- "0x01a94f5374fce5edbc8e2a8697c15331677e6ebf0b85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d0000000000000000000000000000000000000000000000000000010f698daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a75530100000000000000",
- "0x02a94f5374fce5edbc8e2a8697c15331677e6ebf0b85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d098daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a7553"
+
+
+
+ engine\_getPayloadV5 example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0x0000000038fa5dd"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "executionPayload": {
+ "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
+ "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
+ "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14",
+ "blockNumber": "0x112720f",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0xbad2e8",
+ "timestamp": "0x64e7785b",
+ "extraData": "0x",
+ "baseFeePerGas": "0x7",
+ "blockHash": "0x1256f99fb899c2de0aeac0c5aa6aad69de188b6a0f4ac29f2d075a53aa3ed0e4",
+ "transactions": [
+ "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90",
+ "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee",
+ "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d"
+ ],
+ "withdrawals": [
+ {
+ "index": "0xf0",
+ "validatorIndex": "0xf0",
+ "address": "0x00000000000000000000000000000000000010f0",
+ "amount": "0x1"
+ },
+ {
+ "index": "0xf1",
+ "validatorIndex": "0xf1",
+ "address": "0x00000000000000000000000000000000000010f1",
+ "amount": "0x1"
+ }
+ ],
+ "blobGasUsed": "0x60000",
+ "excessBlobGas": "0x0"
+ },
+ "blockValue": "0x10a741a46278014d",
+ "blobsBundle": {
+ "commitments": [
+ "0x85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d0"
+ ],
+ "proofs": [
+ "0x86e25aa4267f8b11aded591be91fed683d2a708b7c77a910ed9e18ab6a2f976429811ea034319321eb06d99f270137f0",
+ "0xb0e21a34db02b2dc360e448c6a7315cae1c455cb234fe6c4a9d74a8ee45b8fadc1012b1b3d07912c692782cc642ad200",
+ "0xae7b2bba4d5c6e90609182319d5182c4a9bf194420cfcd88b71ca35f5c56e94849510a39afef43234562dd604657fe27",
+ "0x87aa48a6e5e3bc244c78f61d73d6c56981e691aae27976af87161d606eeb6ef530be60b4e47906b29cce6c38287e3f9a",
+ "0x80aa73320798ba8e5eb4dda65d644566baef3d8ed6b044aa9f8b2847912f48f0b6f347a2a420e7988e08d9602fb7f000",
+ "0xa51680ed2b9df881a450dec27afdfebbf413449b1add1615e91df7e4724dca791bc4840a67fdf1362e14d537c1849ea8",
+ "0xb71f1b3cd9ee0a04950f49db099260f8955f780bdb13681804b0a5c4c3f7600ed228b06bc26ef47c0cd3281229888491",
+ "0x8e199f56faf53b3e409eb337133ab166eb340e450597e36bed68bdae1903fb7dd6e94abffcc439a1f0e230eade7b4e3e",
+ "0xa493d99eef20f8ae68f21de7485b35241a04bfc869fda00433ec8d29472dd431f876a40e5452f37f54c5dcad084d1d06",
+ "0xa85b29f2f1284d8fb9dcac7ee5b2b0722c3152a0206f670d661bf05aaa958851554799a4c77ccb0d26d6afda7a777a35",
+ "0x8c8765ef425e827627772a4788fecd657e2f49b10b21b67bd045b0b7f4bc8dd16fe1f24d1165e6d17355188970d3be02",
+ "0x825f8cb054b614692fe329a99f6c796458210876b928e453e337438fc3e3ea149a0f8a748587014e7bd61fdf0c67fe53",
+ "0xb4a020ce8a9b5446e327f312bba666e7ac64b721a49d0729c7a64de70150a4b6285445e3510bb159cc3727dffdad80dc",
+ "0xadfaa120ef4beb34e3e63aafbc2e278a2298712d45da0076ea453a94424b2418b0f3e32d56f5b55f40cf4060ef0300e3",
+ "0x85739b3691d1792aea016ae28920ad0a536cedc29c7970a38312a697c2af76ecb6d6a9b1c324a92e4a474eb97fbc2e10",
+ "0x9182bd44f5eeb8b68defdec6fff4306b1e4163e936ea201511125163355d5847fcac3452896de4edf2820b651dc556f3",
+ "0xa3fb3d89a5bf575cfd441984b7c43d416f0f37f7120438d43b07907bd114d7421dd7b09bb72aa93e2a3efbeed2e463b8",
+ "0x9954d156dfb402a786659b38f97b95e20dd7e3d9863ba8c00e24e0005869f6cadfb642ff53b36aa9d177963af1a3ccb8",
+ "0x9362481e998dedf85e71e91be5a69612356f0fa6f4412c6e0135bcc5acd11c8ec293c4de7b732feb1012cc5966c66b35",
+ "0xb82561f0a3c9e27af7818876606b5fa7336b68942b0d8828785088e5ac3262af10a27c2a8173bffca5e1b2e226846fb4",
+ "0x8cca55ee5bf0cf40d203dcf638324818edc236d4362d44300e62b384ef63a60979616acc11190caeb54fcf6e7fc6dada",
+ "0x869b905cdf5f8011910a4a1f51cd807f78a99af6e7c8c49f89cfb44c0b98192815a6fabaa5f37213f7e7b328deb761f6",
+ "0x99de2955902ffbcaebe1597675971a7c2379997b1837eb108725b892190fd69ebab76579a33b6511553027d533c37a87",
+ "0xaf3a70699c8b8f56ffb9a5162fd5db927aa5181fdfb1a0f34bd3a56a1eebec2551577407d4c2dd559ef448ee43b5601e",
+ "0xa094da1fdb7087b566948b0f7b341b22789ac3b68f52f59a8f2c37aa8bc668bcc9cb2c3ec3c34b2d176c17d76910b65a",
+ "0xb6dfd926d2d34b7c18a72720e149f376bcfe0a1ce3046db3a62023b0a322631f44f0e60707b47e378d7a6d1b0a0f3b90",
+ "0x84397d78f9cdf3664cdf632be52221bd85126455f0fad51b7c16d8ce20907d208c3e525a0eceb73826ec1c2b7f0fad7e",
+ "0xb1c728e3e0800896b6ab33fe5c7bf2242387b19883e982fbb27499c6bd160c253f03249a69ba208af7141f714836d226",
+ "0xb39027b971f1a9883d0e32d5fa1b78e848c70ef303fa3a1dfa4602d1ba021b4fe09ff88952c2daff5922a5b40c5f9cf4",
+ "0xa226dac589e35af5f046bf9b5e4d5c9b20d490de45d7529d7d71767f8adf2c65a7ad0699d3e3c1bf25f6a1518107affe",
+ "0x828a0c058a389cdadff01663ea7dc13eed1ee5b0c98b578558b27479ca79b31849103d0fd037f074e4769b66f4f92d39",
+ "0xac60270bec8e7d94f50ac2ceaaf146328717144810983e47a8e2e9b56d8e222a478da5c3f9b9cbd37822141b2d153cc7",
+ "0x89130390f58756df6d968d0c5603adf16e4f91b2d1be5496c8f9fc4097b07132986ca38bbc30001523a0cab497d4686d",
+ "0x9793e67eb7497c13f29cfdc71ed41afc8dc32030e2cd9022472e19d4f546218c698d98419a4ae87dd9cf7706b8482a21",
+ "0x8874f9a46848d5125c7ec6364238517f6c4a92871af95d20df06c09296fda06d70d4d580714f0612473264b41491ca1a",
+ "0x957c13c871e1e933e4b6dcd271903c2832a1adedd9943b5ab20208974f23902cd5d042dce5f57283287c5d4aa684a5bb",
+ "0xb4485bc545f2cb2ed1dadd336cceff81f60b6bfddfcaee2552c62c55451a753087a732275ce1a255ad5e17dd4f474a53",
+ "0xa1ca4f7bdb69cee6d3b1606a1039b1153e2f337aa1c9d9159c5837421b60d6d5816df853d7e626c09ca65bf3038d73fc",
+ "0x825d5addbabfd84e3e2193ecc6c404c5b98e9cc362759963e1dede1b8df1a34fad93e5d21c8ddb881532aaf1c43377df",
+ "0x88726caa7caf5e3ad676b0a19a131d8ce312706004350e822114d4a38fd460176db6b839ccc6b206d89a39a42cf421b4",
+ "0xb867bfedd4b880d7534634be08eb2bd5b123c630ff66048d14e5eb14de5598163c535b2441821cc0ab430e9cbd19edb0",
+ "0x81a16249eba683ff215056b0ef3b36f35ad94e7108fed53bd2bc41f8365b974540d93d650b5e92bb4e3574105b20f690",
+ "0xa34202c988aa23dc3b956d968d686659fc54804b81e2ea9dab17b5b34daa27c6c6b93fd7787683bd926ad9d7c0189838",
+ "0x97410ecdad067ba2c45a6bb02a600cf53ca5adf197c79a4f7d753d367615ca84a6fcf761cd22b735294da7f1436a8029",
+ "0xa65339363cdf8ec79a17798b856749576c8f227e2a01b88b68acf8681e0b0ea1d7948467f6e37b7da8e0d2a6a940ee92",
+ "0xb05c41255daff039227a868b0ea367cdc98391d15cd6c7b2283f7d6f8a34e43605df614cf54e08cb03d398bd0ee01451",
+ "0xa3b9f379860c066366a25eb19e4eebc07d7c0aaedf604e119c58e922cb415e01d1a4a6c7aa31d298b185ba17eed0d386",
+ "0xb1e233985ca29d71672924b59f128533ccc18c0a4277848922bce2a2192724e49c3eb092acda033982da73390deb8386",
+ "0x994b88ae88c4258609131215527d8627d78e0cac281154a078480f82c23c53b3af85edde00e91e28586f0344653b0e07",
+ "0x8d7c5faffb81b211d8e5b5504813cba99112a2c7ffb98354590c3751512aebfb6766f0a31470b9a3a3ad437eb63daf6b",
+ "0x92f884d9aaace95a7245f9e9e4d2b13583ee9d2a1319ab1144e7f7609043825b6c90e11b28e3231e894294abe3bd9757",
+ "0x89fda17e02325a9efd7e9eeb58806a06108a9e3e8cfc88f154181b12ef86f8acd7578446f440eb9084bbfce19f5845ce",
+ "0x84e4766c08d0cc41e064d70b1eb6795794171fda12f18d1b5bed92da9be8d6942e8bd2252b62190b7ac8fa2a2463de08",
+ "0xa82bc246b1ab17b5c1c0cf4b094e6360f3c45c011b58f42ed67cf5315ee21e9240f95c6cb1575708dd6f4e2ddf910415",
+ "0xb25a0ec2b3665d6d9b6c2624ec78238a9b509bfa7e8f8dd5950215544a5dcde5eafb94bcbd808f3fa42eecf7a7cb9042",
+ "0xa26ca2b8ec55fdd008f9bcbd9544e6bb207fd7d53cc20f3c999cd172e87624e0fbcf17aa877d525728ce3b3466771f40",
+ "0x8149be780972f66e77f04d2a13e45e261ca524f8b606e89acce87b239e7271303d564061eaceff906647859d2d42e5eb",
+ "0x84b7449c4c0eeeee21faa9322ab6ca1867f5750b3a131c53a99253ced17f38952ac4354b6803992447d982f4d78c5725",
+ "0x88ff8542284eb2ab763f0f7a8575bf3e8df70486f77f2a4e0586ddbc868be3ab55b5de40266a27728f33c6a3d65ef021",
+ "0xa41974b8af2300f4bbe5a6c216a43ea843e73e1f5fbe75af4889b839ec4efe526afe135f6eab6527f6259265bcc5960c",
+ "0xa46b0c84874f8c68332f0e84a0a79faafc388fdeb042ec594ee791f404593e351c81d99250fbf89d7f546c8723d93e54",
+ "0x8941103d53775af3471041e919d2b04381c7b784bb09162d9b5769a1eaf31ef841a8d644acfec115f31aa365390bcd56",
+ "0x9407270997a076920807ddbf649989d4f23995e50737e1ec59b0f5c6872e4b00ea9cea6e0db518412c07dc9ab8cfff32",
+ "0xacf78c7277eca2556a7a02bf073e263dd76cc893ef34e2a9bf6d863d1f31380d6aa3aaf84be391b7ee67851e7e3e2a51",
+ "0xb35739e637e29da4fd97f3ab2f533d6552dc4ebee0b524acd50df904e859e277e30af51c03ea25c334cf1fdd1fe6b7ff",
+ "0xadbe185db253b31833ce4c90beae4680cb5f2aaa7e9bed5ffbf70c7802f7cd225e9bf4e1f981606ddbbd7bfd0d8d47d5",
+ "0x8760da810a8bc4a541e1510a8aee88ed68ffaeadf78f845e2ca81140baa9825b113b737e785c17466804be37a9087dd0",
+ "0xa5f7b22a49b72be48c58fac7f6fe16ce1cd460e6b099ac8332376f0848d9708f51ef5ebca969f88bafc5c0c269bfab7b",
+ "0x93fa76c091c53668ab655f95df513ca9ae396d401e87550fb8f0d12a99093837c0d56b263424145ac151d01aa508c561",
+ "0xaa98b749610a2ae84e90e439baf19941649bf6ecd95e33bb9f5869e4eab11e545f7d18819fa258b082aacdd90ff2cca8",
+ "0x943b478c84fa90232dac1489c55595d3ef58f3f5c2a251752faaf5da156da1bb904894eeacdf4738d92a77f20f47a3e7",
+ "0xb23af40d862c4737ccf4f6e5d306562a0f2630f6090eab77fbbafc467801ddcce31226c24bce3e1093f8e4a40c13f61a",
+ "0x894be76919ef1a047d420c8711d2b006bd7b74214e8793eeb72dc007ad8051750a06b06cb44567e0e9aaebfe03d7a6d8",
+ "0xb5656897119fc6fc298ae89cd6ff817aa5db9f5bc9ddfa2c38efb0f8e63e7821f29a5b5b2f9cb4ad1dba0f42166636fc",
+ "0x972a25868d4d3b197c0d1957a112859fa67a582f755d106e4376e90386ce0ecaa671236e92c23361c01d11fbed4ed009",
+ "0xa7357c970d0b930186f73e098307d3ff229fee5d7c4349797ff4fa81dbee3e03bc01228d37d9f4d7510083bf094bcc5b",
+ "0x8e0b35320d5434438d7a538d5d30212c234b1d7a6e757c8cfc0988122f01d7307635641fed9b8853d58b7a33e5a5c9bd",
+ "0x99b2b7659be9eea782d0662db7246ba6ff4926efe58d04061b39d5ed38fbfc17a195e68a879448c931e5a1d9ea07deaa",
+ "0xa185a1182223e3b8d325ea70986007697b742f3af0093bf5691aa12ab85cae941bc83f27bd6ffeb669f244011e00e85c",
+ "0xb70b9416f6b9593ace7393eb51a732a05b6e4b4a104ed1860746740ba3776f5ac7242c3bb74e07c89abc637ddfe42434",
+ "0xad88a5cf5f7c5384a219cfb4c574177cae1beb0b53ed9e3a4664425b0dadf089eb8c1fdb5cccaf53f568c7cbcbccfb7d",
+ "0xa54c98768bf964f1c70212a3c00899c915639af499a5013adf751e3d66cfa467eaea8cba94b5d18e77750ad15560b46f",
+ "0xa6bf8d0fb3423977a524325f8acde7076c17176a9ee34d0d8450f765bce1fa09a77c6c98dfba566d4c5bbe4e6051537f",
+ "0x86423129a9e19c09d3038eb463ca4400d1d0b13085b98fc5ada3eced6ade97a1aa691ba34109dc91573544fb58445d8e",
+ "0x80210e5daf4f5404cc1c7f9c06f76a1419b327f5f5535f461a71d133ca8041c76c8fb03069cb588b2481c8715ddebe0b",
+ "0xaa4d389bb1ecad854eef5991a1bd7b12c6b36db9636fa7804b2331309c6505cf0580e1a52e9c337e9713f1889ef5536e",
+ "0x8c0b9b02a47c690b61671d06acc0e392b735e66c427b2d79cee4b334af5427005e0c93f9c752baa61724a499dfba1457",
+ "0xa57bdf53fef5336958a0adb043a76d575bee2403b62782b63725312a1b63ed5b4623133c8dad9409ce8c228146ddfe46",
+ "0x98ce0ae4b80e7fb67603c1d6b131aecf14c2b9604b2976f042c5cff8ebaaa949ecda365cfdb0b610eecf92ae395f05c6",
+ "0xab41735f9a3822f8b3a8fb0d996b0a5c644d6ebb31802b9cd953b3b25ef85fe183be8ebc8b8165d41a3ced8964bc576e",
+ "0x99b63f76d140709975e97e391ecf8c6deb1d3e2fda082bb384cebc431f9d092b443f9cbecd3796d6e6cb0f44bd4fa778",
+ "0x88eeb51124121fe5417d1f95fa26d462d1f519507cc9735f60f99e172bd7cec218c391cc962e2bc6175412e3b007f405",
+ "0xa098aeb8434774ef374d8caa7e49fd05a5997994f55238521208d04b11315a6de3a41bb49a471a786b8d6fed49fb9779",
+ "0xa9107964fba3b866072373f725bdb484c754d74369bebd152cd0e5d6a90ed4ac6a9cc2475eea5cdcaaecfa645df5a8f4",
+ "0x9473d4fc231ee8b7d0b92632628cd409fa99fb45f09014b0657fd7c4572e272bfbfeb9261d3d202d560db00dced3a3ae",
+ "0xabbf636726c15d26ecdb15c926d269ad09b49f17b1245dcf5d0e2879ca2d7f35169e6e960d540644afe2df8c2ec37e9a",
+ "0x8f17d77e20c608736a6a1982029db24b85d1dde720e5c5de218fbddc762e44b02b1a265e6767a672981abc570aab2d2f",
+ "0x92b28a50b05b98c8c53d87a3a91207fe1445a81dfeed0f7dd1a4e447982fdd7f1ddd61dd3a8e93906f89de44c07323a8",
+ "0xb93f1d97f20d8c05f3893b884af69590322a2d58d26150d34c3f259a391f74f58172a2bd64839aee0465bb186fec88b7",
+ "0xa3945b0163af9aee9d180a48716b0950af084f778539ac54834b7f0359b7c905740a26a2612d25b87916fecc3f0d2d5b",
+ "0x8e8055ace63ce48067a6aa357a420af43f90bf92acf0819642d9995e77879433ed9459bdb6a9c6a04d13b04fdd5aadbc",
+ "0x96375a653966f5490dddbfabff9a1935e7142b3bd1733d2faec596b8da13cd6b612f692733386b73f38c7b3df3bc6385",
+ "0x9771793f29aa9d6739771f560798fa64859a50079d6d3dcd8af9c8b1cab281cb8f3dfa08427c2bc07859dc8b1ada4b66",
+ "0xad416f02650ddddab08b951cd11e817b5a17b2a9c738daabc279595524fd218fbd4a6d1217f1d6817f9b30ec8c8a570f",
+ "0x95fbec142a418f83b71546f9a74039c44c6e508b92b230ee27d335fd3980ac4304c40b11d7aef0844a161c15063ade2a",
+ "0xb4496464f1f32954ea8aa4e8dc51befb9610839637e71017c384128d1edf7e58a96f5bd222fdaa6e3e637525a70d7057",
+ "0x962c66d4cb46c20d58cbf1ecf9722cf5488c2ec3c60e7f62beaaffb9b3608353d55b7b60ff51fcc08c41d49079d52866",
+ "0x8a4ea659e3fc3ff10f3459d80431cf08524310c708680340fdd387b4edbc49feccc9e30a38dac3022ab754992ac8a261",
+ "0x904d9bcd5d95f09669c3d65fbd502a3207c95e20b4d03d8daa07d552dd532136f01d298b0cf63a06ae70a01bb7cc0e70",
+ "0xa0bcefc936b44761ab6ef3f9d0561fd7c1cc855ed8ffc3e332a73e8d097dff4ab6b0c1ea1d9b93611ceadfad2fb0e320",
+ "0x88c34e561a3f14f85322c39d226c8f6cfb80a76476a3b7b4af696b96898c1ef74517871bf1ef44f59ae0f561ff1fdf49",
+ "0xafaebecdfd7dc1bf000ca63fb44f417b83990581fd14c9f4104301e5fb2627a174d8c210669d35701d28b909b3e6d86d",
+ "0xb5b74e00d55316907bac4cd1785499681a6bcf1c96e380ffa769ec2b524423d85ada7db69081042b1eb848641c4b7f77",
+ "0x8ec69c81f7dff09c7d1fc2df4dc4033b71c9b0acb807e75ab325a6827f30f3bbaeafb1f924c394d11d4d9898dc89742a",
+ "0xad52b8054a2e1bf2a2dc54cad73e6b067cbd26e2d5744e5f52c4954e0b5f1b6be37c05017f2c54b72529a20be0b0935b",
+ "0xa89c96b81b6faaccc75881e7cf4b43e38f57a9e307460838b03805b67c2ea4ce63f93bafeed84e740acfeb9e26c4e456",
+ "0x91f7617ae30f94d5120f750013160afcc557b693974af5f73ddfcff4f710097fc35101452036ad858a58fa5bdcb8d5d2",
+ "0x99a86af83c6d80c6954d20e1d81c4eb7641d8cfb3096f08de08d742643d6b52494d10a9b9a331b80964d5ac631775a0f",
+ "0x858906ff0d1bb8049435918dd3edcbcd7b411ebc5b3a43b0b0feb5f9700f6187fe49fe56d815bbe8cc90db2abe50ffd8",
+ "0x9123f13d935e3e7f8f36c8d0bc2849dccd66c1c901fa2ac355ef15c0263ed5cbe837504aff243dc4bdf5857f37fb581e",
+ "0xb2aa42127d768c2b2f75a06348ecd9e6507e85e187e56e05c5b936f196bda26284dc297e3e51757613450e0b0a8bd838",
+ "0xb62b0cc41bc69077189e67d46a6c4fdd1d579d54e2d397bd8423fb2338ae1b439bf667994ff721f3eb07f7cfe7c24a84",
+ "0xa8dbbeb5cf9d40195498c30584c82087b15e9a77ce6d9ac5d9d64c97b14e20642f3a00ba5814d17dfb54554140f4ee5e",
+ "0x949b01bb91ad323059a48cb61598b94539582319de819fe7f8466db951bbff241679583f86b116832315aecb6fa84afc",
+ "0x8eebdb57fe0d9d2ff92425b2242ad8af84a0fc3227f85d691f64bb3afb38ec83a34b944dc7c34234fd4dc059199d8b6e",
+ "0x8652984af3236117a81e12a7b7d877812b992de376c9b0b2397ed72257a555c8aa523b5851b2bebdd581e36514307f4f",
+ "0x80e00be2fca9d29605932b05de490903f7e51b825322adf9ce8b34b75d8582fff75558dd5d7f2740955f893d7b064538",
+ "0xa31a83633febff3721892795974d2a4770707b4b28ddd1145489b5b1bd478f5b05ea5020b0f7c17adf6226eeb1bf3870"
+ ],
+ "blobs": [
+ "0x1824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc6092c566b31415be66313fbfb2f13fd56212dfe8000d200800000007fffffff84d37e37a3c8aae349928a7775c40a7a570681bcd001be41100000010ffffffef26821fa14f77df20ff1776e6aedf77458d12939700396c2300000022ffffffdd4d043f429eefbe41fe2eedcd5dbeee8b1a25272e0072d84600000045ffffffba261ad7321441ff3bc9240392b1dc0510e08caa5900e7548d0000008cffffff734c35ae642883fe779248072563b80a21c11954b201cea91a00000119fffffee6247db575276a7fa6f1563642bdce3c3e2e750561039ef63500000234fffffdcb48fb6aea4ed4ff4de2ac6c857b9c787c5cea0ac2073dec6a00000469fffffb961e092e81740c8153921f0102ed9718f3661671810e7d7cd5000008d4fffff72b3c125d02e81902a7243e0205db2e31e6cc2ce3021cfaf9aa000011a9ffffee56043712b2a694880615422c03acba8bc8449c220139f7975500002354ffffdcab086e25654d29100c2a845807597517908938440273ef2eaa000046a9ffffb95610dc4aca9a5220185508b00eb2ea2f2112708804e7de5d5400008d53ffff72ac21b8959534a44030aa11601d65d45e4224e11009cfbcbaa800011aa7fffee55843712b2a694880615422c03acba8bc8449c220139f7975500002354ffffdcab012f4af01a8f3837a750ba86d8dafa1033fc69c243ef48ea100046aa0fffb955f25e95e0351e706f4ea1750db1b5f42067f8d38487de91d420008d541fff72abe4bd2bc06a3ce0de9d42ea1b636be840cff1a7090fbd23a840011aa83ffee557c23b7d0ba1dfe9e8b75236b6463db3014aa773d1ef7a6190900235508ffdcaaf7476fa1743bfd3d16ea46d6c8c7b6602954ee7a3def4c32120046aa11ffb955ee1af19b954e5cfce5a153d58985cae84d561f5078de9a0825008d5424ff72abdb35e3372a9cb9f9cb42a7ab130b95d09aac3ea0f1bd34104a011aa849fee557b66bc66e553973f396854f5626172ba135587d41e37a68209402355093fdcaaf6c639f3557494a69e4d764d44424b56a655d3cdfc3f4d1e529046aa128fb955ed75350c35b68f756817b8fd0803fc8fcc566bc1b84e9a56e5308d54252f72abdad32b3df63a8512fbac3e5c8f875f0218579ba9306d34c80a711aa84a6ee557b596567bec750a25f7587cb91f0ebe0430af375260da699014e2355094ddcaaf6b256e1d63b77a741a2dc5d4bd9ce1eae10932ca8184d33a69d46aa129cb955ed6339d60523c5b105fd8580bfab929b841bd29bac2d9a68f13b8d54253a72abdac573ac0a478b620bfb0b017f5725370837a537585b34d1e2771aa84a74e557b58a736a6d3bed269aade2c926a640cc3869f6b10cb369a568ef355094eacaaf6b1372e73324b0afb8139258754477f698ce99a47563d34c75df6aa129d6955ed62571e0bef637c1f2def1771280e64b5997df8b46c4a69a8fbfd54253ae2abdac496fd3d69945e66875afb44cf9c2f4db2a6b58e9864d36c380aa84a75d557b58916bba05df622f53a32c2ec1eb7c47de4f82f42f099a6f2b0255094ebbaaf6b1216386646b9ac129fe2523abceeeede499b22aba1034dffa05aa129d7855ed6241531f21840be4d6b4170d7f95d439f12e1097d01d69c1980c54253af1abdac48132509bb4ee2c301ffae127239ed20a56cd71fc37d384d419a84a75e457b5890164a13769dc58603ff5c24e473da414ad9ae3f86fa709a8335094ebc8af6b12025554c7808f134337b84ac48671a65155e20a4cdc4e14f467a129d7925ed6240336bbe7adf48909273d5bb104d9aacaa67056f5b59c2b8cd04253af25bdac48056d77cf5be912124e7ab76209b355954ce0adeb6b385719a084a75e4b7b58900a6701f764a886a754c234ec0b5d0952946d9e32d370afd742094ebc97f6b120135a164776276fd1615130000eb070cd23877ec1a3e1615285129d7930ed624025403ee7992542257a6f262815573fc241bb3fdf44c2c4490b253af262dac480490c9027df20e6cdacab127822a4ddac7e22c21a86858a36174a75e4c6b589009119204fbe41cd9b595624f04549bb58fc4584350d0b146c2e94ebc98d6b12012232409f7c839b36b2ac49e08a9376b1f88b086a1a1628d85d29d7931ad624024464813ef907366d655893c11526ed63f11610d4342c51b0ba53af2635ac4804885514d69ee4cf5d827dedaa224438efdcd864046558a50575a75e4c6c5890090f363c05eaa0013dbcc8a17c3c7ed007b45d0a64c7b14baeec4ebc98d9b120121d6c780bd540027b799142f878fda00f68ba14c98f62975dd89d7931b36240243a65027057566779aaef4c18e9f19e46cc206bef1bc5305fb23af26367c48048735617395b8331760dab5e59cbd99ab592ed1a3a348a62636575e4c6d0890090e53840cb63dcc56ed32382db8fa99393208676d06614c66acbebc98da2120121c9708196c7b98adda64705b71f532726410ceda0cc298cd597d7931b44240243926d15863c49783e045ad196369cac747cc61d9d95531b4f30af26368948048723663d65256952fec0826954652fb710f4387d9727a63842625e4c6d1390090e45588d22f7a9088038d198d0c255cc49e31d3d8a4c4c7228c5bc98da2820121c893d2c9e9c287383296ff7c97ca1f6bbc0e6bd709598e5f58c7931b45140243911066b95e52749890aacb5baf13a4b9f7c79bd3d2831cd8f19f26368a3804872210cd72bca4e931215596b75e274973ef8f37a7a50639b1e33e4c6d1470090e44219ae57949d26242ab2d6ebc4e92e7df1e6f4f4a0c7363c67c98da28e0121c884335caf293a4c485565add789d25cfbe3cde9e9418e6c78cf931b451c0243910866b95e52749890aacb5baf13a4b9f7c79bd3d2831cd8f19f26368a380487221059851551bf93a40d637d861f3fd21789e3ea010339b3873f4c6d1471090e441f3f1c83505589cad293c134367602570e74165e037368b27f98da28e3121c883d0a4b5f4d8176185cf4489064e262d617946f1803e6d3090031b451c7243910791496be9b02ec30b9e89120c9c4c5ac2f28de3007cda612006368a38e487220f2292d7d3605d86173d1224193898b585e51bc600f9b4c2400c6d1471c90e441e4525afa6c0bb0c2e7a24483271316b0bca378c01f369848018da28e3921c883c830c84d84edc40887114f2e461c8b8973f333dc3b6d3234041b451c734391078f61909b09db88110e229e5c8c391712e7e667b876da646808368a38e687220f1e4f338ec08d72a4d41202e110688c4dca7911cceab4ca74116d1471ce0e441e3b2a79762df147cc5ff0cbea18c776c38f9e65f5d269968c23da28e39d1c883c7554f2ec5be28f98bfe197d4318eed871f3ccbeba4d32d1847b451c73a391078ea35f831649b81b4378ff5d05b1439363925da3346a65bd49068a38e757220f1d36bf062c93703686f1feba0b628726c724bb4668d4cb7a920d1471ceae441e3a663f31e3f446953960c9d6964474300df43ab29179970f642a28e39d6c883c74b53f8952b5f3529e3e600fac084e429b93398ae2c32e39086451c73ae91078e953403830394ccd67f98c81d7900267b6d1373b85565c8c50d8a38e75e220f1d29680706072999acff31903af2004cf6da26e770aacb918a1b1471cebc441e3a525c2064bb2995dcb62fe69ddbf6f815aefa113d529724b83728e39d79883c74a344532223298e3c242c9363afe44e5358a064d6a22e4b146f51c73af41078e94514b89cf3297efb0025ecef57befaceabed0c09415c97ccdfa38e75e920f1d289297139e652fdf6004bd9deaf7df59d57da181282b92f99bf471cebd241e3a51252e273cca5fbec0097b3bd5efbeb3aafb4302505725f337e8e39d7a483c74a2431d74046225a5ab8fc2da2b5ee349d5a14a2a607e4c00afe1c73af4a078e944763ae808c44b4b571f85b456bdc693ab429454c0fc98015fc38e75e940f1d288e536f59c55fcbed9bbd7cb2cfaf309d62feccf41c9301cff971cebd291e3a511b32f10c3795fa5def47bf8d9754bf62c0a9dc4436260543f3e39d7a533c74a23565e2186f2bf4bbde8f7f1b2ea97ec58153b8886c4c0a87e7c73af4a678e9446a57d6898b2e4bfa74ebc45e55495bb2fd53b36cd59816b3d08e75e94df1d288d33bbf6bc332fa77a1a44ee4a289158df553a935a8302f0ba21cebd29ce3a511a5039130333c5771fb1563f13d088943e55394c74d605fbb4539d7a53ac74a23490722606678aee3f62ac7e27a111287caa7298e9ac0bf768a73af4a758e9446920e44c0ccf15dc7ec558fc4f422250f954e531d35817eed14e75e94eb1d288d241c898199e2bb8fd8ab1f89e8444a1f2a9ca63a6b02fdda29cebd29d63a511a4839130333c5771fb1563f13d088943e55394c74d605fbb4539d7a53ac74a23490722606678aee3f62ac7e27a111287caa7298e9ac0bf768a73af4a758e9446920705e657bec3f017d25c2773a18af214f91742f5517f0754f75e94eb2d288d23f6ccf23a4aee085b2184b166c27bc6a99cf2abaa72fe28e9febd29d66a511a47d65b09ff634238e1bfd5c54d045d6fd2e4a97d14b5fc6c140d7a53ace4a2348f9577398993ea99eefc77ed198820c22574171fe93bf8f2682af4a759d944691f13af989df53b5c0975bc3cb28fa766ca92f2659247f1ff1065e94eb3c288d23e102056c6b7dce03e6844dbe49eb4b014d0a8f0e45fe41860dbd29d679511a47c1040ad8d6fb9c07cd089b7c93d696029a151e1c8bfc830c1b7a53acf2a2348f820815b1adf7380f9a1136f927ad2c05342a3c3917f9061836f4a759e544691f04102b635bee701f34226df24f5a580a685478722ff20c306de94eb3ca88d23e082056c6b7dce03e6844dbe49eb4b014d0a8f0e45fe41860dbd29d679511a47c1040ad8d6fb9c07cd089b7c93d696029a151e1c8bfc830c1b7a53acf2a2348f8200d6d738c49e37c58e035ba72c91e7b3d5005ed7c906327704a759e554691f03f1adae71893c6f8b1c06b74e5923cf67aa00bdaf920c64ee094eb3caa8d23e07e35b5ce31278df16380d6e9cb2479ecf54017b5f2418c9dc129d679551a47c0fc6b6b9c624f1be2c701add39648f3d9ea802f6be483193b8253acf2aa348f81f862e99171749a4845d021cf248845dbcfaca133c606341b05a759e555691f03ef51e57b8fbf9713436d09c64106e9df9a0584c3890c69da0c4eb3caabd23e07dd2fdd4fcc5590a93ea6d9b47a0431e72eb74be30f18d558199d679558a47c0fb95fba9f98ab21527d4db368f40863ce5d6e97c61e31aab0333acf2ab148f81f724b8797de2ca527b2682cf9e00725c4b58971e83963570467759e556391f03ee3232188692facd21c9d201bb804a9b165bf262c6fc6afaccfeb3caac823e07dc5464310d25f59a4393a403770095362cb7e4c58df8d5f599fd679559047c0fb8a18987a519515cb2a414696d80904ed91a8db0dbc1ac05740acf2ab218f81f7133130f4a32a2b9654828d2db01209db2351b61b783580ae8159e556431f03ee266261e94654572ca9051a5b602413b646a36c36f06b015d02b3caac863e07dc4c50d62b397f10dc09d6fadeb83e859487f31ac9ddd6045e066795590d7c0fb8972dbeaf1fd4843acb7abbe5687369510a9277efb8ac0a600dcf2ab21bf81f712d5b7d5e3fa9087596f577cad0e6d2a21524efdf715814c01b9e556437f03ee25a430d152c28736de5b7b5bd99c4036c24f6221adfb02b24383caac870e07dc4b3122c830527495e833c31a32b7e650044988691bc6057ec71795590e2c0fb89652459060a4e92bd0678634656fcca0089310d2378c0afd8e2f2ab21c581f712ca48b20c149d257a0cf0c68cadf9940112621a46f1815fb1c5e556438b03ee25941d7670d610ad76d1ae534153e9862a1f7076e9e002c1078ccaac871707dc4b273aece1ac215aeda35ca682a7d30c543ee0edd3c005820f1995590e2e0fb8964e01ec1c0519185dfe86132d479c76d0786e1e037d0b05c2342ab21c5d1f712c9b03d8380a3230bbfd0c265a8f38eda0f0dc3c06fa160b8468556438ba3ee2593607b07014646177fa184cb51e71db41e1b8780df42c1708d0aac871747dc4b26c0f60e028c8c2eff430996a3ce3b683c370f01be8582e11a15590e2e8fb8964d81ec1c0519185dfe86132d479c76d0786e1e037d0b05c2342ab21c5d1f712c9b03d8380a3230bbfd0c265a8f38eda0f0dc3c06fa160b8468556438ba3ee259360071959f31c7a0259519179df1412461633c33b3fc172310bac871748dc4b26bf0e32b3e638f404b2a322f3be28248c2c6786767f82e46217590e2e91b8964d7e1c6567cc71e809654645e77c50491858cf0cecff05c8c42eb21c5d23712c9afc38cacf98e3d012ca8c8bcef8a09230b19e19d9fe0b91885d6438ba46e25935f871959f31c7a0259519179df1412461633c33b3fc172310bac871748dc4b26bf06f3d971065a2cde1fef563da78a6eac124a9c3f52e47c57690e2e91c8964d7df6a8d86cda1a81e7bcab0eface7abfd7cf595e3e75c912eee21c5d23a12c9afbd612d664819b2bfaf62280751c5b622f4976e23cbb92401dd438ba47525935f794e6d253d09c802169116369b81ca6de3db1ea3947249a7bb871748eb4b26bef128eca326e9f286e4eef2952ef9f303c2627fa325e494f3780e2e91d7964d7de151d9464dd3e50dc9dde52a5df3e60784c4ff464bc929e6f01c5d23af2c9afbc22fc4e5487e2c9e4b88907cb3de2a37043640e894925571e138ba475f5935f7835f89ca90fc593c971120f967bc546e086c81d12924aae3c271748ebeb26bef064b25edcecf14fbe5ef081ac76f07040b8545fe4f49576b85e2e91d7e64d7de0b225e344a748c7a83aad65d86d46c3011b6ce589b92b07b0cc5d23afdc9afbc1544bc6894e918f50755acbb0da8d860236d9cb1372560f6198ba475fb935f782a158b29d6a8946cc6781f9e13480ee841877bbe6b4ac390341748ebf826bef0532b1653ad5128d98cf03f3c26901dd0830ef77cd6958720682e91d7f04d7de0a6562ca75aa251b319e07e784d203ba1061deef9ad2b0e40d05d23afe09afbc14c386ba7621b05e8eb8dc3189236d56a06e8204f57561e25a1ba475fc235f7829770d74ec4360bd1d71b8631246daad40dd0409eaeac3c4b43748ebf846bef052e6dc0f635427a266603d28a40d1b3d0164cc3995a587a3a87e91d7f09d7de0a5b679445175b56cf83d46b3c7999c5c82745c98eb1b0f61910d23afe14afbc14b55b3ae2db8d1021bf759ca0eb29e9b84937d5796061edd622a475fc2a5f78296942881e63f082c636b7ff69ce4a31988d1bed4ebdc3dd504648ebf855bef052d111229574b7680f253cc4fb948ac15914e41cf97887bc448d91d7f0ac7de0a5a122452ae96ed01e4a7989f7291582b229c839f2f10f78891b23afe158fbc14b42448a55d2dda03c94f313ee522b0564539073e5e21ef11236475fc2b1f78296841527045291a2fbe1b2ee049c4c68f0a1cd2a27c13de3c86d8ebf8564ef052d072a4e08a52345f7c365dc093898d1e1439a544f827bc790db1d7f0ac9de0a5a0e549c114a468bef86cbb8127131a3c28734a89f04f78f21b63afe1593bc14b41c354a7b41637a61c564364cda59a5ad0915939a06ef1fe76d75fc2b28782968376a94f682c6f4c38ac86c99b4b34b5a122b27340dde3fcedaebf85650f052d06e613c45b2644c09cd5d9f5b615cf4dc1f0290c418bc8141b6d7f0aca2e0a5a0db4e8ae4119efa96528804debab047e038b163e42e7904276eafe15946c14b41b5292820d01457af5cdccfe56d56ede86c0f0a2459f209f2de5fc2b28e82968369525041a028af5eb9b99fcadaaddbd0d81e1448b3e413e5bcbf85651d052d06d230b2dbed27c1402b4005bdad5215c9aae86aed64c8296f7a7f0aca3b0a5a0da36165b7da4f828056800b7b5aa42b9355d0d5dac99052def4fe15947614b41b464eddc86175678364ccdd1ead3eb54ea64dee119020a761eafc2b28ed2968368b29cde96fc13189816680655273c8c547481e7f1d415067d6f85651db52d06d15539bd2df82631302cd00caa4e7918a8e903cfe3a82a0cfadf0aca3b6a5a0da2a3349fe6bdb28a8bd66c7bd41c5813d17ccbc58720543435ce159476e4b41b4536693fcd7b651517acd8f7a838b027a2f9978b0e40a8686b9c2b28edc968368a6593a525c430525ad67e51cff0c631c59df33bdc5150eb17485651dba2d06d14b3e86fd655c6cce129c9061f60f2460ae6aa9d7872a1f06ea0aca3b755a0da295092053778f3c1edd05e6ebe414a6e95781960b0b543fb1d5159476ebb41b45291240a6ef1e783dba0bcdd7c8294dd2af032c1616a87f63aa2b28edd768368a5224814dde3cf07b74179baf90529ba55e06582c2d50fec7545651dbaed06d14a449029bbc79e0f6e82f375f20a5374abc0cb0585aa1fd8ea8aca3b75da0da29481e179025ca2470882b34e63940ccbd72c5a30cb243fcc15259476ebc41b4528f3c2f204b9448e1105669cc7281997ae58b46196487f982a4b28edd788368a51e04709943fef444d87999c0dcf9911dc5c2ce8ec60ff4a94a651dbaf206d14a3b08e13287fde889b0f33381b9f3223b8b859d1d8c1fe95294ca3b75e40da2947611c2650ffbd11361e6670373e64477170b3a3b183fd2a5299476ebc81b4528ec2384ca1ff7a226c3ccce06e7cc88ee2e167476307fa54a5328edd790368a51d84709943fef444d87999c0dcf9911dc5c2ce8ec60ff4a94a651dbaf206d14a3b01a25812cb4eb1dc6fffe43972881e0b3061434befe96cd4da3b75e41da29475f344b025969d63b8dfffc872e5103c1660c28697dfd2d9a9b476ebc83b4528ebe689604b2d3ac771bfff90e5ca20782cc1850d2fbfa5b35368edd790768a51d7c5d3e62127dbb70efccb844b13a6d2d92dce401f4f4b80e6e1dbaf20fd14a3af7468f1cd1d1d964976636b15a6b388320660a5fe6e971c0dd3b75e420a29475ed193092507a154be699338aaccccf2e3b78571bcad2e525bb76ebc8424528ebd9326124a0f42a97cd32671559999e5c76f0ae3795a5ca4b76edd790848a51d7b264c24941e8552f9a64ce2ab3333cb8ede15c6f2b4b9496eddbaf210914a3af645596eb30a70ce1ec96627d5e5cd799d66efb3a53972ad1dcb75e421329475ec737402f0e247c4690f98b22b4b00d5ba78a38d0a42e5747ba6ebc8427528ebd8d6e805e1c48f88d21f3164569601ab74f1471a1485cae8f74dd79084ea51d7b1a691314e568539cfbb2f2b2cab6939698d5259e8db95ec2eabaf2109e4a3af6335e388277a709bcaf32ab8d8d6385552c568d991872bf29d675e4213d9475ec6548835d9c2475fc16321d4312bd68d253595d8e2de57ff7adebc8427c28ebd8c91d1913e51f4e7ae43100ae1d712fcca15efd7858cb01935cd79084f951d7b1913a3227ca3e9cf5c862015c3ae25f9942bdfaf0b1960326b9af2109f2a3af63220076a841539c6e4890c8e06dbb1d5a8028383d602c07f1745e4213e6475ec64300ed5082a738dc912191c0db763ab50050707ac0580fe2e8bc8427cc8ebd8c8601daa1054e71b922432381b6ec756a00a0e0f580b01fc5d179084f991d7b190c03b5420a9ce372448647036dd8ead40141c1eb01603f8ba2f2109f323af63218076a841539c6e4890c8e06dbb1d5a8028383d602c07f1745e4213e6475ec64300ed5082a738dc912191c0db763ab50050707ac0580fe2e8bc8427cc8ebd8c8601daa1054e71b922432381b6ec756a00a0e0f580b01fc5d179084f991d7b190c03b5420a9ce372448647036dd8ead40141c1eb01603f8ba2f2109f323af63218002ba9a0072d0cb4895a695b313b8a822e47fbc2907f3185f4213e6485ec642ff05753400e5a196912b4d2b6627715045c8ff78520fe630be8427cc90bd8c85fe0aea6801cb432d22569a56cc4ee2a08b91fef0a41fcc617d084f99217b190bfc15d4d00396865a44ad34ad989dc5411723fde1483f98c2fa109f3242f63217f82ba9a0072d0cb4895a695b313b8a822e47fbc2907f3185f4213e6485ec642ff05753400e5a196912b4d2b6627715045c8ff78520fe630be8427cc90bd8c85fe03ab8d8c98a9554dd366b94bce48830b3cc31663efcc7bbd184f99218b190bfbf01840a3feb8d2c72399d5171bf6e896244a5287af9911ba409f3243263217f7d0308147fd71a58e4733aa2e37edd12c4894a50f5f322374813e64864c642fefa061028ffae34b1c8e67545c6fdba25891294a1ebe6446e9027cc90c98c85fdf40c2051ff5c696391ccea8b8dfb744b12252943d7cc88dd204f992193190bfbe81840a3feb8d2c72399d5171bf6e896244a5287af9911ba409f3243263217f7d0308147fd71a58e4733aa2e37edd12c4894a50f5f322374813e64864c642fefa061028ffae34b1c8e67545c6fdba25891294a1ebe6446e9027cc90c98c85fdf404e1778a29cf8bbd49b6ee0d7ada2d91cfed69979c88f7605f992193290bfbe7f284149f21053fa6103a3e9a751a3da34a9ef8ef09120900cf3243266217f7cfd508293e420a7f4c20747d34ea347b46953df1de122412019e64864cc42fef9fa2d17807517b26c3bdb55ce953ced90cd540097bf4483e434cc90c99985fdf3f35a2f00ea2f64d877b6ab9d2a79db219aa8012f7e8907c869992193330bfbe7e640705a81352c33a73a1d624cea146b2ffc44bafa121134d43243266717f7cfcb0cf30daf40baea064100ec91ca86fe5aa4cbd1f124240da964864ccf2fef9f9519e61b5e8175d40c8201d923950dfcb54997a3e248481b52c90c999e5fdf3f2a33cc36bd02eba8190403b2472a1bf96a932f47c4909036a59219333cbfbe7e5467986d7a05d750320807648e5437f2d5265e8f8921206d4b243266797f7cfca85b4333a0e211231bdcd4f1149ece0da4f8ff7b0f42427e974864ccf3fef9f94f4298bfee9a84c8ef86700a2133fa43449e41521b8486a12f90c999e8fdf3f29d1143d88a0b6c1496d9a63c3a5e52ae83e8c50034090ee660219333d2fbe7e5392287b11416d8292db34c7874bca55d07d18a0068121dccc0432667a5f7cfca72450f62282db0525b6698f0e9794aba0fa31400d0243b9980864ccf4bef9f94e416311cfd31c3276e99f809cae8f39c19f26a5d9d4878d7020c999e98df3f29c72c6239fa63864edd33f01395d1e73833e4d4bb3a90f1ae0419333d31be7e538e58c473f4c70c9dba67e0272ba3ce7067c9a9767521e35c0832667a637cfca71c3d9b4096647bbe2c9c86764f3dfb08ca3f9548e743c85c1164ccf4c7f9f94e370748d9d99f59ff1105d314967254398f2b6cedcb87925c23c999e990f3f29c6d0e91b3b33eb3fe220ba6292ce4a8731e56d9db970f24b8479333d321e7e538da1d2367667d67fc44174c5259c950e63cadb3b72e1e49708f2667a643cfca71b43a46ceccfacff8882e98a4b392a1cc795b676e5c3c92e11e4ccf4c879f94e368009ff646cc0273c829f7715f1ba1c0ed631138b57927663d999e99103f29c6cf013fec8d9804e79053eee2be374381dac622716af24ecc7b333d32207e538d9e027fd91b3009cf20a7ddc57c6e8703b58c44e2d5e49d98f6667a6440fca71b3c04ffb23660139e414fbb8af8dd0e076b1889c5abc93b31ecccf4c881f94e367809ff646cc0273c829f7715f1ba1c0ed631138b57927663d999e99103f29c6cf013fec8d9804e79053eee2be374381dac622716af24ecc7b333d32207e538d9e027fd91b3009cf20a7ddc57c6e8703b58c44e2d5e49d98f6667a6440fca71b3c04ffb23660139e414fbb8af8dd0e076b1889c5abc93b31ecccf4c881f94e367802c089f78d8d64ae1c4378713981f155dbd7b11762767e19a9e99104029c6ceff58113ef1b1ac95c3886f0e27303e2abb7af622ec4ecfc3353d322080538d9dfe3c34d69039bbae3edda4444656da7d71a22ea1d59da12a6b7a644101a71b3bfb047c05cd49d9df35880eb084a41322ddf09f9fa83b43f8d7f4c882044e3677f508f80b9a93b3be6b101d6109482645bbe13f3f507687f1afe99104089c6cefea11f0173527677cd6203ac212904c8b77c27e7ea0ed0fe35fd322081138d9dfd423e02e6a4ecef9ac40758425209916ef84fcfd41da1fc6bfa644102271b3bfa847c05cd49d9df35880eb084a41322ddf09f9fa83b43f8d7f4c882044e3677f501b931256119e6968ce9c388c78c283b8c03651046880beff9910408ac6cefe9f372624ac233cd2d19d387118f1850771806ca208d1017dff322081158d9dfd3e6e4c49584679a5a33a70e231e30a0ee300d94411a202fbfe6441022b1b3bfa7c68aaeb5d6355cdfe41a7ec5bbc7245c0adf4e42044079bfdc88204573677f4f75d682f679d0e1eb4501600af6f42b37c082c243d8810dbfc910408af6cefe9ed46e2b77c107ec0206cf22956d4e38ef2bc9aa47810235bfa2208115fd9dfd3d919d7c7a4f76002f8a6aa7aa5a02545e02577a4ed20485bf5441022c0b3bfa7b133af8f49eec005f14d54f54b404a8bc04aef49da4090b7ea88204581677f4f62675f1e93dd800be29aa9ea968095178095de93b481216fd510408b02cefe9ec45ad095d491629a7d0219fd24f78856fbd7ff8366024483ab208116069dfd3d8741b38455f927b7b1d0fa2241e56ed5f25c4162c9048aab5741022c0e3bfa7b0d0f796158c8b1f21b6eba6c7bc13bd3df64c5218f0916faaf8204581d77f4f6191ef2c2b19163e436dd74d8f78277a7bec98a431e122df55f0408b03aefe9ec323de5856322c7c86dbae9b1ef04ef4f7d9314863c245beabe08116075dfd3d86407dd63731bf2139342998bd6003cc6f5d26b687548b9797d1022c0ecbfa7b0c70fbac6e637e42726853317ac00798deba4d6d0ea9172f2fa204581d97f4f618e1f758dcc6fc84e4d0a662f5800f31bd749ada1d522e5e5f4408b03b2fe9ec31c3eeb1b98df909c9a14cc5eb001e637ae935b43aa45cbcbe881160765fd3d863809e88fde9583bbebf65ee557fa2a9757d2f8e3518b993bd2022c0eccfa7b0c6f13d11fbd2b0777d7ecbdcaaff4552eafa5f1c6a3173277a404581d99f4f618de27a23f7a560eefafd97b955fe8aa5d5f4be38d462e64ef4808b03b33e9ec31bc4f447ef4ac1ddf5fb2f72abfd154babe97c71a8c5cc9de9011607667d3d863782a9b56962e9e417732b47d7799079d77dbd09115b995612122c0ecd0a7b0c6ef5536ad2c5d3c82ee6568faef320f3aefb7a1222b732ac2424581d9a14f618dde367fb30590db889497981dd65a7c9dda1b84a053e65728858b03b3439ec31bbb6cff660b21b711292f303bacb4f93bb4370940a7ccae510b160766873d863776661124c319d0a50a2b269f5160509f631a54dd4c995e46172c0ecd0f7b0c6eeb5834a2330a03cccc2313669ab6ff66c0e0ec169632be302f581d9a1ff618ddd53c7b9d12ea6a1c5012ecf52d645cf57c6e1a8929657e045fb03b3440ec31bba9050992d2ab36bb57f2a01252bf1812f388776e4fcafdacc060766882d86377510a1325a5566d76afe54024a57e3025e710eedc9f95fb5980c0ecd105b0c6eea214264b4aacdaed5fca80494afc604bce21ddb93f2bf6b30181d9a20b618ddd44284c969559b5dabf95009295f8c0979c43bb727e57ed660303b34416c31bba8850992d2ab36bb57f2a01252bf1812f388776e4fcafdacc060766882d863775102d44b3023d39edb620c8724fd960866bbb3025f65fb73c0d0ecd105c0c6eea1f5a8966047a73db6c4190e49fb2c10cd776604becbf6e781a1d9a20b818ddd43e412524b5cb4a39904fe7f1375be041a99902f3d67ede94353b34417131bba87b0e5ca2186cf6f5d86c960a66ae1eab4dde4843a9fdbecc6b766882e3637750f51cb94430d9edebb0d92c14cd5c3d569bbc908753fb7d98d6ecd105c6c6eea1ea39728861b3dbd761b258299ab87aad3779210ea7f6fb31add9a20b8d8ddd43d472e510c367b7aec364b0533570f55a6ef2421d4fedf6635bb344171b1bba87a871dc7a33a5d1e03e9626ce62d848dcd890c6969cdbee6ab866882e3737750f4f6fcb4d1422064334f913c4bda6efe1abcdcf8936b7de7971cd105c6f6eea1e9d6ba8f2d51a6f0921beedb173443deb5247e16e6a6fbe96e49a20b8dfddd43d3963643e570b4094fb4aa18ade7ed9fe9f3c0538d1df7ed1ca344171c0bba87a7152dad55aece3acae62093db4f4122539244ccda0beff47956882e3827750f4e131c80362b029dc1490d8a361de82726cf4dbf73e7e00332bd105c705eea1e9c1639006c56053b82921b146c3bd04e4d9e9b7ee7cfc006657a20b8e0bdd43d382533266379709f30a1028b57f7067f1ae7fb238f6f80270b044171c18ba87a7033277251c047668cbed1792f6d72e0b57aba6cdeaf0068561882e3832750f4e0564ee4a3808ecd197da2f25edae5c16af574d9bd5e00d0ac3105c7064ea1e9c0a55eeed1ce83c25e7812473d3531655595add93a8c01bb98720b8e0cad43d381337f032e6a6dace86cf0f0f9e9c8ad2ad61fd834e8039170f4171c196a87a70256fe065cd4db59d0d9e1e1f3d3915a55ac3fb069d00722e1e82e3832d50f4e04a6bd3244771cdbcd309026672688972b03438693700e6003e05c7065ba1e9c09363b8a13bb9fdfc5ddecaf4dcc7710d5b14b32e6b01cda47d0b8e0cb843d3812553839b244a5e7b738a5c11b1854042b0d5a8b8d3039cecfb171c197187a7024933198ef56b1f799ee17e4b5b00dead5c5793cda3073b7df72e3832e40f4e049166331dead63ef33dc2fc96b601bd5ab8af279b460e76fbee5c7065c81e9c09225878948282e0693352bf5563f9d8dd6c0a9192891cef9bddb8e0cb913d3812433d0381b1dc23551e7244d2bfea0fe2d2c165810f39e0dbbc71c197237a70248506195c108ea92cf4b14fcd77ca7deda02f0d5e1b73c35b79e3832e47f4e049090c32b8211d5259e9629f9aef94fbdb405e1abc36e786b6f3c7065c8fe9c09212186570423aa4b3d2c53f35df29f7b680bc35786dcf0d6de78e0cb91fd381242430cae084754967a58a7e6bbe53ef6d01786af0db9e1adbcf1c19723fa70248486195c108ea92cf4b14fcd77ca7deda02f0d5e1b73c35b79e3832e47f4e0490904f3ddabeab88214df6bfd6f1461bdc008dee1f6b786d133d7065c8ff9c09211f2a8e0e2a2d72c553ba45d5da8295dffbc81e9ad3f0dbca7be0cb92003812423d551c1c545ae58aa7748babb5052bbff7903d35a7e1b794f7c19724007024847a364a91558c2d9806b5dd7f6200b5a7e9ccbcc74cc370cdf0832e4801e04908f36c9522ab185b300d6bbafec4016b4fd399798e9986e19be1065c9003c09211e6653c9e030718e2d2a43c257ff934c7a1df3579300dc4dbc30cb92008812423cb568b94b2e494485d153e72f7e8c7b73e6aad4e5d1b8b5b871972401202484795392982129f8b1371f7430de7c7ed9677819cf8b737185b0f32e4802504908f29725304253f1626e3ee861bcf8fdb2cef0339f16e6e30b61e65c9004a09211e5270b860f7548ed07fa9d25f97161481d8b2b63ed9dc63103dcb92009512423ca36d831a9b7f8023b7206ae72622872bac11aed9b0b8c7c47c9724012b2484794567188de3d562ca260d9bf6443b6c7f52cfa00f5e71912cfa2e4802574908f2895a43747481281703e7fe14806d3726a04b827ab9e323fdf55c9004af9211e51140994195d8b2b0bf9cc250f8d0cc753b43475170c6499febb92009602423ca210d44dbd887c7e437064ac9e997f7127132d0fede8c94e3d8724012c1484794411a89b7b10f8fc86e0c9593d32fee24e265a1fdbd1929c7b0e4802582908f288235136f621f1f90dc192b27a65fdc49c4cb43fb7a32538f61c9004b05211e51046a26dec43e3f21b832564f4cbfb893899687f6f464a71ec39200960a423ca2086060163552e0c6283172c69175cf4f0dd95249e5c94fe18824012c158479440f4cd285177c240f082fabb51ae1fcc6165ee6efc892a167114802582c08f2881d25b762dbceaaa0c82c1d922dba57b4276a103b8e254472239004b05911e510394b6ec5b79d554190583b245b74af684ed420771c4a88e447200960b223ca207222efe41c110d05d87d3c70aedfbcf89854834a3595136c8f4012c165479440e345dfc838221a0bb0fa78e15dbf79f130a906946b2a26d91e802582ca8f2881c617d1e91d1a969a19c1b7eab375520a5bfe4f84d3544f563e004b05961e51038b2fa3d23a352d3433836fd566eaa414b7fc9f09a6a89eac7c00960b2c3ca207165f47a4746a5a686706dfaacdd548296ff93e134d513d58f8012c165879440e2c4aa1a195ab175385da857d93a0ee7ada9ebe8297a27c55f102582cb1f2881c5721559bd82c9129c381d1231f383b1dafe9bf612c44fa4fe304b05964e51038ad42ab37b05922538703a2463e70763b5fd37ec25889f49fc60960b2c9ca20715a1168c80d88a729c5d40ab474d74a9eba533fe0ae13eae38d12c165949440e2b322d1901b114e538ba81568e9ae953d74a67fc15c27d5c71a2582cb292881c56645a32036229ca717502ad1d35d2a7ae94cff82b84fab8e344b05965251038acc175899191b9bd0e66d1bcb9eb0b31dcd4641616d9f58c069960b2ca5a20715972eb132323737a1ccda37973d61663b9a8c82c2db3eb180d32c16594b440e2b2e5d6264646e6f4399b46f2e7ac2cc7735190585b67d6301a6582cb296881c565c46d72175b34109eb35a484ed7bf71664de4d6769fac7a74db059652e1038acb719c09b983ce4968e380f31d2ee4c54c468dd2ad0f590f29c60b2ca5d2071596d3381373079c92d1c701e63a5dc98a988d1ba55a1eb21e538c16594ba40e2b2da67026e60f3925a38e03cc74bb9315311a374ab43d643ca7182cb297481c565b45a17356ebd8737298d3fb68f68c0ce1df32bb284ac8938e4059652ea038acb674040c38a5170f10ae7459516c7dfc4369299c106591415c90b2ca5d5071596cd0c93dfc1794464cd9b515225861db067d175de09b229cf9316594bab0e2b2d991927bf82f288c99b36a2a44b0c3b60cfa2ebbc1364539f262cb297561c565b32324f7f05e51193366d4548961876c19f45d77826c8a73e4c59652eac38acb664649efe0bca23266cda8a912c30ed833e8baef04d914e7c98b2ca5d5871596cc8555054c46aa8cf9181db4a5058392e77c3a03c98229e9d326594bab1e2b2d98f36b30235abb421dad07cbc98a6d084ea3382d52d453ede65cb297564c565b31d6d66046b576843b5a0f979314da109d46705aa5a8a7dbccb9652eac98acb663a66de618385330a230eb91a5a91a03ba37a4db0b214fd1d982ca5d5941596cc7359cf1bb3e0c896fdea385cad199e9f41a0ddbd6129fbdf31594bab292b2d98e53fb0901497f3b0b3a136e152299b667dedfdd6bf53f96263b2975653565b31c90b7378d60649e41f0f33ea9c4994f4f6883e097ba7f468c8652eaca7acb6639116e6f1ac0c93c83e1e67d5389329e9ed107c12f74fe8d190ca5d594f596cc7222dcde3581927907c3ccfaa712653d3da20f825ee9fd1a32194bab29eb2d98e445b9bc6b0324f20f8799f54e24ca7a7b441f04bdd3fa346432975653d65b31c884349e60d3b00c4a8c004d1bc8fad77633022f3b77f48308752eaca7bcb66390f12a624c74c640c094ccfcb7115b916c10c88436bfe92050fa5d594f896cc721d254c498e98c81812999f96e22b722d82191086d7fd240a1f4bab29f12d98e43a4a98931d31903025333f2dc456e45b0432210daffa48143e975653e25b31c87421437ee73982e30233448380a426de031084775cf491cc7e2eaca7c5b66390e74286fdce7305c60466890701484dbc062108eeb9e92398fc5d594f8b6cc721ce11205449bc6e0ec099d835fa86f9a006ee543970d248d5f9bab29f17d98e439b2240a89378dc1d8133b06bf50df3400ddca872e1a491abf375653e2fb31c873644815126f1b83b026760d7ea1be6801bb950e5c3492357e6eaca7c5f66390e6c1514fafab9d2f8bc9b87d7cc2e2b28321ee42783924853ced594f8bfcc721cd72a29f5f573a5f179370faf985c5650643dc84f072490a79dab29f17f98e439ae5453ebeae74be2f26e1f5f30b8aca0c87b909e0e49214f3b5653e2ff31c8735c34ba3082a4fa489ca904e65967b7698ba363981992444277aca7c5ff6390e6b76974610549f491395209ccb2cf6ed31746c73033248884ef594f8bfec721cd6e5efb1ab76a4ba52a70d9c15d953bce2939d0bc634912addfb29f17fe8e439adb4a088e1baaf9cd0cae79aab320d5c44d1fe3d4c39226ffc0653e2ffe1c8735b5202374e42c561cd129b97d5e3809b094ec0a0584244fa381ca7c5ffd390e6b694046e9c858ac39a25372fabc70136129d8140b08489f470394f8bffa721cd6d20ca02c3d87baf5fc73ac1d70d684ea4e5c6a720d9140320829f17ff5e439ada31940587b0f75ebf8e7583ae1ad09d49cb8d4e41b2280641053e2ffebc8735b463280b0f61eebd7f1ceb075c35a13a93971a9c8364500c820a7c5ffd790e6b68c650161ec3dd7afe39d60eb86b4275272e353906c8a0190414f8bffaf21cd6d1856151c855211e27f0787ff055eaccce072e97cd61404c4839f17ff5f439ada2f383c91b77a8647b5dbd62602b3b7c1bb921555a9280b2d083e2ffebf8735b45d7079236ef50c8f6bb7ac4c05676f8377242aab5250165a107c5ffd7f0e6b68ba6d049f8ac07ba18f3c1ec002c53d2ee8f497b2a1a02e5821f8bffaff1cd6d173661b97c25759c5d64503a7fd80d885cc9571c140405e5444f17ff5ff39ada2e55849883185160e6456cd77f2f80f3393d725de7d80be4c8ae2ffebff735b45c93ca5690fe08e9f807a6117dde67c8f225a8e18f8017e3d16c5ffd7ffe6b68b91055d2acc977fc1b8c18857b3c357463f615e8ded02fe1e2e8bffb000cd6d17210aba55992eff83718310af6786ae8c7ec2bd1bda05fc3c5d17ff60019ada2e421574ab325dff06e306215ecf0d5d18fd857a37b40bf878ba2ffec00335b45c842ae95664bbfe0dc60c42bd9e1aba31fb0af46f6817f0f1745ffd80066b68b90855d2acc977fc1b8c18857b3c357463f615e8ded02fe1e2e8bffb000cd6d1721037b7b23fc65ab9cffdd11e706146efe6d814199d5fc569d27ff6001aada2e41f6f6f647f8cb5739ffba23ce0c28ddfcdb028333abf8ad3a4ffec00355b45c83e6af121abefcd69f7c40aa1b97b79e7960c92c2727f174b4affd8006bb68b907b61f49c04b5fd56a754db6b6aed51f726c567e0e1fe303a96ffb000d86d1720f54ffb90b6425d3006767cfecdd102164837121dc0fc62192eff6001b1da2e41e92c097a195b1ce2c4b9c025939862548b1a66977ef8c5d65efec00364b45c83d15812f432b639c58973804b2730c4a91634cd2efdf18bacbdfd8006c968b907a23c38411242d60dcab3c6be4657e77a2715dcb9f8e318fd7cfb000d93d1720f430482dad15c0e9e4d3453a484a62d1c48d7fbcfeec6339efaf6001b28a2e41e850905b5a2b81d3c9a68a749094c5a3891aff79fdd8c673df5ec00365145c83d0a120b6b45703a7934d14e921298b471235fef3fbb18ce7bebd8006ca28b907a142416d68ae074f269a29d24253168e246bfde7f76319cf7d7b000d9451720f428482dad15c0e9e4d3453a484a62d1c48d7fbcfeec6339efaf6001b28a2e41e8501c6db2d858364c5e573ab88cbc01b115abbc59d5c675835fc00365155c83d09f38db65b0b06c98bcae7571197803622b5778b3ab8ceb06bf8006ca2ab907a13e71b6cb6160d931795ceae232f006c456aef1675719d60d7f000d9455720f427c6f7fef6f9814e5aa869bec5dd66bb0a80a252aab33adbeff001b28abe41e84f76b12378c068c4e0cd9fe00b3a335894ac08cb153675d21ff00365158c83d09ed6236c7c4e37b1ed180c2295f3cc93a902d5bbea3cebbe7ff006ca2b2907a13d9507fe8369d58c05ace4a7ab66ff09d1b06f9d9449d7973ff00d9456620f427b12d12291a1114036d695b1d64d63f6230ba360e863af48bff01b28acd41e84f615a245234222806dad2b63ac9ac7ec461746c1d0c75e917fe0365159a83d09ec2405afd151ab2906d72329d8b4f5bb0bd951a9615ebd3d3fd06ca2b3607a13d830cc852d70bc7a392b12b630e95158975d6778828d7a94bfb0d94566d0f427b051990a5ae178f47256256c61d2a2b12ebacef1051af5297f61b28acda1e84f60a33214b5c2f1e8e4ac4ad8c3a545625d759de20a35ea52fec365159b43d09ec14664296b85e3d1c95895b1874a8ac4baeb3bc4146bd4a5fd86ca2b3687a13d8285897861d92dcbbe2df7c58e147b6bf5813bade8a7a9663b1d94566d1f427b04f3d4164e7fc1bfa7d8bbed9ba85cba6aad3b81911f52e6b64b28acda4e84f609d0695227cce9a77b2e443db6d01f5755053b28e20ea5e7aca65159b4ad09ec1390d2a44f99d34ef65c887b6da03eaeaa0a7651c41d4bcf594ca2b3695a13d82721a5489f33a69decb910f6db407d5d5414eca3883a979eb2994566d2b427b04e434a913e674d3bd97221edb680fabaa829d94710752f3d65328acda5684f609c8695227cce9a77b2e443db6d01f5755053b28e20ea5e7aca65159b4ad09ec13905eb6a846a9b1791455419598350cd2052294201a4bd0fd4da2b3695b13d8271f497fa93a29c574e0774953286077cc04f16a9c3197a39e9c4566d2b727b04e3d1f11ab2129ed6c78bb58ce48b74dc0048f1794602f48e1398acda56f4f609c793e23564253dad8f176b19c916e9b80091e2f28c05e91c273159b4ade9ec138f2085905317e18349aba29611ad395280ce8a0ad7dbd2528e72b3695be3d8271e310b20a62fc3069357452c235a72a5019d1415afb7a4a51ce566d2b7c7b04e3c6216414c5f860d26ae8a5846b4e54a033a282b5f6f494a39cacda56f8f609c78c42c8298bf0c1a4d5d14b08d69ca9406745056bede929473959b4adf1ec138f1811a2abc4b7e5cc636f5c39a52fb0a8c9364d33d8d2543273b3695be4d8271e2f234557896fcb98c6deb8734a5f6151926c9a67b1a4a864e766d2b7c9b04e3c5e468aaf12df97318dbd70e694bec2a324d934cf634950c9cecda56f93609c78bc1927b6d29590e5d347a7f52173e36e445eabfac392a3379e9b4adf27c138f177324f6da52b21cba68f4fea42e7c6dc88bd57f58725466f3d3695be4f8271e2ee649edb4a5643974d1e9fd485cf8db9117aafeb0e4a8cde7a6d2b7c9f04e3c5dc55500f4182e9b1520a05d10395799a1da1a23219951b60f5da56f93f09c78bb736b2772fdc35e55be0d1c9ff21515c35ef86c0302a3865ecb4adf27f138f176d6d64ee5fb86bcab7c1a393fe42a2b86bdf0d80605470cbd9695be4fe271e2eda66dc356c473a1827500d4ff47ba398d26a5d5cbda8e33bb3d2b7c9fd4e3c5db359cac38564d6b3066ce0c7e0eda5599f80fd157851c81b68a56f93fb9c78bb653fa7dfb7a00fe8c4a687b7b9d1a8db39ae3c86eda391dad24adf27f838f176c90b62181c1682544119d5976b99afde6e08bb69d8472559a595be4ff171e2ed9116c430382d04a88233ab2ed7335fbcdc1176d3b08e4ab34b2b7c9fe2e3c5db222d8860705a09510467565dae66bf79b822eda7611c95669656f93fc5c78bb6445b10c0e0b412a208ceacbb5ccd7ef37045db4ec2392acd2cadf27f8b8f176c884233da6e3e87c6c96a1f9eb1915c0edb37f8f98172573e5a5be4ff181e2ed90f107a0d895372104aa105655b191645b11c344effe4b020b5b7c9fe313c5db21d20f41b12a6e42095420acab6322c8b6238689dffc960416b6f93fc6278bb643a41e836254dc8412a8415956c645916c470d13bff92c082d6df27f8c4f176c8740fe2c4f771f3050cd4f152d0bf1055838de4d3fc2582a9aebe4ff18ae2ed90e71fc589eee3e60a19a9e2a5a17e20ab071bc9a7f84b05535d7c9fe315c5db21ce3f8b13ddc7cc143353c54b42fc41560e37934ff0960aa6baf93fc62b8bb6439c0b28806865faab1e7450be7deee0d4171b68fbde2c16f176f27f8c58176c8737165100d0cbf5563ce8a17cfbddc1a82e36d1f7bc582de2ede4ff18b02ed90e6e2ca201a197eaac79d142f9f7bb83505c6da3ef78b05bc5dbc9fe31605db21cdc594403432fd558f3a285f3ef7706a0b8db47def160b78bb793fc62c0bb6439b83e9a5f33360d349f11d20fd6e46b696c62d219dfc170bb7027f8c58276c8736f09471713427cebf5f06a47a5bf34fad371e68fbc82e31ae14ff18b05ed90e6dd128e2e2684f9d7ebe0d48f4b7e69f5a6e3cd1f7905c635c29fe3160bdb21cdba251c5c4d09f3afd7c1a91e96fcd3eb4dc79a3ef20b8c6b853fc62c17b6439b744a38b89a13e75faf83523d2df9a7d69b8f347de41718d70a7f8c582f6c8736e82083c9e0fe314216d36aa253e9add531caab57c52e335215ff18b05fd90e6dcf410793c1fc62842da6d544a7d35baa639556af8a5c66a42bfe3160bfb21cdb9e0e218030cf278b131a70b1479d157cc1d6efbb11b8ceec58fc62c1806439b73b1c4300619e4f162634e1628f3a2af983addf7623719dd8b1f8c58300c8736e76388600c33c9e2c4c69c2c51e7455f3075bbeec46e33bb163f18b060190e6dcec710c0186793c5898d3858a3ce8abe60eb77dd88dc67762c7e3160c0321cdb9d86e2a5bb9c8db33e973d13c71c7b5f4181b3e0d188cf06990c62c1807439b73af686710206818ea8ab468a0db85ca102ae2be762e19e277228c58300f8736e75d5ce078eda69457cd359769af01f2485071bf485933c6924618b060200e6dceb945d34a88238b325237f4fb55fa42b89b8fc0ecaf678ec88d3160c0411cdb9d7117b8edbd1d78e75c3cb01ea3eae39931cbc4355bcf1f351b62c1808339b73ae12f71db7a3af1ceb879603d47d5c7326397886ab79e3e6a36c5830106736e75c25ee3b6f475e39d70f2c07a8fab8e64c72f10d56f3c7cd46d8b06020ce6dceb8449d9c695c229bd99b2471d174d7af1890a6406db78fb4cdc160c041acdb9d7071fc5e5d85ab5fdeb3154622691540b0cc10a69b3f1f83db92c1808369b73ae0d3f8bcbb0b56bfbd662a8c44d22a816198214d367e3f07b725830106d36e75c1a0b29f00e413a7a649217b0923bae542db06c02ccc7e29ae5b06020db6dceb8331653e01c8274f4c9242f6124775ca85b60d805998fc535cb60c041b6db9d70662ca7c03904e9e992485ec248eeb950b6c1b00b331f8a6b96c180836db73ae0cc594f807209d3d32490bd8491dd72a16d836016663f14d72d830106db6e75c1983eb15990ea0a2900ee41311bb1436ad5b30288c97e2b525c06020db7dceb832f09750bceaa76d4b9a9488a2f58e4fda612476d8ffc5848b90c041b70b9d7065d12ea179d54eda9735291145eb1c9fb4c248edb1ff8b09172180836e173ae0cba25d42f3aa9db52e6a52228bd6393f698491db63ff16122e430106dc2e75c19744ba85e7553b6a5cd4a44517ac727ed30923b6c7fe2c245c86020db85ceb832e8236315977dcfce52614ecaed84ae025bd0b934fcc5862f91c041b70c9d7065cf46c62b2efb9f9ca4c29d95db095c04b7a17269f98b0c5f2380836e193ae0cb9e199eaf0acda1bc01520153ae09163169ef272ff0161a62480106dc3375c1973b333d5e159b437802a402a75c122c62d3de4e5fe02c34c490020db866eb832e76667abc2b3686f00548054eb82458c5a7bc9cbfc058698920041b70cdd7065cec5907d103437062c25cd0c5683f0fb34a257bdb7db0d4b6410836e19cae0cb9d73e21fab35d43483c8667b2c8747d8e8ef73a12f861ab1083106dc33a5c1973ad08564e1390e91330d9958d88df5945189ab681edc357c50720db8675b832e75910ac9c2721d22661b32b1b11beb28a31356d03db86af8a0e41b70ceb7065ceb22159384e43a44cc3665636237d6514626ada07b70d5f141c836e19d6e0cb9d6442b2709c87489986ccac6c46faca28c4d5b40f6e1abe283906dc33adc1973ac8117739e5e4f3b5c5661f0085ebf2798457aa7ad9357df4730db8675c832e758f22ee73cbc9e76b8acc3e010bd7e4f308af54f5b26afbe8e61b70ceb9065ceb1e45dce79793ced715987c0217afc9e6115ea9eb64d5f7d1cc36e19d720cb9d63c17cc27dbfe0030e2fdbe2c2755f1f41d699632c6abf147996dc33ae51973ac772f984fb7fc0061c5fb7c584eabe3e83ad32c658d57e28f32db8675ca32e758ee5f309f6ff800c38bf6f8b09d57c7d075a658cb1aafc51e65b70ceb9465ceb1dc4a73978cc66409cfbab78932a5edc8e5f8f3f2325f8be0cc6e19d729cb9d63b720f987c6632a965742353a5d4239b9c69e2a4061bf196599dc33ae54973ac76d41f30f8cc6552cae846a74ba8473738d3c5480c37e32cb33b8675ca92e758eda0ff877c6630cdc14d59b116cff450f1524eb5d83fc673a6870ceb9535ceb1db31ff0ef8cc619b829ab3622d9fe8a1e2a49d6bb07f8ce74d0e19d72a6b9d63b663fe1df198c337053566c45b3fd143c5493ad760ff19ce9a1c33ae54d73ac76cc0bd616dfeec9635e799eb35ff086a0a3d39d481ce33b77448675ca9be758ed9717ac2dbfdd92c6bcf33d66bfe10d4147a73a9039c676ee890ceb9537ceb1db2e2f585b7fbb258d79e67acd7fc21a828f4e7520738ceddd1219d72a6f9d63b65c5eb0b6ff764b1af3ccf59aff8435051e9cea40e719dbba2433ae54df3ac76cb84973c6abc2f8b89f66b15df6fec83237e616ddcb33b91849675ca9bf758ed96f1ef9e6045c53f3f69a28e3e5f3ee8c6a787017936773d493ceb9537feb1db2dd3df3cc08b8a7e7ed3451c7cbe7dd18d4f0e02f26cee7a9279d72a6ffd63b65ba07f9f0be47b252923569b78fc61859a48e02ba4a9dd0f6503ae54e00ac76cb730ff3e17c8f64a5246ad36f1f8c30b3491c0574953ba1eca075ca9c0158ed96e61fe7c2f91ec94a48d5a6de3f18616692380ae92a7743d940eb953802b1db2dcc3fcf85f23d929491ab4dbc7e30c2cd247015d254ee87b281d72a700563b65b980bb164915187abdb2361a0f457e3c2438c6e00a6dd110904ae54e00bc76cb72f1762c922a30f57b646c341e8afc7848718dc014dba2212095ca9c0178ed96e5e2ec59245461eaf6c8d8683d15f8f090e31b8029b74442412b953802f1db2dcbc5d8b248a8c3d5ed91b0d07a2bf1e121c63700536e888482572a7005e3b65b9784728a1c1eedd406a02e0373d749a4c337322666ad112344be54e00bd76cb72ef1a639c30b41d038bd2869672df92c061928728d2a2260c98ca9c017bed96e5dd34c73861683a0717a50d2ce5bf2580c3250e51a5444c1931953802f7db2dcbba698e70c2d0740e2f4a1a59cb7e4b01864a1ca34a889832632a7005efb65b97745f2f3a32774a9f1660fadb8ef2f42b07407ba292113208c754e00be06cb72ee74a70cd11c4f7c0e48ebbdf15dc467e092d39a1212265b58fa9c017c1d96e5dcd20f3f2d060520480ea3de623aeeb240d06b59e3f44cd0f2053802f84b2dcbb9941e7e5a0c0a40901d47bcc475dd6481a0d6b3c7e899a1e40a7005f0965b977320fe223ee57aa94bb75bdc086b20ab82ec718d4fa1335e0824e00be13cb72ee631fc447dcaf552976eb7b810d6415705d8e31a9f4266bc1049c017c2796e5dcc63f888fb95eaa52edd6f7021ac82ae0bb1c6353e84cd782093802f84f2dcbb98c0b23781f93b728937ab42c2d86b3e970e50903cd99b0a8137005f09f5b9773171646f03f276e5126f568585b0d67d2e1ca12079b33615026e00be13eb72ee62e2c8de07e4edca24dead0b0b61acfa5c394240f3666c2a04dc017c27d6e5dcc5c591bc0fc9db9449bd5a1616c359f4b8728481e6ccd85409b802f84fadcbb98b83e49daa611d50bef7808ead0619cbf08fcd298d69b0c2538005f09f6b977316f08a60df8fa0c9a96bcd7fd98b997a60ca5e78daa3619ee7100be13ee72ee62dd114c1bf1f419352d79affb31732f4c194bcf1b546c33dce2017c27dce5dcc5ba229837e3e8326a5af35ff662e65e9832979e36a8d867b9c402f84fb9cbb98b7445306fc7d064d4b5e6bfecc5ccbd30652f3c6d51b0cf738805f09f73977316e81673383c772c2c239a4601838fd888c50abb36a061a08b110be13ee82ee62dcf2ce67078ee585847348c03071fb1118a15766d40c341162217c27dd05dcc5b9e59cce0f1dcb0b08e6918060e3f6223142aecda8186822c442f84fba0bb98b73c3fac1a908fc3e3d49ef6341475226e23021c11000d05fc895f09f74277316e770b6a8dcdf5ea4a610ab29020e0a30440b07a7dfd1a0d9d13be13ee85ee62dced16d51b9bebd494c215652041c146088160f4fbfa341b3a277c27dd0bdcc5b9da2daa3737d7a929842aca4083828c1102c1e9f7f46836744ef84fba17b98b73b45b546e6faf525308559481070518220583d3efe8d06ce89df09f742f7316e76842bb358c350728c877ef2a06008e6c05b3ea3bcea0db753ce13ee85fe62dcecf1188c3c54070d448bca47c03f77b00061416d39a41b88e7ac27dd0c0cc5b9d9d2311878a80e1a8917948f807eef6000c282da73483711cf584fba18198b73b3a46230f1501c35122f291f00fddec0018505b4e6906e239eb09f74303316e7674185876d6d9e924fdb1ea0817b236282b4cf8f8cf0dc617d713ee860762dcece730b0edadb3d249fb63d4102f646c505699f1f19e1b8c2fae27dd0c0ec5b9d9ce6161db5b67a493f6c7a8205ec8d8a0ad33e3e33c37185f5c4fba181d8b73b39c4ed60f63a5abaaa55c1668b5880f6955140a22756e3262b99f74303c16e7673729be777421b9d80284f2f963067cfaa4d456a0e7dc6669743ee860792dcece6d537ceee84373b00509e5f2c60cf9f549a8ad41cfb8ccd2e87dd0c0f25b9d9cda330c367d5d49e2c1e0920d841052128dfd9cdf9c719b49d1fba181e5b73b39b366186cfaba93c583c1241b0820a4251bfb39bf38e33693a3f74303cb6e767366584332a24b8a0dbf4f0e5e0837a67232a2b5da6ec66ecb48ee860797dcece6cb3c98bdf16d769e366ae2e40865ab0c5ff1ae10da8cdf3a92dd0c0f30b9d9cd950543d48fb14fbf24a28bf008c1b440ba8f9e7db219c01926ba181e6273b39b290a87a91f629f7e494517e011836881751f3cfb643380324d74303cc4e7673652150f523ec53efc928a2fc02306d102ea3e79f6c86700649ae8607989cece6ca42a1ea47d8a7df925145f80460da205d47cf3ed90ce00c935d0c0f3139d9cd948543d48fb14fbf24a28bf008c1b440ba8f9e7db219c01926ba181e6273b39b290348ceaa3005a674c1e4429102ce63f4ca01212403804c8d84303cc4f7673651f6919d54600b4ce983c88522059cc7e9940242480700991b08607989eece6ca3e5e460338d7cc1fe845d6cc38a9f7252d2c8aa4fde014c7620c0f313ed9cd947b489e5f1e85fac2885873c0694a4c72550557a5f8c02b32c5181e627eb39b28f51d4f16e9e25807c87dada8ca8af70ca4b6f1a7ee8058098b303cc4fe673651e93a9e2dd3c4b00f90fb5b519515ee19496de34fdd00b01316607989fcce6ca3d2014eb4545fc2a1d9c37ccb22223a5a8d8808fbb70161ca2dc0f313fa9cd947a3029d68a8bf8543b386f996444474b51b1011f76e02c3945b81e627f539b28f46053ad1517f0a87670df32c8888e96a362023eedc058728b703cc4fea73651e8c0a75a2a2fe150ece1be6591111d2d46c4047ddb80b0e516e07989fd4e6ca3d1814eb4545fc2a1d9c37ccb22223a5a8d8808fbb70161ca2dc0f313fa9cd947a3029d68a8bf8543b386f996444474b51b1011f76e02c3945b81e627f539b28f46053ad1517f0a87670df32c8888e96a362023eedc058728b703cc4fea73651e8c0336c82dcb7b36f998b2bb909138b6ebeb0c0377db0e6bae17989fd4f6ca3d17f66d905b96f66df33165772122716dd7d61806efb61cd75c2f313fa9ed947a2fe59c4641fb530411df9750c1c448be2f56f4339f3c39c8f86e627f53eb28f45fb3f9b20ec40c304f3bfb040307f75ede58ac8cfe4873ac30ecc4fea7e651e8bf50b489a8557e88c9f4c26a858f54a03c5c1d3fbc60e772a1e989fd4fdca3d17e91691350aafd1193e984d50b1ea94078b83a7f78c1cee543d313fa9fb947a2fd22d226a155fa2327d309aa163d5280f17074fef1839dca87a627f53f728f45fa45a44d42abf4464fa613542c7aa501e2e0e9fde3073b950f4c4fea7ee51e8bf48409c010254eb4cac8f30ad874afe6456c982185de77445ea89fd4fdda3d17e8f0d4a5ab180391c10eb2783068c5af0a83f468cb8ceea2fd613fa9fbc47a2fd1d1a94b56300723821d64f060d18b5e1507e8d19719dd45fac27f53f788f45fa3a35296ac600e47043ac9e0c1a316bc2a0fd1a32e33ba8bf584fea7ef11e8bf4746a52d58c01c8e087593c183462d78541fa3465c677517eb09fd4fde23d17e8e860b803c4d9f443c67f3e5860bc0d327ea0ab2789eea4a1623fa9fbc57a2fd1cf4d8260368a4b0a44cb42d8b96e788cf7ed98ab10dd4ae6c57f53f78bf45fa39d27171919eaf89741634bd96ad34f41ea8773b21eba97718bfea7ef18e8bf47394e2e3233d5f12e82c697b2d5a69e83d50ee7643d752ee317fd4fde31d17e8e72286ebd148244dfbd59f58da3439b2fa4ca112477ea5f6a30fa9fbc64a2fd1ce350dd7a290489bf7ab3eb1b4687365f49942248efd4bed461f53f78c945fa39c62dcd4cfedf7601ad349c5e8504cae68dd486eddca97f4cc4ea7ef1938bf4738b5b9a99fdbeec035a6938bd0a0995cd1ba90ddbb952fe9989d4fde32717e8e71643478ca8543a896c9f37a20c0989c231fe5e136fa5fed714a9fbc64f2fd1ce2b12a171fd7ed795910b356c100971ac5ea8fe82dc4bff522a53f78c9f5fa39c552542e3fafdaf2b22166ad82012e358bd51fd05b897fea454a7ef193ebf4738aa4a85c7f5fb5e56442cd5b04025c6b17aa3fa0b712ffd48a94fde327d7e8e7154211de898cd1f2f402671887841eb8aeff43672df5ffc35539fbc64fbfd1ce2a7423bd1319a3e5e804ce310f083d715dfe86ce5bebff86aa73f78c9f7fa39c54e1089fb100adf3fb8668c49d8fe0c53ba7d1c277a7ff2794f7ef193f0f4738a9b2113f62015be7f70cd1893b1fc18a774fa384ef4ffe4f29efde327e1e8e715364227ec402b7cfee19a312763f8314ee9f4709de9ffc9e53dfbc64fc3d1ce2a6c1062312d2d5c807b012876bfe6c0c5ce952397d0ff956e7cf78c9f88a39c54d720c4625a5ab900f60250ed7fcd818b9d2a472fa1ff2adcf9ef193f114738a9ae4188c4b4b57201ec04a1daff9b03173a548e5f43fe55b9f3de327e228e71535c0f23e2164146868fd609ddf72c64566f555f1a84fcad17e8bc64fc461ce2a6b71e47c42c828d0d1fac13bbee58c8acdeaabe3509f95a2fd178c9f88c39c54d6e3c8f8859051a1a3f582777dcb19159bd557c6a13f2b45fa2f193f118738a9adc0531695ee096b7367d1517b15980db75573b3024e56a6346e327e231e71535b70a62d2bdc12d6e6cfa2a2f62b301b6eaae766049cad4c68dc64fc463ce2a6b6e14c5a57b825adcd9f4545ec566036dd55cecc09395a98d1b8c9f88c79c54d6dc298b4af704b5b9b3e8a8bd8acc06dbaab9d981272b531a37193f118f38a9adb8531695ee096b7367d1517b15980db75573b3024e56a6346e327e231e71535b70323f8488e93969876f691e23267996a593a86099ad4e0cdd64fc463de2a6b6df647f0911d272d30eded23c464cf32d4b2750c1335a9c19bac9f88c7bc54d6dbe55106ad07b4828d58a6aa08490448290fae3de63b539d77693f118f88a9adb7b36332e4dccf2d462e19b690116e72d1ca20a18c46a7552ee27e231f21535b6f56c665c9b99e5a8c5c336d2022dce5a3944143188d4eaa5dc4fc463e42a6b6dea64df11e40a2dd4435333cbfc51fadc6d346abf0ea9d6efb99f88c7c954d6dbd355d07c74eabe2b3e732dbff09a53e0d51517da1a53af83743f118f93a9adb7a537b35196abded934b321a7d92b05e9a4d6721031a760aae97e231f28535b6f496f66a32d57bdb26966434fb2560bd349ace420634ec155d2fc463e50a6b6de926adf9f0785dde78a994cc75ca275ce8e060a9cc39d844fa6f88c7ca24d6dbd2361d196bbe21e51ccff5fb6b13b49c516b85795843b0a434ef118f9459adb7a454fb586249a9f2651cb85955a6cf1b2281cf1870576162a9ee231f28c35b6f4892b7d64f60ba0cf5b63d152acd0418c4ae6256a07ec2df93ec463e5196b6de91156fac9ec17419eb6c7a2a559a0831895cc4ad40fd85bf27d88c7ca32d6dbd2223a07ec8504e5c0255c0b72ab3764592644d8041cb0b988fc118f9466adb7a443002231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0088c6db80b80c0a13743539949b691cd7c990d985d2d7e48c7ca3396dbd221401118db70170181426e86a732936d239af9321b30ba5afc918f94672db7a442802231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0088c6db80b80c0a13743539949b691cd7c990d985d2d7e48c7ca3396dbd221401118db70170181426e86a732936d239af9321b30ba5afc918f94672db7a442802231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0014d9342d8e6e8ccb40fb618c91c744d275d33582d2d9888d7ca3396ebd2213ff29b2685b1cdd199681f6c319238e89a4eba66b05a5b3111af94672dd7a4427fe5364d0b639ba332d03ed8632471d1349d74cd60b4b662235f28ce5baf4884ffc32dbfa1949d6e911d4a1345c84984e8e5adc081396cde86ce519cb76e9109ff765b7f43293add223a94268b909309d1cb5b810272d9bd0d9ca3396edd2213fee57824111fdbe26ff1f4af96a08bf623417b27c4b5b3945b494672ddca4427fdb3b16dad0d1ded0b60b5c1acc07dcec62dba75493b6742f6a28ce5bba4884ffb502400e4e7a202423e37e5d90061800c0639105246cea02d5519cb7759109ff6904801c9cf4404847c6fcbb200c300180c7220a48d9d405aaa3396eeb2213fed209003939e880908f8df97640186003018e441491b3a80b554672ddd64427fda412007273d101211f1bf2ec8030c006031c882923675016aa8ce5bbac884ffb482400e4e7a202423e37e5d90061800c0639105246cea02d5519cb7759109ff6904801c9cf4404847c6fcbb200c300180c7220a48d9d405aaa3396eeb2213fed201c15ec4b5e6b8bb0ac5d8bf97c5e58139083a5183a825955672ddd65427fda3f382bd896bcd7176158bb17f2f8bcb02721074a307504b2aace5bbaca84ffb47e7057b12d79ae2ec2b1762fe5f179604e420e9460ea0965559cb7759509ff68fc6cc1bb07c9bee03d2fb287c3d950e897305f84bed4146eac396eeb2b13fed1f76595cebc69e043322c2b377fa8fff9290d01657aa82a815972ddd65727fda3ed573df625aa23091c251c96f7485e1a4cc64526f25056a6b3e5bbacaf4ffb47d93a8e44f82aa894f016ff55e6871a5c9438cca9e1a0aef168cb77595f9ff68fb1012ee29d2bb3ac97fac4d3c50492e1231ddbafc0415f86d296eeb2c03fed1f61025dc53a5767592ff589a78a0925c2463bb75f8082bf0da52ddd65807fda3ec204bb8a74aeceb25feb134f14124b848c776ebf01057e1b4a5bbacb00ffb47d84097714e95d9d64bfd6269e2824970918eedd7e020afc3694b7759601ff68fb0812ee29d2bb3ac97fac4d3c50492e1231ddbafc0415f86d296eeb2c03fed1f61025dc53a5767592ff589a78a0925c2463bb75f8082bf0da52ddd65807fda3ec204bb8a74aeceb25feb134f14124b848c776ebf01057e1b4a5bbacb00ffb47d8402383a742b038ceb52f300a7a3fceb9899a1a3c1dafc50d4c77596020f68fb07f47074e8560719d6a5e6014f47f9d73133434783b5f8a1a98eeb2c041ed1f60fe1a20f5b79745bd8c898651e0f5990e2114ab4c73bf15d932dd658084da3ec1fb3441eb6f2e8b7b19130ca3c1eb321c42295698e77e2bb265bacb0109b47d83f66883d6de5d16f63226194783d664388452ad31cefc5764cb7596021368fb07ec5d1a066990906f1c18f8b6ffa3269903519cbf9af8b06d97eb2c0427d1f60fd74646657ff78360effeb795f73cab5a014f7bdb32f1627f30d6580850a3ec1fad189f23acc5694497ca3553e66fb4dbfd4b3a1262e2c6a262acb010a247d83f59313e47598ad2892f946aa7ccdf69b7fa967424c5c58d44c5596021448fb07eb2627c8eb315a5125f28d54f99bed36ff52ce8498b8b1a898ab2c042891f60fd64510b761301aca7761e70c72b740507e50612ef141636b716658085133ec1fac72e2944d2d9bbd1a409a7b64ede6837c4b8683a252c6f122dcb010a277d83f58d5c5289a5b377a348134f6c9dbcd06f8970d0744a58de245b9602144efb07eb1a44b76bf83d51c947f36501336fff070d8de34491b1bdecb82c04289ef60fd6331581309d51061547b3902a5ed65c3615c808e520637d7d715808513eec1fac652b02613aa20c2a8f672054bdacb86c2b9011ca40c6fafae2b010a27dd83f58ca5604c2754418551ece40a97b5970d857202394818df5f5c5602144fbb07eb194381bdd975e932cf569477aeea93fd8a8ec8985001bed8f8bc04289f860fd63277037bb2ebd2659ead28ef5dd527fb151d9130a0037db1f17808513f0c1fac64e6c81cf0a50af368d71e413b29b5d8a9e5e686ffd6fb7e230010a27e283f58c9b6515f6c177c0efd2b08e4f5d2d193d3769133bf7df71686102144fc607eb1935563e462fc5e4625d2de2c6b25090a2697e68d3ecbee474c304289f8d0fd63269388ee50c622b4772288bb55c977f6ccda91403d67dca8d8708513f1b1fac64d1711dca18c4568ee451176ab92efed99b522807acfb951b0e10a27e363f58c9a26e4decde5f0fa0806ef4fd6a545bdb3150926b56f72bda1d2144fc6d7eb1934368ae32699481c3b8aab022cc9f15de5d4d6732aaee59583b4289f8dbfd6326855d6ebd7fff660a2922266d913489e4b54710c152dcb454778513f1b8fac64d0946efd3acd52e970a1113031a5f71f1653a63dea2b96a4cf00a27e372f58c9a1119f2000680bfb0cbeeec2e2cb5420ac5210a194272d63de1144fc6e6eb19342133e4000d017f6197ddd85c596a84158a42143284e5ac7bc2289f8dcdd632684267c8001a02fec32fbbb0b8b2d5082b1484286509cb58f784513f1b9bac64d0845ba258e0dc6009174427995da06e7e23b493261096b39309a27e373858c9a10743570a6e8f2294e655155ab3373b24421568a81e2d68ca1444fc6e71b193420d12c06d89f4a7ac8476f0dd5e64d4707ed713ac395ad3382989f8dce4632684192580db13e94f5908ede1babcc9a8e0fdae275872b5a6705313f1b9c8c64d08324b01b627d29eb211dbc375799351c1fb5c4eb0e56b4ce0a627e373918c9a10642215c4fc7b9fe6db844d12eb1d01abf164dfbdc7d69b654d4fc6e724193420c7442b89f8f73fcdb7089a25d63a0357e2c9bf7b8fad36ca9a9f8dce483268418e14696c9ec4e21e25ddfa73a46a64d7c03fc1531c5a6f39363f1b9c9164d0831b28d2d93d89c43c4bbbf4e748d4c9af807f82a638b4de726c7e373922c9a1063651a5b27b1388789777e9ce91a9935f00ff054c7169bce4d8fc6e724593420c6c2f5dbda2fd7373e6bc99c51b4984e5fcaa4cf4dfd37b6db2f8dce48c268418d75ebb7b45fae6e7cd79338a369309cbf95499e9bfa6f6db65f1b9c9184d0831ae49894f38cc305252bf2d3c651c71bfed55762f7c4def5acce37392319a10635b1f24f71e6ec3275d4b20a0c22f41a7d5572ebaf59be0599ac6e724643420c6b53e49ee3cdd864eba964141845e834faaae5d75eb37c0b3358dce48c868418d6a08a63526916f202cf948ab00b364c75008fd47d36f830a6c1b9c9191d0831ad3114c6a4d22de4059f291560166c98ea011fa8fa6df0614d837392323a10635a62298d49a45bc80b3e522ac02cd931d4023f51f4dbe0c29b06e724647420c6b4c4531a9348b790167ca4558059b263a8047ea3e9b7c185360dce48c8e8418d6981675ab15ed5485876150d8032caa9cfb3c16d933f8324ac2b9c9191e0831ad2f2ceb562bdaa90b0ec2a1b006595539f6782db267f06495857392323c10635a5e59d6ac57b552161d8543600cb2aa73ecf05b64cfe0c92b0ae724647820c6b4bc3fbfb15c4106aef2d74ce8115bb30fd48cf9259cc193fa16ce48c8f1418d69770b91bb65586fe09d7b5ff81aadc447a3c634a7368329982e9c9191e3831ad2ed172376cab0dfc13af6bff0355b888f478c694e6d0653305d392323c70635a5da2e46ed9561bf8275ed7fe06ab7111e8f18d29cda0ca660ba7246478e0c6b4bb45c8ddb2ac37f04ebdaffc0d56e223d1e31a539b4194cc174e48c8f1c18d69768452e0f025d608c8f82c5a9a2d2a2a2370f8ccf65329b26eac9191e3931ad2ecf166e76b191239bd6d2517b3d9ba36c68cb5bfac76537f1d692323c73635a5d9d2cdced63224737ada4a2f67b3746d8d196b7f58eca6fe3ad246478e6c6b4bb3a59b9dac6448e6f5b4945ecf66e8db1a32d6feb1d94dfc75a48c8f1cd8d6976743f860e395f7f616e5f5201e4d3798b410722323829c132b59191e39c1ad2ece70b1e751f956145948b6a2bc19d513e7cba86c06d5384096c2323c73935a5d9cd163cea3f2ac28b2916d457833aa27cf9750d80daa70812d846478e726b4bb39a2c79d47e558516522da8af067544f9f2ea1b01b54e1025b08c8f1ce4d697673458f3a8fcab0a2ca45b515e0cea89f3e5d436036a9c204b61191e39c9ad2ece683df9aaa62c76dc008368e411cb720fc654ae62d238423ac3323c73945a5d9ccf0805adf92f503ab8d397f01b8d424787559f21a1708619876478e729b4bb399d100b5bf25ea07571a72fe0371a848f0eab3e4342e10c330ec8f1ce536976733a2016b7e4bd40eae34e5fc06e35091e1d567c8685c218661d91e39ca6d2ece674402d6fc97a81d5c69cbf80dc6a123c3aacf90d0b8430cc3b23c7394da5d9cce80c6d383fcb662e45064529b0ca82a0700634761408633c77478e729c4bb399cf18da707f96cc5c8a0c8a5361950540e00c68ec2810c678ee8f1ce5389767339e31b4e0ff2d98b9141914a6c32a0a81c018d1d850218cf1dd1e39ca712ece673c6369c1fe5b31722832294d865415038031a3b0a04319e3ba3c7394e25d9cce7852e5dca98cc567083118c3049e882efb0f89bd3d86356b7578e729c5bb399cef31de11ffefed50c82ef7ae01336e85f0cb55d6780c6c7aebf1ce538c767339dd63bc23ffdfdaa1905def5c0266dd0be196abacf018d8f5d7e39ca718ece673ba538aa0ac9617c5d888a4dffcc4183fbdd999b5dd31b38fb0c7394e32d9cce77333279a0602920e68de0fe7f17e8ea7765f75c7b76368c3628e729c66b399cee5664f340c05241cd1bc1fcfe2fd1d4eecbeeb8f6ec6d186c51ce538cd67339dca58b0c0c4e0aabc5b4505c7bdf098c5d42a197ada8da4b18b39ca719bce673b933d73da3697b7fb6e56d1b773d78fb3a3007551b21b4b07177394e3389cce772506fa0d1a05d279947a6996dfa57d8f40ad2cff613697b22fe729c672399cee490df41a340ba4f328f4d32dbf4afb1e815a59fec26d2f645fce538ce47339dc921be834681749e651e9a65b7e95f63d02b4b3fd84da5ec8bf9ca719c8e673b92437d068d02e93cca3d34cb6fd2bec7a056967fb09b4bd917f394e3391cce772486fa0d1a05d279947a6996dfa57d8f40ad2cff613697b22fe729c672399cee4906b53fbed90b1b54719f903eca610101051e24823d2f7e9fde538ce48339dc91f62ba5087f7c5ed4600b82fd1427e481b5006ec44a5f177fcca719c91673b923d5186f9bcc5ee5d43ce36879a7b5ab8314c5034864be493fa94e33923ce7724792f204c26623f3d3f6933372ced13985d44e2c50997cacbf629c672489cee48f15e40984cc47e7a7ed2666e59da2730ba89c58a132f9597ec538ce49139dc91e2489389465f5f77b5719304abaaac896fbfcd70235f2cd3d9a719c92373b923c31d396b3995217222afec314f4bb73ada2bdd3c43be5b4bb44e339247e77247853a72d6732a42e4455fd8629e976e75b457ba78877cb697689c67248fcee48f0a00f805932ae84b428c76ed35253b13635bb74d0bf96ed2d238ce49209dc91e1301f00b2655d0968518edda6a4a7626c6b76e9a17f2dda5a4719c92413b923c2603e0164caba12d0a31dbb4d494ec4d8d6edd342fe5bb4b48e33924827724784c07c02c9957425a1463b769a929d89b1addba685fcb769691c6724904ee48f0980f805932ae84b428c76ed35253b13635bb74d0bf96ed2d238ce49209dc91e1301f00b2655d0968518edda6a4a7626c6b76e9a17f2dda5a4719c92413b923c2603e0164caba12d0a31dbb4d494ec4d8d6edd342fe5bb4b48e33924827724784c0081522424a8823fe083cc28a93e7d9a887e8e1f9b76b0d1d6724904fe48f097f102a4484951047fc1079851527cfb3510fd1c3f36ed61a3ace49209fc91e12fe205489092a208ff820f30a2a4f9f66a21fa387e6ddac34759c92413f923c25fc40a9121254411ff041e614549f3ecd443f470fcdbb5868eb3924827f24784bf80d647cd17ee4c298509250a134dbc2832ad07b9876b275d7724904ff48f097ef1ac8f9a2fdc98530a124a14269b7850655a0f730ed64ebaee49209fe91e12fde3591f345fb930a6142494284d36f0a0cab41ee61dac9d75dc92413fd23c25fbc6b23e68bf72614c284928509a6de14195683dcc3b593aebb924827fa4784bf78625a25c4c4aeac3cd5eb320b441a502d594a15846b29017824904ff58f097eef50c6a4365fbfdb31789c8c0e7e92c8555ed68705d653a6f149209fec1e12fddd2d9fa11995e2391abdff4014f383b8a569ef6a08aca8f1e392413fd93c25fbb95b3f42332bc472357bfe8029e707714ad3ded4115951e3c724827fb2784bf7724290dd132deb6722c4c3284bc46d0a905400041fb2a56b8f4904ff65f097eee3113412d3323950fd564c788f7f383d1b5442643c654c7b1f9209fecce12fddc5226825a66472a1faac98f11efe707a36a884c878ca98f63f2413fd99c25fbb8a44d04b4cc8e543f55931e23dfce0f46d510990f19531ec7e4827fb3384bf771415b2ef46682d0aa27f29ec73f02010d54e557de02a657cfd904ff668097eee272b65de8cd05a1544fe53d8e7e04021aa9caafbc054caf9fb209fecd012fddc4e56cbbd19a0b42a89fca7b1cfc08043553955f780a995f3f6413fd9a025fbb89c39a9d2e017cad7cbc6158b97775eaea51eee4afe532d8bed827fb3414bf771377353a5c02f95af978c2b172eeebd5d4a3ddc95fca65b17db04ff668297eee26e72b9a42d358de1e6e51c5655d3d8e28f27fb87f64cb7d3b709fecd062fddc4db7185a107417e468596fed4a39e0fed18fc396be999714b6f13fd9a0d5fbb89b56f1d9abb595f0fc2fac3d13f327e022ca4b533d032e43adf27fb341bbf7713696a4d8e238920a23dc24dca765b5a2c53f5acc39d65ca19bf4ff668387eee26d160ad74f3e8a3c7335161bce4ad1280a2979be337cb95d77f9fecd071fddc4da14d6d4294a7aa111e6f89a1c15083293fdb7a226c972d53003fd9a0e4fbb89b4126ecddd625b6a4f4abd96b7a97647a7a6336a0d62e5c4a017fb341caf77136814dd9bbac4b6d49e957b2d6f52ec8f4f4c66d41ac5cb89402ff668395eee26d0227c5d0056d3d168a7c2bd5e253f011e4391cdf55b972cc06fecd072cddc4da034f8ba00ada7a2d14f857abc4a7e023c87239beab72e5980dfd9a0e59bb89b4062b2998c28b56dce1bd757f81461e6f8b90b5d953e5ccd41cfb341cb47713680b5653318516adb9c37aeaff028c3cdf17216bb2a7cb99a839f6683968ee26d01638b8bbb703bdf63ec29c25fd0ed7e628ef19c14c9734f474ecd072d2dc4da02b7171776e077bec7d85384bfa1dafcc51de3382992e69e8e9d9a0e5a5b89b40566ef54788e55a5bb2d736bfec31bdc09e68a9612f5cd575d4b341cb4c713680ab69fce7bea1173a1d7b33a7d059d9a9377d951e5bb9ac8faa66839699e26d0155600c282a1890f6f2c32d7798aa117a69a76c98b4735ac355cd072d34c4da02a94c2aa9010784709d532117294a811ccdfb1b8d65e6b72aac9a0e5a6a89b405512467aaaee56b63f27308564a8b606196a27976c8cd6ff95a341cb4d613680aa148cf555dcad6c7e4e610ac9516c0c32d44f2ed919adff2b4683969ac26d015421db103686c10128198e7812223dfae553628372035c18969d072d3594da02a833b6206d0d820250331cf024447bf5caa6c506e406b8312d3a0e5a6b29b40550602d6664e86a2ccbe30642c8085dce14f84e3387dd707c9a841cb4d663680aa0b05accc9d0d45997c60c859010bb9c29f09c670fbae0f935083969acc6d0154160b59993a1a8b32f8c190b2021773853e138ce1f75c1f26a1072d3598da02a82c16b33274351665f1832164042ee70a7c2719c3eeb83e4d420e5a6b31b40550582d6664e86a2ccbe30642c8085dce14f84e3387dd707c9a841cb4d663680aa0b05accc9d0d45997c60c859010bb9c29f09c670fbae0f935083969acc6d015416041abec4e7f15b243e5d148196d967bdbe5107b72c1f40e1172d3598ea02a82bf0f6a3149d48de73f9868b82ad18b1fb2766352e283e9c023e5a6b31e4055057d1ed46293a91bce7f30d17055a3163f64ecc6a5c507d38047cb4d663c80aa0afa3da8c52752379cfe61a2e0ab462c7ec9d98d4b8a0fa7008f969acc79015415f40763e2fb7ad1bcb4900be94e82b7258e5f5cf3111f4fa5202d3598f302a82be70ec7c5f6f5a379692017d29d056e4b1cbeb9e6223e9f4a405a6b31e6055057ce1d8f8bedeb46f2d2402fa53a0adc96397d73cc447d3e9480b4d663cc0aa0af9c3b1f17dbd68de5a4805f4a7415b92c72fae79888fa7d290169acc79815415f3802508864837e4e00cd84bce021d080e0a2118d0ef4fbf603d3598f312a82be6f04a110c906fc9c019b0979c043a101c144231a1de9f7ec07a6b31e6255057cde094221920df938033612f380874203828846343bd3efd80f4d663cc4aa0af9bc128443241bf270066c25e7010e840705108c6877a7dfb01e9acc79895415f3782508864837e4e00cd84bce021d080e0a2118d0ef4fbf603d3598f312a82be6f04a110c906fc9c019b0979c043a101c144231a1de9f7ec07a6b31e6255057cde0203471cdb5f602eb2df560006a7e602330a59fba3eff24f5d663cc4ba0af9bbf4068e39b6bec05d65beac000d4fcc046614b3f747dfe49ebacc79897415f377e0ce41fe3ae3a8e64849ba7f9a057a8876ed8dae5fbfe37d8598f312f82be6efb19c83fc75c751cc909374ff340af510eddb1b5cbf7fc6fb0b31e625f057cddf633907f8eb8ea3992126e9fe6815ea21dbb636b97eff8df61663cc4be0af9bbec6720ff1d71d4732424dd3fcd02bd443b76c6d72fdff1bec2cc79897c15f377d85a5456e7ba0b69001680a791fbd8b07199d00a5cbfe5218698f312f92be6efaf40bb067c4a7954b7f9c7771bee0f88dddfe270b67fcbe70e31e625f357cddf5d0d8865a56b552c27c055162fd27d39b66c073d69ff99721d63cc4be7af9bbeb91b10cb4ad6aa584f80aa2c5fa4fa736cd80e7ad3ff32e43ac79897cf5f377d7236219695ad54b09f015458bf49f4e6d9b01cf5a7fe65c8758f312f9ebe6efae46c432d2b5aa9613e02a8b17e93e9cdb36039eb4ffccb90eb1e625f3d7cddf5c86498b3038bb54533d2178af51e31c3616cb6329cf998c5d73cc4be7bf9bbeb8f5543beb3edcd0d1f70f53de232c1aebd85aec136f3332faf79897cf8f377d71d3699d614b1fc9cf6aeb0a3bc5be18575b79fde6ae668035ff312f9f2e6efae396d33ac2963f939ed5d614778b7c30aeb6f3fbcd5ccd006bfe625f3e5cddf5c726679b0ff9e54f6928788b6e965e43dd18ac1d5a899a1b180cc4be7cc9bbeb8e35905baac130c6fdcdbd795cac226a39dc1c6074e334507029897cf9a377d71c53e1dce04fc7b62718475538d7aab6f362fce6a99668bb206312f9f356efae389084df4b6cf59479ad5b0cf12ebb506670bdf312fcd19080d625f3e6bddf5c711109be96d9eb28f35ab619e25d76a0cce17be625f9a32101ac4be7cd7bbeb8e222137d2db3d651e6b56c33c4baed4199c2f7cc4bf34642035897cf9af77d71c44426fa5b67aca3cd6ad8678975da833385ef9897e68c8406b12f9f35eefae388810f1a419cbf6fc6527d31926b1ae8e6b6a356ef9d19224d725f3e6bedf5c710f21e3483397edf8ca4fa6324d635d1cd6d46addf3a32449ae4be7cd7dbeb8e21e43c690672fdbf1949f4c649ac6ba39ada8d5bbe74648935c97cf9afb7d71c43c139f797b361a65e10b5ef12d83d29b55fdedd3cb8c92caba2f9f35f7fae38877273ef2f66c34cbc216bde25b07a536abfbdba797192595745f3e6beff5c710ee4e7de5ecd86997842d7bc4b60f4a6d57f7b74f2e324b2ae8be7cd7dfeb8e21dc290e24868735b1c027bdb16414f302aa9bb0fa596497f9d27cf9afc0d71c43b7521c490d0e6b63804f7b62c829e605553761f4b2c92ff3a4f9f35f81ae38876e304aeac6f33949b86bbced884a2a32a51b06456292618b4af3e6bf045c710edb6095d58de6729370d779db109454654a360c8ac524c31695e7cd7e08b8e21db64d3e03c8a347a9997bb9de191f06f28f185b71874987d12ccf9afc1271c43b6b268e603e1cf1d5eac439e42a346c0d18dcf93f0b9311465a9f35f825e38876d54d1cc07c39e3abd58873c85468d81a31b9f27e1726228cb53e6bf04bc710edaa264bd9a54a29da62ddadb8a0c80e5c5e2027582b4c46bd6b7cd7e0988e21db534c97b34a9453b4c5bb5b7141901cb8bc404eb056988d7ad6f9afc1311c43b6a62541bf41ff09ec43437d0a7b169799732cdfbcaa311c99aef35f826338876d4b4a837e83fe13d88686fa14f62d2f32e659bf79546239335de6bf04c6710eda96211955b4d28a33c4daba51e450bc8dc75fc14ea5c4740abccd7e098de21db52b4232ab69a5146789b574a3c8a1791b8ebf829d4b88e815799afc131bc43b6a561077af80208b51cb37af6f8939505f182b47969411d1cef435f826388876d4ab20ef5f004116a3966f5edf1272a0be30568f2d2823a39de86bf04c7110eda95641debe00822d472cdebdbe24e5417c60ad1e5a5047473bd0d7e098e221db52ac0fcfd4addabd11118a41a441c0e120bc067f109d8e901ba2afc131c543b6a5571f9fa95bb57a22231483488381c241780cfe213b1d2037455f82638a876d4aae3f3f52b76af4444629069107038482f019fc42763a406e8abf04c7150eda955c0a90fe1bac4b0b441ed34a05fd672ddae03ae0e9748281167e098e2b1db52ab71521fc37589616883da6940bface5bb5c075c1d2e905022cfc131c563b6a556e2a43f86eb12c2d107b4d2817f59cb76b80eb83a5d20a0459f82638ac76d4aadc5487f0dd62585a20f69a502feb396ed701d7074ba41408b3f04c7158eda955b835223a679b1336f9b9fac857ccd105a8aff06a944829b568e098e2b2db52ab6f6a4474cf36266df373f590af99a20b515fe0d52890536ad1c131c565b6a556de609b424b42af5e9eb4b1495729a23e9d6c04064e20a879a482638acc6d4aadbb4d48dd435bc13ff53628baa649a2a535844a68994152974a04c71599da955b7526a413338de502a239179d4489a37265b4d72d2f82a6d295098e2b34b52ab6e94d4826671bca0544722f3a891346e4cb69ae5a5f054da52a131c56696a556dd226a2a57b0df68d40b1249d0a1cebf1917f9f10bb0a9cee552638acd3d4aadba34d454af61bed1a8162493a1439d7e322ff3e21761539dcaa4c7159a7a955b746269cee990e3cb7ba91589c206a0dee40aabe9ee92a755d5598e2b35052ab6e8b4d39dd321c796f7522b13840d41bdc81557d3dd254eabaab31c566a0a556dd16268613110f5561a2122898799e95e0fd573cd7a1a9d71957638acd424aadba2b4d0c26221eaac344245130f33d2bc1faae79af4353ae32aec7159a84955b7456262aa4f113b80940156889de70b5abf00935ba83a75e095e8e2b350a2ab6e8ab4c5549e2277012802ad113bce16b57e0126b75074ebc12bd1c566a14556dd15624bcec712542a7b822684f71b934d7bad119460b9d79c97b38acd429aadba2ab4979d8e24a854f7044d09ee37269af75a2328c173af392f67159a85355b745561f060a716b6d2198566765bedb3186e5f0a7742b75e8c9ede2b350a7ab6e8aab3e0c14e2d6da4330accecb7db6630dcbe14ee856ebd193dbc566a14f56dd1556082a8272841709192663bef3632443926ee02caad7a4cbb88acd429fadba2aab105504e5082e12324cc77de6c6488724ddc05955af499771159a853f5b74555620aa09ca105c2464998efbcd8c910e49bb80b2ab5e932ee22b350a7eb6e8aaac4154139420b848c9331df79b19221c9377016556bd265dc4566a14fd6dd155580eba7fd517d3144a3302172e28a261219a4526aa7a4e5f89acd429fbdba2aaaf1d74ffaa2fa6289466042e5c5144c243348a4d54f49cbf1359a853f7b745555e3ae9ff545f4c5128cc085cb8a289848669149aa9e9397e26b350a7ef6e8aaabc01e6575594fb250964d6e1693b7131077e6b9150d274a04e66a14fdfdd15557703ccaeab29f64a12c9adc2d276e2620efcd722a1a4e9409ccd429fbfba2aaaee07995d5653ec9425935b85a4edc4c41df9ae454349d281399a853f7f745555dc0f32baaca7d9284b26b70b49db89883bf35c8a8693a50273350a7efee8aaabb81e6575594fb250964d6e1693b7131077e6b9150d274a04e66a14fdfdd15557703ccaeab29f64a12c9adc2d276e2620efcd722a1a4e9409ccd429fbfba2aaaee005a82e12152bc511027e8246d2aa69da4726b0319d29b79aa853f7f845555dbf0b505c242a578a2204fd048da554d3b48e4d60633a536f3550a7eff08aaabb7e16a0b84854af144409fa091b4aa9a7691c9ac0c674a6de6aa14fdfe1155576fc2d417090a95e288813f4123695534ed23935818ce94dbcd5429fbfc22aaaedf85a82e12152bc511027e8246d2aa69da4726b0319d29b79aa853f7f845555dbf041181aef7bdb24d81c9670d24bab634391186230a53897560a7eff09aaabb7df0e428e8bce18cc6805f3099c8db4ee81ce73205e4a72d2ad14fdfe1455576fbd1c851d179c3198d00be613391b69dd039ce640bc94e5a55a29fbfc28aaaedf7a390a3a2f386331a017cc267236d3ba0739cc817929cb4ab453f7f851555dbef47214745e70c663402f984ce46da7740e739902f253969568a7eff0a2aabb7de8703b4169b7ef49382bf6c1c0d1ad1017937461e1a72eced24fdfe1465576fbcf6c88db804641152824b3ab7999b84829d32b1fc04e5f41a59fbfc28daaedf79d65240fad62e4ad08162d7eeb29ceb84e52989b7d9cc0274c3f7f851c55dbef39565a78079c2bdcc7f92125ce49fb9897517392f83981f2997eff0a39abb7de7138c748bc0eba3c47bf0873948a5559294f2981ed73058933fdfe1474576fbce1718e91781d74788f7e10e72914aab2529e5303dae60b1267fbfc28e8aedf79c26f2f7b9d114b73d6c8e7f64a1fb38c9fe8e863b2cc17c8d0f7f851d25dbef3836a714fe6f8f96a655e96148c35c5413a7e132362983135a2eff0a3a5bb7de70560f4f87ac855578289f2511061e8aa6fa868a2c230640f46dfe1474c76fbce094dfc49a2670d31bce0aaca18ba2f7cd9fd13a18160c9c28ebfc28e99edf79c11280aebf1a47ce6318e1bbc296abd21aea6699effc195291e7f851d34dbef38215015d7e348f9cc631c377852d57a435d4cd33dff832a523cff0a3a69b7de70422c3e087368561b7e0535189da152aeb545e8d7fc0656487afe1474d46fbce083587c10e6d0ac36fc0a6a313b42a55d6a8bd1aff80cac90f5fc28e9a8df79c1063d0a7a7a77baf0afe19a8a6e7ba8e2cfc3e5bbed195ac5ecf851d352bef3820b06274da1c5d864178ffb3cd4edafed9a340dd3d732b72fdaf0a3a6a67de704150c4e9b438bb0c82f1ff679a9db5fdb34681ba7ae656e5fb5e1474d4cfbce082a189d36871761905e3fecf353b6bfb668d0374f5ccadcbf6bc28e9a99f79c1054313a6d0e2ec320bc7fd9e6a76d7f6cd1a06e9eb995b97ed7851d3533ef3820a86274da1c5d864178ffb3cd4edafed9a340dd3d732b72fdaf0a3a6a67de70415050fc0ce5916f05a9cc2dc295ac5bdb412dfcd6e356e79f5f1474d4d0bce0829f2e0a7277f9408e0b6521ad234f15de7d083c09c3add0e2bf28e9a9a279c1053d5c14e4eff2811c16ca435a469e2bbcfa107813875ba1c57e51d35344f3820a7a443c228cbb64bae5614cdc8532b5a1eecd32830bb7452efda3a6a68ae70414f3148a9dc64d2bf8828f5fe1025bc96bd846a762146e8c01fc474d4d16ce0829e529153b8c9a57f1051ebfc204b792d7b08d4ec428dd1803f88e9a9a2d9c1053ca522a771934afe20a3d7f84096f25af611a9d8851ba3007f11d35345b3820a794306746df3fc246cc47c5300ad4a986bce17d6ca07461b3e33a6a68b770414f2760ce8dbe7f848d988f8a6015a9530d79c2fad940e8c367c674d4d16ee0829e4e4daf7429d56b9de8ebdae823490442ee32380e7ed188738de9a9a2dec1053c9b277141008139be89a47bf83e8866add710b278faa3128b1cd35345be820a79354ee2820102737d1348f7f07d10cd5bae2164f1f546251639a6a68b7d0414f26a29d75caedb497cde5eb608f217f8df56ef0c3fe78c4bd0744d4d16fb0829e4d353aeb95db692f9bcbd6c11e42ff1beadde187fcf1897a0e89a9a2df61053c9a6336fcb6843887631479e4bc05641a55668735b9b3130e5d235345bed20a7934b66df96d08710ec628f3c9780ac834aacd0e6b7366261cba46a68b7da414f269659d1864de4845b7ceb3f56f94f64bd544e0fca69c4c53b49d4d16fb5829e4d2b3fb565489f6b39b1a344d5ea9527a2a34861f0d0898c1a94a9a2df6c053c9a550b7d233e1538f61b134fd3cd20ad6d413d063d9e1319d92a5345bed90a7934a916fa467c2a71ec36269fa79a415ada827a0c7b3c2633b254a68b7db214f269522df48cf854e3d86c4d3f4f3482b5b504f418f6784c6764a94d16fb6429e4d2a45be919f0a9c7b0d89a7e9e69056b6a09e831ecf098cec9529a2df6c853c9a54843e48c8e29f1e46901c364ca0134fc0e7ca635de319f36a6345bed91a7934a8f13db71c92a464b89d04cf18bf8c82017a58ec7b96340114d68b7db244f26951d27b6e392548c9713a099e317f190402f4b1d8f72c680229ad16fb6489e4d2a3a4f6dc724a9192e274133c62fe320805e963b1ee58d004535a2df6c913c9a54742aede6f62894df064f2db457bc9f28b7d8b899c81a022e6c45bed9237934a8e755dbcdec5129be0c9e5b68af793e516fb171339034045cd88b7db246f26951ce37c9f48578b5fed1097cf956e8dacada0f24c31d680a5db216fb648ee4d2a39b6f93e90af16bfda212f9f2add1b595b41e49863ad014bb642df6c91dc9a547366b3a2ac2b93a7dfbf2ba0d5399c95362e8d56872a02b1ac95bed923c934a8e6b6286ae3248d77eafb23a429f29f0cec07ded2ce24057d993b7db247a26951cd5511fb51168118017313aad364a3fc57ba81cb5c180b157286fb648f54d2a39a92e51c2cfa68582e62f3b82648addb2f1fc7bc78001645251df6c91eb9a5473515ca3859f4d0b05cc5e7704c915bb65e3f8f78f0002c8a4a3bed923d734a8e6a2455963eb70788e5089b4318a21d4f3c29e3179fd0592ed487db247af6951cd4316c52083b7539f58e02e8b0c3a080f7fe8a54ff70b277e91fb648f5fd2a39a852d8a41076ea73eb1c05d161874101effd14a9fee164efd23f6c91ebfa547350a5b14820edd4e7d6380ba2c30e8203dffa2953fdc2c9dfa47ed923d7f4a8e6a14423b5cca90ff7d7ece3a8059c69ea3f9f16cdbb5593d9890db247aff951cd42710891241f8617db5693b28ab839b6fee8f1c1367b27cd522b648f6002a39a84d21122483f0c2fb6ad27651570736dfdd1e3826cf64f9aa456c91ec005473509a42244907e185f6d5a4eca2ae0e6dbfba3c704d9ec9f3548ad923d800a8e6a134105aeabc996e7063169f6d541339a76f2522f73a93e84d16b247b00251cd426720b5d57932dce0c62d3edaa826734ede4a45ee7527d09a2d648f6004a39a84ce416baaf265b9c18c5a7db5504ce69dbc948bdcea4fa1345ac91ec0094735099c0ee9ae91a1d605d081c19298902b6373d55a15d19f440cb6923d80138e6a13371dd35d2343ac0ba1038325312056c6e7aab42ba33e88196d247b00271cd4266e3ba6ba468758174207064a6240ad8dcf556857467d1032da48f6004e39a84cdc035fcd39e512b13bdad2bcbc77b9439957130a89fa2209b591ec009d735099b706bf9a73ca256277b5a57978ef728732ae261513f444136b23d8013ae6a1336e0d7f34e7944ac4ef6b4af2f1dee50e655c4c2a27e88826d647b00275cd4266dc1afe69cf289589ded695e5e3bdca1ccab898544fd1104dac8f6004eb9a84cdb835fcd39e512b13bdad2bcbc77b9439957130a89fa2209b591ec009d735099b706bf9a73ca256277b5a57978ef728732ae261513f444136b23d8013ae6a1336e06405a7261b0ed1ae81755715e4af0e507104fe7b888411657b00275dd4266dbf541da6f90c802614cfb0d623bfbc449b8e4c58f41109c6cbf6004ebca84cdb7d344da69eef62cee16c27d43f75d6b131c8db0de522153198ec009d7a5099b6f9689b4d3ddec59dc2d84fa87eebad626391b61bca442a6331d8013af4a1336df25d48f32893edbe3d7d6578f5cdb8ecc1cfae939188566a64b00275ea4266dbe346a43efdfe3dff32c79119e391d0017e4b9f832010ae78ca6004ebd584cdb7c5195ad6a8d2de811d5be85bbf19fe2af74381623d215e9595c009d7ac099b6f8932b5ad51a5bd023ab7d0b77e33fc55ee8702c47a42bd2b2b8013af581336df12656b5aa34b7a04756fa16efc67f8abdd0e0588f4857a565700275eb0266dbe2456e90df36d568ba2ac0905f0c64f7fb4c84d6de60af650af004ebd614cdb7c4739e47493b10f99fd24d833d982fd27643cdd37c915ee455f009d7ac399b6f88d73c8e927621f33fa49b067b305fa4ec879ba6f922bdc8abe013af587336df11a73a42afb9aa0eaac6026f75e0252c58b9fb73b2157bab97d0275eb0f66dbe233735aaea40ba458108d1416b3fb03b311ebb0d23faf7716fb04ebd61fcdb7c46572c7b5f4edab32d8e6ee555fec658e1e83a4007c5eefd1f709d7ac409b6f88c971a1c496b1b8e8699aa2d2b7cf294437b38a5cf5bde147ef13af588236df11916f55e1da39d4538b020bcd6794b0b06a135715e87bc433df275eb1056dbe23216abe1c614a0b29cdd0ddc2c71fbf88ced2f087cdf78a0bbf4ebd620bdb7c4641618e916f6a78d6536e81ad8635dd399852236b98ef15bb7f9d7ac418b6f88c814f2f7b8bab542f5ea9c9830462189b2b5089332ede2d1b003af588326df119012a714fc42d0ae17520592e00ba8f5e514d54c25abc5bda0175eb1065dbe2320154e29f885a15c2ea40b25c01751ebca29aa984b578b7b402ebd620cbb7c4640235d797bd8a8e088c4e2adffae09ba13fe1956567f1710c06d7ac41986f88c8036baf2f7b151c11189c55bff5c137427fc32acacfe2e2180daf588330df1190066370b7a3009aa4e90571a7e378ccacfa3297f19cc5c5d41c5eb10662be23200b52f3c7f2d797cc89d7a977bee7f781ef11723f368b8d4c39bd620cc67c46401531f9e89285921bcb7c191775c64d2bd8cf26da6a171c3c747ac4198df88c802963f3d1250b243796f8322eeb8c9a57b19e4db4d42e3878e8f588331bf119005253f9faf6ecaaf1e5bd2a85cf0f92d75de8ddc5a55c7295d2eb106638e23200a334064e9aafb86683471b33961583d6b67dfde747b8e6cfa6d620cc72c4640145680c9d355f70cd068e36672c2b07ad6cfbfbce8f71cd9f4dac4198e588c8028a5c2b931795441cc4e932f6504c6d82d4a439f91be39ce29c588331cc1190051344697edc00eabc419f2c14988f392da3f4b64e34c73b6939b106639923200a2514e55664d837fb3b0b1e512914d0834295aef8668e787674620cc7334640144929caacc9b06ff676163ca25229a106852b5df0cd1cf0ece8c4198e668c8028925395599360dfecec2c7944a453420d0a56bbe19a39e1d9d188331ccd19005124333d0bd398225c9025b8b1409ce2420f59ba1f3173c557a41066399b3200a247667a17a73044b9204b71628139c4841eb3743e62e78aaf4820cc73366401448e590687fb36ebf4f863a8ecfa69e73038132ad8c2cf1702914198e66dc802891b3e1f68a3443a6ca8941801ecca2c886ad2980d829e2fa9238331ccdc90051235085129f35ed75c08f4f62bd18ab738d0517277023c60f648066399ba200a246910a253e6bdaeb811e9ec57a3156e71a0a2e4ee0478c1ec900cc73374401448d22144a7cd7b5d7023d3d8af462adce34145c9dc08f183d920198e66e8802891a442894f9af6bae047a7b15e8c55b9c6828b93b811e307b240331ccdd1005123481124f7e2c3d843471c28e510a1d1b4ffc369cc20c611088166399ba300a2468f2249efc587b0868e3851ca2143a369ff86d398418c221102cc73374601448d1e4493df8b0f610d1c70a394428746d3ff0da730831844220598e66e8c02891a3c153a17c2f5249cf0ae0d507d04ebcff8c790bd033089e80c31ccdd19051234772a742f85ea4939e15c1aa0fa09d79ff18f217a066113d0186399ba320a2468ee54e85f0bd49273c2b83541f413af3fe31e42f40cc227a030c73374641448d1dc35e316c47f876a3d3d30abe01dbca7c0e8c844168450e4628e66e8c92891a3b76bc62d88ff0ed47a7a6157c03b794f81d190882d08a1c8c51ccdd1925123476e639eb3bed4802bacc188d7786d50c6fe4f636c571145358b399ba325a2468edb534fc02a7f62da114fd7d6e8d0ffb5f74b0934ab228c0f177337464c448d1db532b1d901d52836da6c75d5c9985d93e94254c5534519c22fe66e8c99891a3b696563b203aa506db4d8ebab9330bb27d284a98aa68a33845fccdd1933123476d256d9bcb42b035e217e9d7f1e57d4779fb595714a1468acc099ba32672468eda339c5d2152c693efaca012634a607173a176d3e9128d2fd82337464cf48d1db45738ba42a58d27df594024c694c0e2e742eda7d2251a5fb0466e8c99e91a3b68a7329a10188077ea2f4cac0ca8e7a84e309f75641a34d9a09cdd1933e23476d1372659aafe6717ffdb65ba98d135331c0c0310880469cd8149ba3267d468eda2570dd8e0ca34582b3397d7b121d048b7c2ca46cfd8d3b542a37464cfb8d1db4496dcd74c61ced881e3fc11e1c30673ef3058b35f81a784c556e8c99f81a3b689167ad4239103d92f44c486430572ca5e0b758c7ed34f23cabdd1933f13476d1215b6cdd1ef6dda8a06556f058a4b773bc1af3ebd769e61d58ba3267e368eda24142ec12eac41dd3f8977408a93fcd0f72e22a33abd3cddeb27464cfc7d1db448111ea7e825e9e2aa8fbae394a75f846e07096c354a79d6165e8c99f90a3b6890123d4fd04bd3c5551f75c7294ebf08dc0e12d86a94f3ac2cbd1933f21476d120247a9fa097a78aaa3eeb8e529d7e11b81c25b0d529e758597a3267e428eda24041b664cbfcb53d7ffaa37f24ba6205efe30f876a23cecaf30464cfc861db4480736cc997f96a7afff546fe4974c40bdfc61f0ed4479d95e608c99f90c3b68900e6d9932ff2d4f5ffea8dfc92e98817bf8c3e1da88f3b2bcc11933f21876d1201c6744beab310142b51e85ba5527611fec3406110ee7671d833267e431eda240375a9bd6033865082209d19ca2452067d3144e7e1acecfdf0764cfc864db44806d414a04b3472c92fbe069613c809ef7a0d4df58329da1620fc99f90cab68900d90ea6621364bba8af8d98ea70f79c173c56010c623b446820933f21966d1201b11d4cc426c977515f1b31d4e1ef382e78ac0218c47688d041267e432cda2403623a99884d92eea2be3663a9c3de705cf158043188ed11a0824cfc8659b44806c401456947fc3fc834398d7b7fb33ee1dd5c4abf0eda24e50599f90cb468900d87028ad28ff87f9068731af6ff667dc3bab8957e1db449ca0b33f21968d1201b0e0515a51ff0ff20d0e635edfeccfb8775712afc3b6893941667e432d1a240361c0a2b4a3fe1fe41a1cc6bdbfd99f70eeae255f876d127282ccfc865a344806c381456947fc3fc834398d7b7fb33ee1dd5c4abf0eda24e50599f90cb468900d87028ad28ff87f9068731af6ff667dc3bab8957e1db449ca0b33f21968d1201b0e0515a51ff0ff20d0e635edfeccfb8775712afc3b6893941667e432d1a240361c02ec6fcaaf6469cd49383e7d195cf16a8d1a1e36a127426cdfc865a354806c37f5d8df955ec8d39a92707cfa32b9e2d51a343c6d424e84d9bf90cb46a900d86fe472e4b58af7cf60a1ad5c73e4d9a829df2c9e9a549d23f38f21968d6201b0dfb1a6eef5e355c6ecc0271b67491932d3691d62f4793a62272e432d1ad40361bf534dddebc6ab8dd9804e36ce923265a6d23ac5e8f274c44e5c865a35a806c37ea69bbbd78d571bb3009c6d9d2464cb4da4758bd1e4e9889cb90cb46b500d86fd45f89d39e8145f917e053db9c82f791af3af3d6399d32b79821968d6b01b0dfa74b25ffe9d8ee74e78d6ddf30fc4d4b59222a08703a671331432d1ad70361bf4d225e5880883f6c86e7a1e659eef8beacf0966cdd74cfca63865a35af06c37e9944bcb101107ed90dcf43ccb3ddf17d59e12cd9bae99f94c70cb46b5e0d86fd32158bbaaef76034d36b4dc15fb24122ae6e9c0f72d340cd8f1968d6bd1b0dfa632b17755deec069a6d69b82bf6482455cdd381ee5a6819b1e32d1ad7a361bf4c6562eeabbdd80d34dad37057ec9048ab9ba703dcb4d03363c65a35af46c37e98c38702e2491642953273432f588673d6e2122d7939a081079cb46b5e9d86fd31770e05c4922c852a64e6865eb10ce7adc4245af27341020f3968d6bd3b0dfa62e6dd3113f1bf328046996f3ce17fb1db330cdba4b6821e5e82d1ad7a861bf4c5b67b87b2b0e48d2c09ff40f94265463610dddd093d0456fd15a35af51c37e98b55b834f02f2f428390cae47204306eebcc7fdfd24a08c83a3b46b5ea486fd31694318f6b2bc4ad329e622b6387c6c05743c3e5646411aab4868d6bd4a0dfa62d1124446124ef8290b990b9468ef3632e324bf08898236fa91d1ad7a951bf4c5a124888c249df05217321728d1de6c65c6497e1113046df523a35af52a37e98b42491118493be0a42e642e51a3bcd8cb8c92fc222608dbea4746b5ea546fd316841e34893f4e23cb149522cb3f700fbf13d23aa04911b9788f8d6bd4a9dfa62d073c69127e9c4796292a45967ee01f7e27a47540922372f11f1ad7a953bf4c5a0e04e47daa0ef1af0a215154f5b69d2449f52cdd2146e7863f35af52a87e98b41b09c8fb541de35e1442a2a9eb6d3a4893ea59ba428dcf0c7e6b5ea550fd3168361391f6a83bc6bc28854553d6da749127d4b374851b9e18fcd6bd4aa1fa62d06c2723ed50778d78510a8aa7adb4e9224fa966e90a373c31f9ad7a9543f4c5a0d84e47daa0ef1af0a215154f5b69d2449f52cdd2146e7863f35af52a87e98b41b028a20deeb49863fbf6f0c6aeca02b13951de0025dcf26be7b5ea5510d316835f51441bdd6930c7f7ede18d5d94056272a3bc004bb9e4d7cf6bd4aa21a62d06be2e9a9067a8c412a7a88942b31e68ecdff3ba5c9473cb539fd7a954444c5a0d7b5d3520cf5188254f511285663cd1d9bfe774b928e796a73faf52a88898b41af6467c9a4b7972cd566eeb32c47001db7a7b2bce4ecf2ef2805ea55112316835eb190b8d43c9481d64aa9c8d80d661deefa299f89a9e5f8901bd4aa22562d06bd532171a8792903ac955391b01acc3bddf4533f1353cbf12037a95444ac5a0d7aa642e350f25207592aa72360359877bbe8a67e26a797e2406f52a88958b41af54546ec2cb20a36ddd21aa93fea96d1f77c11220d1f2fdec0eea55112c16835ea734efde4317a95e72101b4ff5493866ea2e669da0e5fd7c1ed4aa22592d06bd4d69dfbc862f52bce420369fea9270cdd45ccd3b41cbfaf83da95444b25a0d7a9a5fd1d1b93507fc800d3367cd1b3fc3a365dcd28097f7947c52a88965b41af5334bb5fc1f40727bb7e72cf7922cddaf4177fc00fe2ff0ccf9a55112cc6835ea65237e50eb57477a279b20171c5019867d9c3a5df95fe33df44aa22599d06bd4c946fca1d6ae8ef44f36402e38a0330cfb3874bbf2bfc67be895444b33a0d7a9921a0b9c5a33806b563946846936c441f11d2bd3e27f8e9bd22a88966841af5323341738b46700d6ac728d08d26d8883e23a57a7c4ff1d37a455112cd0835ea646682e7168ce01ad58e51a11a4db1107c474af4f89fe3a6f48aa2259a106bd4c8c5c6f3b7e7265dd6996fa4b41ac80378395a0fb10fc7682925444b3430d7a991744f0cfa9bb2e3d8afababe7b4f5e9701d784521ef8eea925a88966871af5322d15f3f8004cbefdcdc23ba4ee951b55fe5b4b003af1def64c5112cd0f35ea64592be7f000997dfb9b847749dd2a36abfcb6960075e3bdec98a2259a1e6bd4c8b257cfe00132fbf73708ee93ba546d57f96d2c00ebc77bd931444b343cd7a991643bb218af3c5a7125dea34f6c9f38d7ed869a5dd48ef956638896687aaf5322c703768a0b4f1765038a0cc6d134cfd7d5b97717a61df450c8112cd0f65ea6458d06ed14169e2eca0714198da2699fafab72ee2f4c3be8a1902259a1ecbd4c8b1a0dda282d3c5d940e28331b44d33f5f56e5dc5e9877d1432044b343d97a9916341bb4505a78bb281c50663689a67ebeadcbb8bd30efa28640896687b2f5322c683768a0b4f1765038a0cc6d134cfd7d5b97717a61df450c8112cd0f65ea6458d06ed14169e2eca0714198da2699fafab72ee2f4c3be8a1902259a1ecbd4c8b1a069b4db809c3bc39a4ff7dc452a541d690a0845847d15d6054b343d98a991633f5f7c0fae0eda09ec6cb5e0824b0662ccc052e705fa2d500b96687b325322c67d4b0a7808f4169690a631e8fc8c6aed942ce82a08f45c44182cd0f665a6458cf9222748bebe8fafd91929f9f10f3403230612b00ee8ba2c3159a1eccc4c8b19f1444e917d7d1f5fb23253f3e21e6806460c25601dd1745862b343d998991633e214af7ba7d0a1421c316e0fbc332e3486c48d1c38a2ea54c66687b332322c67c3295ef74fa142843862dc1f78665c690d891a387145d4a98ccd0f66646458cf8652bdee9f42850870c5b83ef0ccb8d21b123470e28ba953199a1eccc8c8b19f0c318e35eb5b6c93995836a5d98fcfcc30d0ab3dc217544a34343d999291633e17631c6bd6b6d92732b06d4bb31f9f9861a1567b842ea89468687b332522c67c2e524b305a4414d11d2da0bf5e359d58bdeeef53055d52ccd1d0f6664b458cf85b30a8b9615e8c24f22807a6b46198d9768a210207baa73da4a1eccc978b19f0b5615172c2bd1849e4500f4d68c331b2ed1442040f754e7b4943d9992f1633e16a4eb53e32509316806ce4c2c97cc18dd4d4c6641bea9e9a9387b3325f2c67c2d3297cd5117788afb8a68fad8aefe143a455cf2434d53ed9280f6664bf58cf85a552f9aa22ef115f714d1f5b15dfc28748ab9e4869aa7db2501eccc97eb19f0b4a3205acf2b485419a6704de23b5e3368c037eecd054fd08a13d9992fe633e1693640b59e5690a8334ce09bc476bc66d1806fdd9a0a9fa11427b3325fcc67c2d2654290c77a877892168d9a086cdeb022aba3e0f3e53f5c685f6664bfa8cf85a4b3464719c275194fa9e79690592342c5020be7a79a7ed310ceccc97f619f0b49568c8e3384ea329f53cf2d20b246858a0417cf4f34fda6219d9992fec33e1692a5da41f1d73a8d6a246abcc0e3f2ed93b2f3c45e39fb66834b3325fd967c2d253475a96e7bdb42ffc5a1dc01474bbda710abae7c43f6e746a6664bfb3cf85a4a51ac7867c51cae2b08101a820dfd5dcdcc1b82b857ede8cd5ccc97f689f0b4949358f0cf8a395c56102035041bfabb9b98370570afdbd19ab9992fed13e1692926b1e19f1472b8ac20406a0837f57737306e0ae15fb7a33573325fda27c2d2524624e8c8f64b9983bd4d368fef50d0ee0ba03b828f6f60aaf664bfb45f85a4a4750af71cb9fd5b32f766cf9f5e07845bc2049cc4eededb95fcc97f68cf0b4948d2d713c44160de916b9a01be3b74eb372ecd5f49adbdd16c0992fed1ae16929195ae278882c1bd22d734037c76e9d66e5d9abe935b7ba2d81325fda35c2d2523241d749bd2e9a2712b3469786d398f5c65f9a2e686f75ff0364bfb46c85a4a4630fc0ec273396d0dd335357059d9013876b76b8cddeeda207c97f68da0b4948c51f81d84e672da1ba66a6ae0b3b20270ed6ed719bbddb440f92fed1b41692918a3f03b09cce5b4374cd4d5c1676404e1daddae3377bb6881f25fda3682d2523140a19b9e6731909a16760e024e2dec43607f8226bf76eb43f4bfb46d15a4a4627143373cce6321342cec1c049c5bd886c0ff044d7eedd687e97f68da2b4948c4e2866e799cc6426859d8380938b7b10d81fe089afddbad0fd2fed1b456929189c50cdcf3398c84d0b3b07012716f621b03fc1135fbb75a1fa5fda368ad25231382dadf71407f31cce42d42a46244a6b5b2bc482bc76ece7f5bfb46d16a4a4626f5b5bee280fe6399c85a8548c4894d6b657890578edd9cfeb7f68da2d4948c4de42ca34fcf62ef5f0d816d1108787d5675b5466eedbb543d7fed1b45b929189bb11a6c2a6c2c06e997cf3ca19056dd2c962eb29dab76c2bb0fda368b825231375234d854d8580dd32f9e794320adba592c5d653b56ed85761fb46d1704a4626ea469b0a9b0b01ba65f3cf286415b74b258baca76addb0aec3f68da2e0948c4dd419486de2ec65f783b46478c021ccbe45c39baad2bb630188ed1b45c229189ba73290dbc5d8cbef0768c8f18043997c8b873755a576c60311da368b845231374e6521b78bb197de0ed191e3008732f9170e6eab4aed8c0623b46d1708a4626e9c5655c7c439923ed56fe9edf904c41a28c91fb292db19b04868da2e1248c4dd3738bde83549870062ac9a03e9ffe65c4c3e81c122b6350491d1b45c259189ba6d717bd06a930e00c5593407d3ffccb8987d0382456c6a0923a368b84b231374da6f09f981fc7e84427f2e379ff5f7992ba6496087d8d5b64846d170974626e9b36a264bb0cf5f8b3ccb229737e24d5a51f8d51d0cb1ad10918da2e12f8c4dd365605ef00e75219931630b5667baf8dc9e9dec9616635bc5241b45c260189ba6c94cd038c9c0a5b51a92dcd4c76c4fe137e81b8829c6b92e49368b84c131374d9125b2ca4057adececf27fd186cefdea6a7c796c508d7400936d170983626e9b214b659480af5bd9d9e4ffa30d9dfbd4d4f8f2d8a11ae80126da2e1306c4dd364222dd81ae351a366b96c56e133255d1a49e280d3f35d1a64eb45c260e89ba6c8345bb035c6a346cd72d8adc2664aba3493c501a7e6ba34c9d68b84c1d1374d90617885f65aacb5c6627dbe044bfb56e8d24e290f9d7483d3bd170983b26e9b20b2f10becb5596b8cc4fb7c0897f6add1a49c521f3ae907a77a2e130764dd364165e217d96ab2d71989f6f8112fed5ba34938a43e75d20f4ef45c260ec9ba6c82c485553da2cbd65e90ba52a1df4099c63d356e3cbba438ddf8b84c1da374d90571cbd00612fdd4e89e4107c33de7160c252f023947488bfc0170983b56e9b20ad397a00c25fba9d13c820f867bce2c184a5e04728e9117f802e13076add36415a72f40184bf753a279041f0cf79c583094bc08e51d222ff005c260ed5ba6c82b471fa5bb6554cf706ed4a0996e9e92e0d43c378a0a447a201b84c1dac74d905677007101980fc70c5a75a3b25ca30841533c94d3e4890e80470983b59e9b20acd6c2078dfd85b64431b7a9e438abf302513d4f67991237409e13076b4d364159964534a6c87194b3e03bb647f0bdc8844d3ec48f022488c14c260ed6aa6c82b3154b8ed85e4951933d43cf0f60e173884541aeddd4492bc2a84c1dad64d905661358433b89f8cb51f754009e4128c9903547837b789271c560983b5ad9b20acc16b0867713f196a3eea8013c825193206a8f06f6f124e38ac13076b5b364159826223278f54955735a1c64f8840908c07fe233adb249e1559260ed6b76c82b3035058a7cb7f8d31231052c708777f400aa888d1b3493dceb34c1dad6fd90566052cc3a843d57ce4fded6bb608e55ca80ffd53ff63927d4167983b5ae0b20acc0959875087aaf9c9fbdad76c11cab9501ffaa7fec724fa82cf3076b5c1641598123f20f9bc2c5616af8275001b8bd0c83aa192598b49f6a99f60ed6b83c82b30230a544c252f0eb016d1b0282f0dffb86fef670f1393eef73fc1dad7089056604514a8984a5e1d602da360505e1bff70dfdece1e2727ddee7f83b5ae1120acc08a29513094bc3ac05b46c0a0bc37fee1bfbd9c3c4e4fbbdcff076b5c224159811452a26129787580b68d8141786ffdc37f7b38789c9f77b9fe0ed6b84482b3022831571affc74d8424e7c8aae8d659aef9a2b34d363ef117fd1dad708a0566044f62ae35ff8e9b0849cf9155d1acb35df345669a6c7de22ffa3b5ae1140acc089e516ec4abf398934b6be8d39b4fc4e3e1370f90d5fbc603f576b5c2291598113b2eefe204bd93a94ea497cf2e95e7efbd1a617da8f78dabebed6b84532b3022755ddfc4097b27529d492f9e5d2bcfdf7a34c2fb51ef1b57d7dad708a6566044ea47d1e0bfccb127f25f2564b24dfde6ef15c852a0de3853b0b5ae114dacc089d31bb61a2c6fc4d29c8b10f15c9259f5d8d7d3013ebc724b626b5c229c598113a5376c3458df89a5391621e2b924b3ebb1afa6027d78e496c4d6b84538b302274a6ed868b1bf134a722c43c5724967d7635f4c04faf1c92d89ad708a7166044e9469c32a105489179c254db2dc892dd6c16ada65f2e393ff145ae114e3cc089d275f98accd7f74b1f017618db108b9d57d81f727e2c729a229b5c229c898113a4d4b43b247d54be697fb89435a07d1d2f5b030abc28e54e8546b845392302274992299bd3c80fa4fe7c3d8aeac0601cde60ca3b3821cab74a9d708a7256044e93145337a7901f49fcf87b15d580c039bcc194767043956e953ae114e4ac089d26216794d9eda4bc256dc28e2a80e655f92ded12a0572af76a85c229c968113a4c32cf29b3db49784adb851c5501ccabf25bda2540ae55eed50b845392d0227498659e5367b692f095b70a38aa039957e4b7b44a815cabddaa1708a725a044e930c3fdcc5a3a8c0956eae0d3d3869892491a2cbac28957d5943e114e4b5089d26170bcbe3f427e3ad9528e0a268c970711df1d9b44e2afc5688c229c96b113a4c2d1797c7e84fc75b2a51c144d192e0e23be3b3689c55f8ad11845392d62274985a2f2f8fd09f8eb654a38289a325c1c477c766d138abf15a2308a725ac44e930b45e5f1fa13f1d6ca9470513464b8388ef8ecda27157e2b446114e4b5889d2616848d097ef549d5c0a5ad04e848d6539d9c9dda0dfafc70c8d229c96b213a4c2cf1db3888b7f9d3acc8266c50111289bae3ffd9dbc5f8fbd1b45392d652749859d3b671116ff3a759904cd8a022251375c7ffb3b78bf1f7a368a725aca4e930b3a02e07adad4d76de9d6613bfc3b0096b3ac38d2ee7e40986e14e4b5959d26167305c0f5b5a9aedbd3acc277f876012d675871a5dcfc8130dc29c96b2b3a4c2ce60b81eb6b535db7a75984eff0ec025aceb0e34bb9f90261b85392d656749859cc1703d6d6a6bb6f4eb309dfe1d804b59d61c69773f204c370a725acace930b3982e07adad4d76de9d6613bfc3b0096b3ac38d2ee7e40986e14e4b5959d26167305c0f5b5a9aedbd3acc277f876012d675871a5dcfc8130dc29c96b2b3a4c2ce6044310f620c3dfd2d65152706b683d4e5ba77179c9027bf86392d656849859cbf14747770eede7d1296f076056365d1c621308b362051230d725acad1930b397d28e8eee1ddbcfa252de0ec0ac6cba38c4261166c40a2461ae4b595a3261672fa51d1ddc3bb79f44a5bc1d8158d97471884c22cd881448c35c96b2b464c2ce5f42fb614344d566b4c8449d823118cb62bb5c6b5ae028abc6c92d6568d9859cbe75f6c28689aacd6990893b04623196c576b8d6b5c051578d925acad1b30b397ce4aeaa97e0bbc2fe9dded88843c9100a9835d32b50a2c95b34b595a3761672f9b21e7aba8eddae28b88a139006f80294db2fcc167145acf6796b2b46fc2ce5f3543cf5751dbb5c51711427200df00529b65f982ce28b59ecf2d6568df859cbe6a13b107508dce0ce5ef4b0bf9b45ecd3178356199516ce19f5acad1c00b397cd327620ea11b9c19cbde9617f368bd9a62f06ac332a2d9c33eb595a3801672f9a64ec41d4237383397bd2c2fe6d17b34c5e0d5866545b3867d6b2b47002ce5f34c299a933144d2e9e7471e87c5995491866ded68c78b68b0fbd6568e0159cbe6975335266289a5d3ce8e3d0f8b32a9230cdbdad18f16d161f7acad1c02b397cd2e327ca571e9ae2a54e940470e5bb06e1463f7ff1b2da467f0595a3806672f9a5b64f94ae3d35c54a9d2808e1cb760dc28c7effe365b48cfe0b2b4700cce5f34b65604ee747d1b2c0b71c74431651fe04c3c225869b69343c26568e01a9cbe696b381c3595d098daceb054b05ac09de89324870cd06d282b85cad1c036397cd2d570386b2ba131b59d60a960b5813bd126490e19a0da50570b95a3806c72f9a5aa6c832f0418c5edf28e18e962f8d5ca473e5e8f3eb4a252182b4700d9e5f34b536518b6b507ee5e9ce8f7fabde809bc8928ff7a7a69464831568e01b4cbe696a55643c616e63f3ff19eb61d73c671a10cfe4150f1d28e3463ad1c036a97cd2d493899e4daa2e1029b0a3262df83416a14a8c4fde0a51e0cc85a3806d62f9a5a917133c9b545c205361464c5bf0682d4295189fbc14a3c1990b4700dac5f34b5226e79ec1761e68d23f58fb3760363d04d4f56537f9479d72268e01b59be696a43690630db9a2f9cffb7e58ee3fd25c8954aef02fc28f55245d1c036b47cd2d4855e1eba640ac1bcb73c9145bff0a9b925422061f551ec488ca3806d69f9a5a909484fcd74ebe5fc2645e8b377d7b19a4530831fe7a3da351a4700dad4f34b52111cb1f396ae2e7b0458978ee7a5c15c850d489bcc47b60e358e01b5aae696a4213963e72d5c5cf608b12f1dcf4b82b90a1a9137988f6c1c6b1c036b55cd2d484272c7ce5ab8b9ec11625e3b9e9705721435226f311ed838d63806d6ab9a5a908471a1f56247d65ada91829f3524690c2316873a5f3db215ad700dad5834b521076f564371660f386cefcb66623f304040d950d0bb7b65cf5be01b5ab1696a420d6abedf8fa280f391ac5cf4bc74bea87c5ee3fd73f6cd42b8c036b563d2d48419619017cc1b6469db25801170dfdb78f36a0a56e4ed9c2972806d6ac8a5a908314f3288450d2b566e17c64ad9b61519e1805709c6db39f6e600dad5924b5210612a776936f0b92f93fc52bdab62885bbdacf06f8ab67591cd01b5ab2596a420c154eed26de1725f27f8a57b56c510b77b59e0df156ceb239a036b564b2d48418235effd8899474107be111ea5807f96f160041a27d9d7eb3506d6ac975a9083036bdffb11328e820f7c223d4b00ff2de2c008344fb3afd66a0dad592eb521060663d24ecf3b7f86d6c50aa28df85c83c02c52c49c676150d51b5ab25e6a420c0b53b6f64b4d61906556db6d13e7172f7b04e7e535cec445ab36b564bdd4841815338045437125a3827a7d021fc48c86f0b61226689d8a2f576d6ac97ca908302967008a86e24b4704f4fa043f89190de16c244cd13b145eaedad592f9521060525a136dba9af910c1b6ba3077089043bd848af59f762a615eb5ab25f3a420c0a3403934220c54a43b3a3a88e6077eaf75b558473bec5666be6b564be8484181450c84c0f0ef0bcb2e413b39c4055b86e616f2ea74d8ae717dd6ac97d190830289190981e1de17965c827673880ab70dcc2de5d4e9b15ce2fbad592fa321060512321303c3bc2f2cb904ece710156e1b985bcba9d362b9c5f75ab25f46420c0a2464260787785e597209d9ce202adc3730b79753a6c5738beeb564be8c84181448545e67bbc71f359be079c4384c16965c1b71034a8ae8bbde6ac97d1a0830288f34cf282464a0edef8db9b0688e8b54b2e324629215d31bbdd592fa351060511d699e5048c941dbdf1b7360d11d16a965c648c5242ba6377bab25f46a20c0a23a5f4ef93e68e63a7603ace99a308b7ac638d3e645574e12f8564be8d5418144734ab04b29a82ef7a3d41ffb2c57751d871dea2887ae9dc9f1ac97d1ab830288e52172ef0026c071ff75061e50a5486308e816ad0c5d3d37e4592fa358060511c942e5de004d80e3feea0c3ca14a90c611d02d5a18ba7a6fc8b25f46b00c0a239211de14ad71644ab5a0dea13a8b7fb41e4c9d102e74f6839264be8d611814472323bc295ae2c8956b41bd427516ff683c993a205ce9ed0724c97d1ac230288e46477852b5c5912ad6837a84ea2dfed079327440b9d3da0e4992fa358460511c8c1b02fe186184d864d3bb31cc525bc8ed112add70a7b5c09425f46b09c0a239173605fc30c309b0c9a7766398a4b791da2255bae14f6b81284be8d6138144722e6c0bf861861361934eecc731496f23b444ab75c29ed7025097d1ac270288e45c642a496fe28945de6a9fb65a893c6f63359947823dafa8a22fa3584f0511c8b75466eb8c9b750e74a20594ad08d706c11774eb017b60f5455f46b09f0a23916d34e02fc60d4c9fa110d15152080c357cdb2c31fff6c38e8bbe8d613f144722d969c05f8c1a993f4221a2a2a410186af9b65863ffed871d177d1ac27e288e45b25f9317c50b95013c100b6d40168efdee18f323fcdb0fde2ffa3584fd511c8b634b388836ed8c852fecdd0278237c23d6de28a3f6b6216060f46b09fba23916c52283691ab17b8d17a6802ce83d566fa86893a3ea6c4464c2e8d613f844722d894506d23562f71a2f4d0059d07aacdf50d12747d4d888c985d1ac27f088e45b12161ffd179c50b71666c6db98ebb7e69c4e90eba6b113370ca3584fe211c8b6232c3ffa2f38a16e2ccd8db731d76fcd389d21d74d62266e1946b09fc423916c46587ff45e7142dc599b1b6e63aedf9a713a43ae9ac44cdc328d613f884722d88c3d124169b8e83b6b02fd04bf541d5cdd20c9b932889b5c661ac27f118e45b1170636db804832f98dd2c031769e98e1b4edd5ce6211385ccd3584fe241c8b622d0c6db7009065f31ba58062ed3d31c369dbab9cc42270b99a6b09fc483916c45a18db6e0120cbe6374b00c5da7a6386d3b757398844e17334d613f890722d88b431b6dc024197cc6e96018bb4f4c70da76eae731089c2e669ac27f120e45b1168636db804832f98dd2c031769e98e1b4edd5ce6211385ccd3584fe241c8b622d052edc8b5dcc1b47224cc56cbc97a5e9866fc283f270d3da7b09fc484916c459f31edea188fe5eb9c165ed58f8952e52b7a3aac7b4e1c1f50613f890a22d88b3d63dbd4311fcbd7382cbdab1f12a5ca56f47558f69c383ea0c27f121445b1167a53ca010f15fa312826417e361ba9bca8952d0dea3872214284fe24298b622cf333a65acb0256e508194924642db1a14bd69c77d170e5e68609fc485416c459e5674cb59604adca10329248c85b634297ad38efa2e1cbcd0c13f890a82d88b3ca5aabc3d8dfbe16d831eab988ad24ad2a06b43b42c3993e1927f121515b1167934169e05e95deb068309b9b0950a7824eb9aad282873420334fe242a3b622cf250ee6196a021fe3882dfd5e0a97ad2c981f9801020e69e4679fc485486c459e491dcc32d4043fc7105bfabc152f5a59303f3002041cd3c8cf3f890a90d88b3c923b9865a8087f8e20b7f5782a5eb4b2607e60040839a7919e7f121521b1167924034323fce7619ef93cb1184cb3c78cbba902640d7350c73dfe242a44622cf247068647f9cec33df279623099678f19775204c81ae6a18e7bfc485488c459e48e0d0c8ff39d867be4f2c46132cf1e32eea4099035cd431cf7f890a91188b3c91c1a191fe73b0cf7c9e588c2659e3c65dd4813206b9a8639eff12152231167923834323fce7619ef93cb1184cb3c78cbba902640d7350c73dfe242a44622cf247068647f9cec33df279623099678f19775204c81ae6a18e7bfc485488c459e48e05cdb57e6aeca4106f90c3b24e84156e4ecdb5f59d4337380890a91198b3c91bf45c9087a33f704c5bede9e41c6e0d5c485f91ab0a8688b02121522341679237d17a469a13e508c434a83647b841fd383b834915e50d2ba05242a44692cf246f92f48d3427ca118869506c8f7083fa707706922bca1a5740a485488d259e48df25e91a684f942310d2a0d91ee107f4e0ee0d24579434ae81490a911a4b3c91be44935a5b6c8e6e4d220e14bd4175cc4186de6e6ef8697742a2152234a679237c71e7da41a68304c5c0e88bfa02517b02b881029dc0d308c5542a44695cf246f8d3cfb4834d06098b81d117f404a2f6057102053b81a6118aa85488d2b9e48df1a0608e9167723b42806e926788abce8a8cc83036d34c3d5560a911a583c91be330c11d22cee4768500dd24cf11579d151990606da6987aaac152234b079237c661823a459dc8ed0a01ba499e22af3a2a3320c0db4d30f55582a446960f246f8cc304748b3b91da140374933c455e7454664181b69a61eaab05488d2c1e48df198608e9167723b42806e926788abce8a8cc83036d34c3d5560a911a583c91be3304d2f7b7bbad907b8a9eaf7094dfb3d143ca2c9a3987c4ec252234b089237c65f26714fa44c149229209c160a9254a2232587ef4430fa4185a4469612246f8cbd4ce29f489829245241382c1524a944464b0fde8861f4830b488d2c2448df197a25d7973e06b4cb5c4f3680223fb0b0874262190dc3eaaa17911a584991be32f34baf2e7c0d6996b89e6d00447f61610e84c4321b87d5542f2234b093237c65e62370b5a4f135b02909a02880f520ea17b5cac0340fac4c5f4469612746f8cbcb46e16b49e26b605213405101ea41d42f6b9580681f5898be88d2c24e8df1979619d52f409b39435bf346c9fbcae1d059836d5ccd3eb2d57e11a5849e1be32f2b33aa5e81367286b7e68d93f795c3a0b306dab99a7d65aafc234b093c37c65e566754bd026ce50d6fcd1b27ef2b8741660db57334facb55f8469612786f8cbcac5abbd2b1b02c9d9766fc77d64d6caac6c7ad4266f5984ff18d2c24f1df1979574189fe1036bbbde69abf17a491377d883b9ce0caeb3243e41a5849e4be32f2ad0f2654cd43d9fe850244574118cd230b237c1d92d6662bc934b093ca7c65e5591e4ca99a87b3fd0a0488ae82319a461646f83b25accc579269612794f8cbcab23c9953350f67fa1409115d0463348c2c8df0764b5998af24d2c24f29f19795640544ff16f53276dfdee8e200bcc74053c8234893b333024aa5849e54e32f2ac70a89fe2dea64edbfbdd1c401798e80a790469127666604954b093ca9c65e558e1513fc5bd4c9db7f7ba38802f31d014f208d224ecccc092a961279538cbcab1c2a27f8b7a993b6fef7471005e63a029e411a449d999812552c24f2a719795638544ff16f53276dfdee8e200bcc74053c8234893b333024aa5849e54e32f2ac7034b23b8b7cb15eb3a9e2680f8f463273b0ab6e736661ed55b093ca9d65e558df69647716f962bd6753c4d01f1e8c64e76156dce6ccc3daab6127953acbcab1be5edb46dac927fd86744fc8363376f1c96ef015ca99895957c24f2a769795637b49c8e66268b27dc4b565b8645d4c0b8d8a228792331456b0849e54ee2f2ac6f51fa42571a7c77e41379198c0b0f63f15c0876b21662a5162093ca9dd5e558de93f484ae34f8efc826f23318161ec7e2b810ed642cc54a2c4127953babcab1bd20aa2ee7375807bbcab0c8afaba372451ae60088298aae98924f2a776795637a31545dce6eb00f779561915f5746e48a35cc011053155d31249e54eecf2ac6f462a8bb9cdd601eef2ac322beae8dc9146b980220a62aba62493ca9dd9e558de8c5517739bac03dde5586457d5d1b9228d73004414c5574c4927953bb3cab1bd1836413fe42e6a3e827d8ed7a399d06d159242e4268ab03c934f2a776895637a2f6c827fc85cd47d04fb1daf4733a0da2b2485c84d156079269e54eed12ac6f45e6517583d900b7cc1c30186865d9fdc50f54dec972ac2964e3ca9dda3558de8bb56410927f6797c3b52c93504b19de09c96de352b5586d09d7953bb47ab1bd17538946afcc3557b2e725892015999e933d9fec653ab0f453bf2a776905637a2e97128d5f986aaf65ce4b12402b333d267b3fd8ca7561e8a77e54eed20ac6f45d26e64049fe3b86f7196286ffd5cc5ccca143d754bac3eb8f0ca9dda4258de8ba368da61ec9dd3619af91707f2afe9c18ed4bd4694587f15e2953bb485b1bd17455dc71c86120945edbef437dd5631ab1855bce925b0ffcfc62a77690c637a2e8947a091b8fa750e934aae97b2a2c17e2b57bc2e486201438d54eed219c6f45d111b537c1ecb4c9fde6223575d3be124515bbab88dc4042b1ba9dda4348de8ba2136a6f83d96993fbcc446aeba77c248a2b775711b8808563753bb48691bd174426d4df07b2d327f79888d5d74ef8491456eeae2371010ac6ea77690d237a2e88466ae39a330c781aadde0e2e1d5674a858a18206b2022fcde4eed21a56f45d107596ecbf337f1860d8887edbba12cbd05c0729cd340479dbd9dda434bde8ba20d3eeff09346458ed2ddd6036f38b7a2062d2795a38090df7c3bb48698bd17441909f239d362eda05d88722ed667cd6c0706918744012362f977690d327a2e883113e473a6c5db40bb10e45daccf9ad80e0d230e880246c5f2eed21a64f45d106227c8e74d8bb6817621c8bb599f35b01c1a461d10048d8be5dda434c9e8ba20c44f91ce9b176d02ec439176b33e6b6038348c3a20091b17cbbb486993d17441882b35f5e3053c889053e9155e7334e86b155ad03d1237d3987690d328a2e8830f566bebc60a791120a7d22abce669d0d62ab5a07a246fa730ed21a65145d1061e38ea3038eb54a4f91c6a7d71c331c9a701ad9cf148e0f262da434ca38ba20c3b71d46071d6a949f238d4fae38663934e035b39e291c1e4c5b4869947174418766fbb199083b5169c3e701dbf03254e96b2f8cfc223856d8c690d328f2e8830eb6b888bcdddccaff049a66375fca8c5281233fb81470c7f19d21a651f5d1061d56323704891fbe2986012eee3efafb24ad0aa52ff8e1aa234a434ca3fba20c3a95259393dfa5a47e88cec05bfd5bd8c904d9701fc1c36e86a486994807441875130c4cb28cb171288e69e3377a1d9411b47705ff5386f74d590d32901e8830ea161899651962e2511cd3c66ef43b282368ee0bfea70dee9ab21a65203d1061d424f25855002beccdb673ef5d67dc32c67ca03dbd1e1bf7757434ca408a20c3a832a5d634cdbe01c6e9b4413a4f1e480ca404a13a0c38092af869948124418750554bac699b7c038dd36882749e3c90194809427418701255f0d3290248830ea0a3587e5e045e2f47239d6768bbdf02b23ad6aaa800e03eebf1a65204a1061d4136b0fcbc08bc5e8e473aced177be056475ad555001c07dd7e34ca409420c3a8266231f02dedee5480b4200226ee1ed48961ed05fd38115efd699481294187504b50763908b23f2bb935062c45d29bd10d701c67f7702461fbd3290253830ea0952cfecabe3ae0da2a36d280839b95ca158c7b2bebe04a67f8a65204a8061d412959fd957c75c1b4546da50107372b942b18f657d7c094cff14ca409500c3a8252400d83a5c1e5eb60a8102a0664b55050de2f0bac812b43e3994812a1187504a30c2d5ff85a2e59791ce67c04bfc8c89c68a0735602582bc83290254330ea0945185abff0b45cb2f239ccf8097f919138d140e6ac04b0579065204a8661d4128a30b57fe168b965e47399f012ff232271a281cd580960af20ca40950cc3a82514616affc2d172cbc8e733e025fe4644e345039ab012c15e4194812a1987504a284ee8583279481a499b2de843f2eab1c13649915d25846084290254340ea0944f29e30911c8f2b74b0321f87fdc338b7d18d57eb74b0a65095204a8691d41289d53c6122391e56e960643f0ffb86716fa31aafd6e9614ca12a40950d23a82513a339e7cf3fa2d5fe3d94e09f7672c55ef0f9856da2c2b38264812a1a57504a273673cf9e7f45abfc7b29c13eece58abde1f30adb45856704c9025434aea0944e65a8c4c7cbf18024731fe4fd5930f7fb6eaa3b765b0ae849a204a8696d41289cb412af1a65492874630c2c7a31c7d27688189cac8615ead3540950d2ea82513950e683bf97f8791442e4bb73e2f5876cbaf55f18dc2befe6b812a1a5e504a27291cd077f2ff0f22885c976e7c5eb0ed975eabe31b857dfcd7025434bca0944e5239a0efe5fe1e4510b92edcf8bd61db2ebd57c6370afbf9ae04a8697941289ca47341dfcbfc3c8a21725db9f17ac3b65d7aaf8c6e15f7f35c0950d2f28251394872961844cedb96fab1819bdaebe594b5a1a174d92bf18ab912a1a5e604a2728f713e89367419b0ad2fc95fadce295165ef8545af57e4b97325434bcd0944e51d6e8f6b19be95e4122c58e75392b0cac68b4ce75bafcb16e74a86979b1289ca3969312ee0538e4adc2577f69f1bbfbd87c2dc2ab45f97d1cf950d2f37251394715e74b66d7d7f187017b615362ddda30a31fab165bf3147a02a1a5e6f4a2728e148fbc587d160b397fc32526452196e0f1037bec87e6433415434bcdf944e51c11e09e3bc7923e9e7c52accc09a910418ccb1d98dfcca0a83a86979c0289ca3813c13c778f247d3cf8a559981352208319963b31bf994150750d2f380513947020439e79ebaf22a56e1715afa60a2385ddf09c234f329ce0fa1a5e701a2728e030873cf3d75e454adc2e2b5f4c14470bbbe138469e6539c1f434bce0344e51c0610e79e7aebc8a95b85c56be98288e1777c2708d3cca7383e86979c0689ca380c21cf3cf5d79152b70b8ad7d30511c2eef84e11a7994e707d0d2f380d13947018439e79ebaf22a56e1715afa60a2385ddf09c234f329ce0fa1a5e701a2728e030134f4c8434a7cd93faf187440aa533b68d7aa29b653b65f534bce0354e51c05f269e9908694f9b27f5e30e88154a676d1af54536ca76cbea6979c06a9ca380be4d3d3210d29f364febc61d102a94ceda35ea8a6d94ed97d4d2f380d53947017c268cbcce7ba0ef57a45262184b87c5af181770d829dcd3aaa5e701ab728e02f74d19799cf741deaf48a4c430970f8b5e302ee1b053b9a7554bce0356e51c05ee26454be6c4e640165e0fb059247d3eb70ca01f5da774f2ab979c06aeca380bdb4c8a97cd89cc802cbc1f60b248fa7d6e19403ebb4ee9e5572f380d5d947017b625278847e9fb83114504e95c885322d6dec2d9739dd56eaf5e701abc28e02f6b4a4f108fd3f706228a09d2b910a645adbd85b2e73baadd5ebce0357851c05ed620b079cc7e508efce0d9cd6a17aab356274dc1cb77575ebe79c06af1a380bdab4160f398fca11df9c1b39ad42f5566ac4e9b8396eeaebd7cf380d5e347017b560ed43fdecfa4beab502d5da05508f5534979632add5f1efae701abc78e02f6ab1da87fbd9f497d56a05abb40aa11eaa692f2c655babe3df5ce03578f1c05ed563b50ff7b3e92faad40b576815423d54d25e58cab757c7beb9c06af1e380bdaac02b457a3538878124e3114fa9ea5d294f80d7553eafa9bd8380d5e3d7017b5570568af46a710f0249c6229f53d4ba529f01aeaa7d5f537b0701abc7ae02f6aae0ad15e8d4e21e04938c453ea7a974a53e035d54fabea6f60e03578f5c05ed55c15a2bd1a9c43c0927188a7d4f52e94a7c06baa9f57d4dec1c06af1eb80bdaab82b457a3538878124e3114fa9ea5d294f80d7553eafa9bd8380d5e3d7017b5570568af46a710f0249c6229f53d4ba529f01aeaa7d5f537b0701abc7ae02f6aae039284181b880874b590b669f9fd2cd38af9fb0f7bea89a0f03578f5d05ed55bf7250830371010e96b216cd3f3fa59a715f3f61ef7d51341e06af1eba0bdaab7e70b35eb3b8649fe530f3c27675a95cdd6ac11fdbfaa40c3d0d5e3d7517b556fb6d791614472bc2822eadace4e1b0e1b581c49bb4f549bc7b1abc7aeb2f6aadf5670484d564ba07bc2a2181c1b9bfeb65afcb9366ea951cf73578f5d75ed55be95a1b62579fd6923021092b7b69ddfec60bd982cad52bddef6af1ebafbdaab7d140491d5c160fa7180ed87eeeca1a2586c3f56192aa595fdfd5e3d7607b556fa10ca493650281d0e7ea7725d58a927308342d1f2254b463c0abc7aec1f6aadf41194926ca0503a1cfd4ee4bab1524e610685a3e44a968c781578f5d83ed55be8232924d940a07439fa9dc97562a49cc20d0b47c8952d18f02af1ebb07daab7d0465249b28140e873f53b92eac54939841a168f912a5a31e055e3d760fb556fa08565b8efcfe7f9136743885509f85587def144e224b47e00bbc7aec206aadf40f38c976a6d361a524b53732993568d8f68a6af8419691641878f5d841d55be81d7192ed4da6c34a496a6e65326ad1b1ed14d5f0832d22c830f1ebb083aab7d03a6f38334823e9174aa1a2f25ccc018bd4d5ee3d035a473462e3d76108556fa0736a82bf3d1e34b14d100c0cb18e613fa4581ed603b4900cc6c7aec211aadf40e56117d72712cbe551ecde415b1320a7435c8008046921bd8e8f5d842455be81c94e4206fafbfa4d5ba682aaae1c9f768165426c05d2451f1e1ebb0849ab7d0391289666a2ce571d6f19cb7d542f9d14fd76c73408a48be23d3d76109456fa0721512ccd459cae3ade3396faa85f3a29faed8e68114917c47a7aec2128adf40e422e6bf3380fbef87433f41d48b4d27bf0875f2c1f92312cf5f5d842525be81c835cd7e6701f7df0e867e83a9169a4f7e10ebe583f246259ebebb084a4b7d0390645c2258d155e64889c969d1ac9a817bcc9bf0c7b48c657d8d761094a6fa0720b1796a3c7011f4bc905f3622d89ae57743fc074f3918e53b2aec21295df40e4152f2d478e023e97920be6c45b135caee87f80e9e7231ca7655d84252bbe81c82a5e5a8f1c047d2f2417cd88b626b95dd0ff01d3ce46394ecabb084a577d03905448c776e4df5ce0fffc61396443d0e39caa4603998c744196761094affa0720a71da14676951c44b7c5889ac07dffef3400ce633018ea272dec212960f40e414d3b428ced2a38896f8b113580fbffde68019cc66031d44e5bd84252c1e81c829a029772872ad39596e2e892f9ee5de4caaf7be8bd63aa40b8b084a584d0390533052ee50e55a72b2dc5d125f3dcbbc9955ef7d17ac754817161094b09a0720a660a5dca1cab4e565b8ba24be7b977932abdefa2f58ea902e2c212961340e414cc14bb9439569cacb7174497cf72ef26557bdf45eb1d5205c584252c2681c8299829772872ad39596e2e892f9ee5de4caaf7be8bd63aa40b8b084a584d0390533052ee50e55a72b2dc5d125f3dcbbc9955ef7d17ac754817161094b09a0720a66031eefa778b47e87086eae6738dd75aa68b3c8b55ea91d22d212961350e414cbf63ddf4ef168fd0e10dd5cce71baeb54d167916abd523a45a4252c26a1c82997e53ce428b03822479e871c1c62dbb9294d9348954aa48ecb584a584d5390532fb33aeddc2dd66cbab9da9ab8451d54d245eab6ea654937d6c094b09ab720a65f5675dbb85bacd97573b535708a3aa9a48bd56dd4ca926fad812961356e414cbea5acdcfb84bfdb166436cd6093db35c8c26f01696524f99b1252c26aec82997d341adf81d6e5de584539fd40a71c4e112fa228929a4a0d7634a584d5e90532fa50f6e48e7b31e4dc07405d00cd9e7ea20a0876e50494352c794b09abe20a65f491edc91cf663c9b80e80ba019b3cfd441410edca09286a58f2961357c414cbe923db9239ecc793701d0174033679fa882821db941250d4b1e52c26af882997d2407849fea6f54f0bb6cf4a85ec59d78ffb07dce7f4a1c3a3da584d5f20532fa470f093fd4dea9e176d9e950bd8b3af1ff60fb9cfe9438747b4b09abe40a65f48e1e127fa9bd53c2edb3d2a17b1675e3fec1f739fd2870e8f6961357c814cbe91c3c24ff537aa785db67a542f62cebc7fd83ee73fa50e1d1ed2c26af902997d238045c5753cbb18e6e9c10ade45035b7f5b41f43f1a1c547db584d5f21532fa46f08b8aea797631cdd38215bc8a06b6feb683e87e3438a8fb6b09abe42a65f48de11715d4f2ec639ba7042b79140d6dfd6d07d0fc687151f6d61357c854cbe91bc22e2ba9e5d8c7374e0856f2281adbfada0fa1f8d0e2a3edac26af90a997d237845c5753cbb18e6e9c10ade45035b7f5b41f43f1a1c547db584d5f21532fa46f0179d43264c94508b4edbe481fd1526b1302ada3138aa9f6c09abe42b65f48ddf2f3a864c9928a1169db7c903fa2a4d626055b46271553ed81357c856cbe91bbe5e750c993251422d3b6f9207f4549ac4c0ab68c4e2aa7db026af90ad97d2377c48fc71df3b05071243a54c07df075d842d992d86c5569f614d5f215c2fa46ef71e0b3c6b4c6c90dc5410c007b46ce3030774b70a8aaee2c39abe42b95f48dded3c1678d698d921b8a821800f68d9c6060ee96e15155dc587357c8572be91bbda043f4a5a0814c6291d092816c811b406ca1538272abd2f0f6af90ae67d2377b3087e94b410298c523a12502d9023680d942a704e557a5e1ed5f215ccfa46ef6610fd2968205318a47424a05b2046d01b2854e09caaf4bc3dabe42b99f48ddecc21fa52d040a63148e84940b6408da03650a9c13955e9787b57c85733e91bbd9843f4a5a0814c6291d092816c811b406ca1538272abd2f0f6af90ae67d2377b3013fba3edd8fb47db6deb2ad0f894a8d3eee960e257a785ee5f215cd0a46ef65f27f747dbb1f68fb6dbd655a1f12951a7ddd2c1c4af4f0bdcbe42b9a148ddecbe4fee8fb763ed1f6db7acab43e252a34fbba583895e9e17b97c85734291bbd97c2bef781b9e3cc1933c1f7e7fbb036e9a238d630fbd3dd373f90ae6862377b2f757def0373c798326783efcff7606dd34471ac61f7a7ba6e7f215cd0c46ef65ee3bd0391b4f558904bd4421f6e26be2633a77e83bf4f8f1d0e42b9a198ddecbdb03b2cae3750d94c1474e6be5bb35ecc121322c74e9f387a2c85734341bbd97b5076595c6ea1b29828e9cd7cb766bd982426458e9d3e70f4590ae6868377b2f6a0ecb2b8dd43653051d39af96ecd7b30484c8b1d3a7ce1e8b215cd0d06ef65ed41d96571ba86ca60a3a735f2dd9af6609099163a74f9c3d1642b9a1a0ddecbda83b2cae3750d94c1474e6be5bb35ecc121322c74e9f387a2c85734341bbd97b50026bb51b78151ae0b693a4af5d1bc01ed287ea9a3e72985a0ae6868477b2f69f04d76a36f02a35c16d27495eba37803da50fd5347ce530b415cd0d08ef65ed3e09aed46de0546b82da4e92bd746f007b4a1faa68f9ca61682b9a1a11decbda7c135da8dbc0a8d705b49d257ae8de00f6943f54d1f394c2d057343423bd97b4f826bb51b78151ae0b693a4af5d1bc01ed287ea9a3e72985a0ae6868477b2f69f04d76a36f02a35c16d27495eba37803da50fd5347ce530b415cd0d08ef65ed3e026ff9f8adba93ae571af53cf3d4e2faf4e3d028c9ca7ba83b9a1a11eecbda7bf4dff3f15b75275cae35ea79e7a9c5f5e9c7a0519394f75077343423dd97b4f7e2810d6d845076e4d93837734eb96e6b7e536662f72a08e0fe686847cb2f69efb5021adb08a0edc9b2706ee69d72dcd6fca6ccc5ee5411c1fcd0d08f965ed3df62c55b40dea803bee1ad404cba4b9c2da411bf4baca83dc409a1a11f3cbda7beb58ab681bd50077dc35a80997497385b48237e9759507b881343423e797b4f7d63d6928e48063727038163b2689453363b0b22ee82a111503686847d02f69efab06e4aa75d72967983cf29e4508e88ec20da6b9cd5423ce07d0d08fa15ed3df550dc954ebae52cf3079e53c8a11d11d841b4d739aa8479c0fa1a11f42bda7beaa1b92a9d75ca59e60f3ca791423a23b08369ae735508f381f43423e857b4f7d54372553aeb94b3cc1e794f228474476106d35ce6aa11e703e86847d0af69efaa86e4aa75d72967983cf29e4508e88ec20da6b9cd5423ce07d0d08fa15ed3df55068a7a767bb8f75bf6b19f0991370003c611995a7847b64fb1a11f42cda7bea9f5d61a77c4d816e36a2fa092a1d3e28736e75874c08f86df73423e85ab4f7d53d46d5a7a571655f2512ba3a4c30da78e1892d6a9511f27fef6847d0b669efaa7919bda7f7b92d4101f23a9c90581319bdbe9d312723e6a3dfd08fa16dd3df54f1337b4fef725a8203e4753920b026337b7d3a624e47cd47bfa11f42dba7bea9e266f69fdee4b50407c8ea7241604c66f6fa74c49c8f9a8f7f423e85b74f7d53c459ff986a9fcc8ac75e9b0c7ab6f6f5e8a12be5361f36c2ff847d0b6f9efaa7874011898215fb984689fc40ed644c13cbee9a26693e6f2a0008fa16e03df54f0d0c356bb10259b344e0bea9d2bef64f928976a8cf7cdff80111f42dc17bea9e19186ad76204b36689c17d53a57dec9f2512ed519ef9bff00223e85b82f7d53c3230d5aec40966cd1382faa74afbd93e4a25daa33df37fe00447d0b705efaa786461ab5d8812cd9a2705f54e95f7b27c944bb5467be6ffc0088fa16e0bdf54f0c84f6913bcfbfdb705d8b0c523e5c3212343ace8f4ce0124121f42dc18bea9e18f2ae48026ce5df0c37e27b23fc1e46a41339c2de69c03ec253e85b8327d53c31d55c9004d9cbbe186fc4f647f83c8d48267385bcd3807d84a7d0b7064faa7863a37a459480fda45c5c564f0f6fdefd0ff7ab3139770115495fa16e0caf54f0c736f48b2901fb48b8b8ac9e1edfbdfa1fef566272ee022a92bf42dc195ea9e18e66aa3bdcd15cb99cee259ebd3ee1d6bf8970eaa5ac046f658e85b832cd53c31cb6159d44701f9b6559179ff9fd298ffebda5fb0b2808f90b2d0b7065aaa7863954ec6013ada55ef62efba27379b9027d26101bd620120c566a16e0cb654f0c729299e5b228b0e617dac3a76672d7e779f6e45d6c102432ece42dc196da9e18e51533cb645161cc2fb5874ecce5afcef3edc8bad8204865d9c85b832db53c31ca2328bc537029c08ae7db00194ac5806786559b701090e5f3a0b7065b7a786394365178a6e0538115cfb60032958b00cf0cab36e02121cbe7416e0cb6f4f0c728656416d88e0d2a571c3862e4aa7be41dc41a93801243b20e92dc196df9e18e50b389533be9807cd9b53d2848d45daabb32f94cbff4877e5d35b832dc03c31ca15712a677d300f9b36a7a5091a8bb557665f2997fe90efcba6b7065b807863942a6e6727a73681b9251c103a2d0dc8d6c76a958bfa21e13b4e6e0cb701f0c7285368e0a7fb4365f50204e69c5211efd589816d73f143c41a9ddc196e04e18e50a55dd3a8a35d2e6cbbd693609c1a3dd30daf1d43df8789d93cb832dc0ac31ca14947b9a9f390bf5c2f79ece9302ad9ce160a7ce3bc0f15567a7065b816863942911b85ac93f7e13b16c09ffa584c11c426c13c23751e2c50f5e0cb702e0c728521370b5927efc2762d813ff4b09823884d827846ea3c58a1ebc196e05c18e50a426e16b24fdf84ec5b027fe9613047109b04f08dd478b143d7832dc0b831ca1484683fbd4c956c5b6dd1c5faba56ec4930b62377a5f1642bb0065b8171639429075c91d346013b399370521d6ca436ba5c18894b48e2c9fb610cb702e3c728520d4535ff38d8d8f5dead6a62d13ecb9cb2dd54f28ec5959ac3196e05c88e50a419167e571e88146e75279aed9a73f5616066ec411a8b2cd98732dc0b921ca148312cfcae3d1028dcea4f35db34e7eac2c0cdd882351659b30e65b817243942906259f95c7a2051b9d49e6bb669cfd585819bb1046a2cb3661ccb702e48728520c4400511a11705f661099d94cb960932fde3a464d15968703a96e05c91e50a41870c1c7bef046e6f79e001518f22708df6738b259fb2d284762dc0b924ca14830d1838f7de08dcdef3c002a31e44e11bece7164b3f65a508ec5b8172499429061a3071efbc11b9bde78005463c89c237d9ce2c967ecb4a11d8b702e49328520c3460e3df7823737bcf000a8c7913846fb39c592cfd969423b16e05c92650a418684dda179d1d497a55ccdb40ea1d670761e4f4b5f82d29eb63dc0b924da14830cf27c687e710f57763667ca9cc312c36be762bc7ed5a557ac8b817249c4290619d4f8d0fce21eaeec6ccf9539862586d7cec578fdab4aaf591702e49388520c33a2b2c78491a38604566b8cf28bb0f02f484f17bb269578f23e05c92720a4186735658f0923470c08acd719e51761e05e909e2f764d2af1e47c0b924e414830ce638c439d13f4403cd67a9649ae29a33ccc0084ac6a55fe090817249c9290619cb718873a27e88079acf52c935c53467998010958d4abfc12102e49392520c33966f233ff1d37291ed6b6bba6380c6f72dac6387179581264305c92725a418672b6a58d8907d47a692a39d9cbef7ec165605096a2c2b03f0870b924e4c4830ce5560c409cdd0f1cfdd14016175e63654a6b65530555609850f17249c9990619ca94d9a6c4878462271f4c8eae3c2cad14818ecbca7ac14ae1f2e49393420c339512747313dc6eec79bb657fdbf7bf3ca8ade1bd54c582b003f5c927269418672a14e8e627b8ddd8f376caffb7ef7e79515bc37aa98b056007eb924e4d2830ce542292f1da3f21da126a6261ef5e62d522624b1b12e60ada4fe7249c9a60619ca83525e3b47e43b424d4c4c3debcc5aa44c4963625cc15b49fce493934c0c33950630cecf3c9ed90752655ea3cf8f1370933f0920b682b837fac927269918672a0b619d9e793db20ea4cabd479f1e26e1267e12416d05706ff5924e4d3230ce54164f4d959f51c6a0016240b73632abea47a866ded70ae283ec249c9a65619ca82b2aad83eb79efc2ba914796645bb5fc89fd1019ab15c6abd9493934cbc3395055555b07d6f3df8575228f2cc8b76bf913fa2033562b8d57b2927269978672a0aa36c8685abe218da211e4818965361a22a082c2a9571c536624e4d3300ce541536d90d0b57c431b4423c90312ca6c344541058552ae38a6cc49c9a66019ca82a66733fa17cee8b94014582e1d8b3690852e4d66a25c72f19993934cc13395054b5a7a4cdc7433f537f57684330ccb490508dd2941b8e7873427269983672a0a954106f265beca6d27b7b3305e0ff4ba04bdfcae8071d0b2694e4d3307ce5415290e203d7853f75d073c2c88b416479c04283bb8fde3a308d39c9a66109ca82a511c407af0a7eeba0e785911682c8f3808507771fbc74611a73934cc21395054a23880f5e14fdd741cf0b222d0591e7010a0eee3f78e8c234e7269984272a0a9447101ebc29fbae839e16445a0b23ce02141ddc7ef1d18469ce4d33084e54152886e16303215d8532b8f8eb3395ad7e83d2ffdebdb3a32313ac9a6610aca82a50f683eb9110213290eebe38e6aac0df8750c3e33b374660676934cc21695054a1d5c8fcaceda88d4d5a48d44cd4e7a18e4c4bec363e8cdb0ee2699842e2a0a94394531ee4a8b742c6315e0b192935259c435bfe2c4d19d05dd4d33085d5415287116763541ed4adb7df8878b1d1d02db8317c22186a33bafbb9a6610bba82a50e12cec6a83da95b6fbf10f163a3a05b7062f84430d46775f7734cc21775054a1c259d8d507b52b6df7e21e2c74740b6e0c5f08861a8ceebeee699842eea0a943843fc402bc40b95ea7910280e0de7504136a53683219df21ddd33085de415287070b9a5e2557d54006eecb29b9b348302180e92c6133bfe7bca6610bbd82a50e0d1734bc4aafaa800ddd9653736690604301d258c2677fcf794cc2177b054a1c1a2e6978955f55001bbb2ca6e6cd20c08603a4b184ceff9ef299842ef60a9438345cd2f12abeaa003776594dcd9a41810c074963099dff3de533085dec1528706845b83b0253b68326b978c3932ae12a12bad522103c001fcb6610bbd92a50e0cf1782ceb17dcf89053fb7af1e4c207c2021eca01d7801e397cc2177b354a1c19d2f059d62fb9f120a7f6f5e3c9840f84043d9403af003c72f9842ef66a943833a5e0b3ac5f73e2414fedebc793081f08087b28075e0078e5f3085decd528706744828ce38c4decae1ca83a0ea576208fbbba75ce8c010c0bf610bbd9ba50e0ce71c63f51e6020187b61cd69cca52239f2239115ce8023257fc2177b384a1c19cd38c7ea3cc04030f6c39ad3994a4473e447222b9d00464aff842ef6709438339a718fd479808061ed8735a7329488e7c88e44573a008c95ff085dece1287067346f32019fd7634692db31765d1f6ff78bc8cb0a71011acfff10bbd9c350e0ce676a765bec85290fdd832914b2353e17123dd870df023743ff2177b387a1c19ccd60ff1085e0b4a272d318515c60da561f27f33dbb04702bff42ef6710438339994e1079b897cbc79d72f6cab0b812d438fc28d77308e1fbff85dece218706733128334c1e05fa11f2b2b3bd596683d06ca4940ae311c59c000bbd9c440e0ce6615066983c0bf423e565677ab2cd07a0d9492815c6238b3800177b38881c19ccc22cdf8924ee4aca8297951d5d906d69ad3e928789471814012ef671113833998359bf1249dc9595052f2a3abb20dad35a7d250f128e3028025dece222706733063f907d408f8dacc22b1a9d6e3813ceafa68c7a221c61f405bbd9c445e0ce660b0b33532df57ddc3c22fb62d46685c559f95b504138c58c0c77b3888cc19ccc151666a65beafbb87845f6c5a8cd0b8ab3f2b6a082718b1818ef6711198339982a2ccd4cb7d5f770f08bed8b519a171567e56d4104e3163031dece223306733054599a996fabeee1e117db16a3342e2acfcada8209c62c6063bd9c44660ce660a83f478b8c2e404679fc7c553e5eba7d9a41f760108c5a64c87b3888cd19ccc14f0aa16fc532e30fabc5bed274b3d3232f30311c1e18b66d91f671119b3399829d1542df8a65c61f578b7da4e967a6465e6062383c316cdb23ece223366733053a2a85bf14cb8c3eaf16fb49d2cf4c8cbcc0c4707862d9b647d9c4466cce660a74550b7e2997187d5e2df693a59e9919798188e0f0c5b36c8fb3888cd99ccc14e83629550004937d7428b34f4333905aedaf541dde8b687d20671119b4399829cf6c52aa000926fae851669e866720b5db5ea83bbd16d0fa40ce2233687330539e64b7acace8b078886f936504c49f93b16992d3772da398829c4466d1e660a73b5581b206a7c373c8abecf2017f9d4f5d7f6802eb5b48d5063888cda4ccc14e753715bcba25e96a4924a00bfaf598c6b5ab1261d3b6934e0d71119b4a99829ce96e2b79744bd2d492494017f5eb318d6b5624c3a76d269c1ae2233695330539d268694b956e082bdc5f4657e3ccc142d1588be34bda4edc36c4466d2b660a73a35ce4efd7b272da708b52d7bf8fe0ad9d5d5a2294b49f5c6e888cda57cc14e74545dc385c3b483798e36bd777161f833566f6a12669405cde1119b4b09829ce8917cac9654cf2f1e9939dd6e6229d2e657a2f9e49d2825dbd2233696230539d112f9592ca99e5e3d3273badcc453a5ccaf45f3c93a504bb7a4466d2c460a73a225f2b259533cbc7a64e775b988a74b995e8be79274a0976f488cda588c14e74444a68a3d73dfa120469b4df290b479b267dbf4e4b941491ea119b4b12829ce88720e3a05b5256a6c0a02fe64a0ced5e47a7c0f894282ac7d5233696260539d10d41c740b6a4ad4d81405fcc9419dabc8f4f81f12850558faa466d2c4c0a73a21a0fa0da1a1fbd1dba4d85c1202a13a1194b463e4da0acc3558cda589914e744331f41b4343f7a3b749b0b824054274232968c7c9b415986ab19b4b13229ce88663e8368687ef476e936170480a84e84652d18f93682b30d5633696264539d10cc0919297dd44b708a38f430f946fb30c506744e6a0567bead66d2c4c9a73a2197123252fba896e11471e861f28df6618a0ce89cd40acf7d5acda589934e74432e2464a5f7512dc228e3d0c3e51becc31419d139a8159efab59b4b13269ce8865c48c94beea25b8451c7a187ca37d9862833a273502b3df56b3696264d39d10cb81da4f08a1b198b5b5c09378c6611344b1387429d567d8ed76d2c4c9b73a2196f3b49e114363316b6b8126f18cc226896270e853aacfb1daeda589936e74432de02a61ad542c8b0253ceb06298ea2f926fa5f667259f7df5eb4b1326ece8865bb054c35aa8591604a79d60c531d45f24df4becce4b3efbebd696264dd9d10cb760a986b550b22c094f3ac18a63a8be49be97d99c967df7d7ad2c4c9bb3a2196ec1530d6aa16458129e758314c7517c937d2fb3392cfbefaf5a589937674432dd82a61ad542c8b0253ceb06298ea2f926fa5f667259f7df5eb4b1326ece8865bb054c35aa8591604a79d60c531d45f24df4becce4b3efbebd696264dd9d10cb76035990dfd888e8c070787b25b9f1c71b9441bf8937df97bae2c4c9bb4a2196ebf6b321bfb111d180e0f0f64b73e38e3728837f126fbf2f75c589937694432dd7e627690a2f89cb2d3eae4f16672cfeedfbcb23e4af7e792b9b1326ed38865bafb50ff79f2c79be85fa2900ac4dbfe05ba25a6d892efd0c9746264dda810cb75f52e114c92659a537711e63d81ae5a336ef7900d22dfa336e9c4c9bb512196ebe95c229924cb34a6ee23cc7b035cb466ddef201a45bf466dd3899376a2432dd7d244578af66ccbd094145f1dfeafc6f5b68a8290887e8e7fa81326ed45865bafa314c16e99affa23dff58463f555ec1367c1477d0dfd1ea351264dda8c0cb75f452982dd335ff447bfeb08c7eaabd826cf828efa1bfa3d46a24c9bb518196ebe8a5305ba66bfe88f7fd6118fd557b04d9f051df437f47a8d4499376a3032dd7d14321dcd7a5633a1b778e947a2a5bec338b67e446ce8f6be8a326ed46165bafa27643b9af4ac67436ef1d28f454b7d86716cfc88d9d1ed7d1464dda8c2cb75f44e54898e962f310995b06b46828d5934dd863b6db0a3dc9e29c9bb518696ebe89b352575d934c495e32d9cb4fd111091b5b8b9375e47bae0549376a30e2dd7d1356a4aebb269892bc65b3969fa2221236b71726ebc8f75c0a926ed461c5bafa26a60a83011a974da448338fbec3aa06ed18f2739761eed25534dda8c39b75f44d34d62b8d0294c3740d3381fd06b9f059dca90cee93ddbeea79bb518746ebe89a526d7ca4d28faf13973366798cd9c33364163f9cf7bb98150376a30e9dd7d13494daf949a51f5e272e66ccf319b38666c82c7f39ef77302a06ed461d3bafa2692277181e17a4e479d999fc65b2ccef4d3b1d2433aeee7a941dda8c3a875f44d234ee303c2f49c8f3b333f8cb6599de9a763a48675ddcf5283bb518750ebe89a4629d86032bf9ba12e33454164a999fb49738b68e8bba0490876a30ea2d7d1348b53b0c0657f37425c668a82c95333f692e716d1d177409210ed461d45afa269163373d977d4d1077099db2d8a9cc615207a6fff9fee82c822da8c3a8c5f44d22b66e7b2efa9a20ee133b65b15398c2a40f4dfff3fdd059045b5187518be89a45659e1be8c29a6a07a3432de2269767c7c96025a7cba0cc48c6a30ea327d1348ab3fd5d5c529afc3ac352be43cc94b20f3d84710f6741b2d19d461d465fa2691550bbe043729c20a10371df07188f469e25cd07de9e837fe34a8c3a8ccf44d22a9177c086e538414206e3be0e311e8d3c4b9a0fbd3d06ffc6951875199e89a45522ef810dca7082840dc77c1c623d1a7897341f7a7a0dff8d2a30ea333d1348aa45df021b94e105081b8ef838c47a34f12e683ef4f41bff1a5461d4667a269154847f29c1f728323bb3ea52f1085a4c620794a3a9b8381874b8c3a8cd044d22a8f1bf790ebbb68ca2e4a10861901a7b43b9ed6d1340704b298187519a189a4551d37ef21d776d1945c94210c32034f68773dada2680e09653030ea33431348aa3a6fde43aeeda328b928421864069ed0ee7b5b44d01c12ca6061d46686269154746bcee00ab1a8d42a1d4a58c0039bc9d7a2f8e59d382738c1c3a8cd0d4d22a8e763b018c239b42b0c075ad977fd95bba9f23427377050158487519a1b9a4551cd53728a3149cad8cfdb7bdae7f1899f4e90aaaa6be0a1cf0a0ea33438348aa39932f76d0f69f8345783bdddc7d9716697cd97b0d4c14542151d4668716915473165eeda1ed3f068af077bbb8fb2e2cd2f9b2f61a9828a842a3a8cd0e2d22a8e6257f00cea7e435415dbbd9f175c23c259e2a11f500516ac557519a1c6a4551cc33bf27281d2e92ae384416626aea5acae71849a9d0a2efcabea33438e48aa398503f73db07c34d87ed548f44553a981578f4b9137145f9d58d466871d9154730907ee7b60f869b0fdaa91e88aa75302af1e97226e28bf3ab1a8cd0e3b22a8e6120fdcf6c1f0d361fb5523d1154ea6055e3d2e44dc517e7563519a1c764551cc241fb9ed83e1a6c3f6aa47a22a9d4c0abc7a5c89b8a2fceac6a33438ec8aa398483f73db07c34d87ed548f44553a981578f4b9137145f9d58d466871d9154730900afa0ebc5cfd929275e4b0a26b8e52ec95b482df8bf54f1b8cd0e3b32a8e611f15f41d78b9fb2524ebc96144d71ca5d92b6905bf17ea9e3719a1c766551cc23e2be83af173f64a49d792c289ae394bb256d20b7e2fd53c6e33438eccaa39847c57d075e2e7ec9493af2585135c729764ada416fc5faa78dc66871d99547308f83bb34472a63babdf2b11321eaf4356c4078a89f5bf5695b9cd0e3b33a8e611ef0378e19222d9da7622e88c3554e4d582bb576fe87eaecf749a1c766851cc23dd06f1c32445b3b4ec45d1186aa9c9ab0576aedfd0fd5d9ee93438ecd0a39847ba0de386488b6769d88ba230d55393560aed5dbfa1fabb3dd26871d9a147308f741bc70c9116ced3b1174461aaa726ac15dabb7f43f5767ba4d0e3b3428e611ee8378e19222d9da7622e88c3554e4d582bb576fe87eaecf749a1c766851cc23dd06f1c32445b3b4ec45d1186aa9c9ab0576aedfd0fd5d9ee93438ecd0a39847ba06a4abd358cd9204086e9354d2f9388a9821e561cabb58127871d9a157308f73f60a7d317f014c338da9892925585394db07f0836576ca6500e3b342be611ee7d4d61fedcb68c092981f74d1ca1689a960d406c69aedaf0a11c766858cc23dcf926d65666437a950ad0b4c231392f5d26c6c334d05db7854338ecd0b29847b9f14dacaccc86f52a15a1698462725eba4d8d8669a0bb6f0a8671d9a165308f73e2276bb245e44cd6e30f9930bcdb1b9c95c74f2f3e76dfb90de3b342cb611ee7c34ed7648bc899adc61f326179b637392b8e9e5e7cedbf721bc7668596c23dcf8629c121c46795de440b2aeaeb62cc9a51c97f18f6db8088388ecd0b2e847b9f0b53824388cf2bbc881655d5d6c59934a392fe31edb70110711d9a165d08f73e163316dfbe74b9fbc7f971d3a581909141d23ebfd86e03c4e33b342cbb11ee7c2b662dbf7ce973f78ff2e3a74b03212283a47d7fb0dc0789c67668597623dcf856586dd7a6a94a71d7b28d768dfca06d01f53d5b5eb810b78decd0b2ed47b9f0ab3cee07fa28f7666731e11513ef9f01fe96bd12ba7023131cd9a165db8f73e15505ee68a128514f863088521fd59c2bf7d9bc8171e047ca3ab342cbb81ee7c2a90bdcd14250a29f0c6110a43fab3857efb37902e3c08f9475668597703dcf855217b9a284a1453e18c221487f5670afdf66f205c7811f28eacd0b2ee07b9f0aa42f734509428a7c31844290feace15fbecde40b8f023e51d59a165dc0f73e15485ee68a128514f863088521fd59c2bf7d9bc8171e047ca3ab342cbb81ee7c2a9049df6cd1e08c737dddd06bf2a9e3a6f5e3d28a3908faeb5768597704dcf8551f1fd13250977b69b38866ffdd4a2575e673e7706f11f77aafd0b2ee0ab9f0aa3d3fa264a12ef6d36710cdffba944aebcce7cee0de23eef55fa165dc1573e1547a0b5721ef34502985ee62276d1ef3ff947be01db947df8ec042cbb82be7c2a8f316ae43de68a0530bdcc44eda3de7ff28f7c03b728fbf1d8085977057cf8551e62d5c87bcd140a617b9889db47bcffe51ef8076e51f7e3b010b2ee0af9f0aa3cc5ab90f79a2814c2f73113b68f79ffca3df00edca3efc7602165dc15f3e154798418477a01b651b16b2e89ec9e59e21426a4437917dfa90052cbb82bf7c2a8f2f0f1b47ed0d2cb8e53297658bc19a6a7f80cacb1ffbf6c40b5977057ff8551e5d1e368fda1a5971ca652ecb178334d4ff0195963ff7ed8816b2ee0afff0aa3cba3c6d1fb434b2e394ca5d962f0669a9fe032b2c7fefdb102d65dc15ffe154797404ec98153fc849e16181545603317bf6b298b4fcdfb7c45bcbb82c00c2a8f2e709d9302a7f9093c2c302a8ac0662f7ed653169f9bf6f88b7977058018551e5ce13b26054ff212785860551580cc5efdaca62d3f37edf116f2ee0b0030aa3cb9c2764c0a9fe424f0b0c0aa2b0198bdfb594c5a7e6fdbe22de5dc16006154797384ec98153fc849e16181545603317bf6b298b4fcdfb7c45bcbb82c00c2a8f2e7029a55b54cf6bbee3fcf0b2b85c8da6d0ff58fb98f6fa2f7a77058019551e5cdf534ab6a99ed77dc7f9e16570b91b4da1feb1f731edf45ef4ee0b0032aa3cb9be32a7c60014117e47c088f2d96894c33ea9a64a60dbea61eadc1600665479737b654f8c002822fc8f8111e5b2d129867d534c94c1b7d4c3d5b82c00cca8f2e6f656b170ad26a87bd6cee9f35d98b134f552db85806fab2bac7058019a51e5cdeb39753a0723b37a656a9a0eb327c091e551f966fddf57fb59e0b00335a3cb9bd572ea740e4766f4cad5341d664f8123caa3f2cdfbbeaff6b3c160066b479737aa71e740c965306c4d772e62c495606f8ff427f7f47d61916882c00cd78f2e6f536fe0da3fa0c35b52bb22ed81211f071a94924be5fac4c6d2058019b01e5cdea56bd40d2c17e9395d430c02fa389c362fd566f3c8f58b31a50b0033613cb9bd4963ba73050634f57252de2dec6796945a5710438eeb18074b160066c379737a9153873eb6e2cc6d9c728283d0c58b50af5a62e31ad631b2972c00cd87f2e6f5213320d61a9bfb5df0b1cb2f998174c95961082232ac65092f58019b10e5cdea416641ac3537f6bbe163965f3302e992b2c210446558ca125eb0033621cb9bd4825895b117464ffa7a93f2e65dfc314d603062e4c7b195c8be60066c449737a9033d3dbadb630277acf4abf4b3eec0c2bb0d08258c632d357dc00cd88a2e6f5205068dce639c677211b61e115fd3dfad70c652a715c65c0efc8019b1155cdea4090d1b9cc738cee4236c3c22bfa7bf5ae18ca54e2b8cb81df90033622ab9bd48121a37398e719dc846d878457f4f7eb5c3194a9c5719703bf20066c455737a9024346e731ce33b908db0f08afe9efd6b86329538ae32e077e400cd88aae6f5204868dce639c677211b61e115fd3dfad70c652a715c65c0efc8019b1155cdea40905dcc25206350c4ee908853f27253d61376973eb5cb838391033622ac9bd4811f47aaa2ed9d040c94edd6cfdcdb05d4219970d9689708ab23066c455a37a9023d1b679e88106a9be1a873c7b1ac69d03ddf240ece2e12fa470cd88ab56f52047936cf3d1020d537c350e78f6358d3a07bbe481d9c5c25f48e19b1156adea408f26d9e7a2041aa6f86a1cf1ec6b1a740f77c903b38b84be91c33622ad5bd4811e4674f4ced59b761c51064658559aca9e9a562d26e7099763966c455ac7a9023c75ab0f28789d14641ed8ef302a9b77bcdf70800d9e1349073cd88ab59f520478d41743dbbea050f3ba7e40dfd49cd1f969a525db0c26ac4e89b1156b4ea408f190efad424aa6ca12f1c8e43f289f86727e0e7175e84d72dd23622ad6ad4811e311df5a84954d9425e391c87e513f0ce4fc1ce2ebd09ae5ba46c455ad5a9023c623beb5092a9b284bc72390fca27e19c9f839c5d7a135cb748d88ab5ab520478c403e8f9d229c78c30b138478c46216139b37b16f126bb1292b1156b57a408f18707d1f3a4538f186162708f188c42c27366f62de24d762525622ad6af4811e30e0fa3e748a71e30c2c4e11e31188584e6cdec5bc49aec4a4ac455ad5e9023c61c1f47ce914e3c618589c23c62310b09cd9bd8b78935d8949588ab5abd20478c383e8f9d229c78c30b138478c46216139b37b16f126bb1292b1156b57a408f1870093192f20f5408cdf3cf1980ba8a4f311ba53a21d763f65722ad6af5811e30df126325e41ea8119be79e330175149e62374a7443aec7ecae455ad5eb023c61be24c64bc83d502337cf3c6602ea293cc46e94e8875d8fd95c8ab5abd60478c37c498c97907aa0466f9e78cc05d4527988dd29d10ebb1fb2b9156b57ac08f186f81f2b87cdcba30f9709b7c0039f031b0c6695fe1a764109732ad6af5911e30def3e570f9b97461f2e136f80073e063618cd2bfc34ec8212e655ad5eb223c61bde08c077e404eec113f3a52806726a942c469a5466d905c9cdab5abd65478c37bb1180efc809dd8227e74a500ce4d528588d34a8cdb20b939b56b57aca8f186f762301df9013bb044fce94a019c9aa50b11a69519b64172736ad6af5951e30deec4603bf202776089f9d2940339354a16234d2a336c82e4e6d5ad5eb2a3c61bdd81819d6ed254e93f70718a85f1d076abf15e7a26a905e40dbb5abd65578c37baf3033adda4a9d27ee0e3150be3a0ed57e2bcf44d520bc81b76b57acaaf186f75e60675bb4953a4fdc1c62a17c741daafc579e89aa4179036ed6af5955e30deebc4ce1101600d72270058b6af0de997df35b7f6f5182f3aadead5eb2acc61bdd7725d478d8d810c797d7dcfdd9b39123e163413aa005e8f9be5abd655a8c37baed4ba8f1b1b0218f2fafb9fbb3672247c2c68275400bd1f37cb57acab5186f75da23643c1036a5a1172c3a1f5ec4a2b7803947467d17a58afa6af5956b30deebb346c878206d4b422e58743ebd89456f00728e8cfa2f4b15f4d5eb2ad661bdd76619a348edb0f907147daea57308e905fb915f75f15e97cfeaabd655adc37baecb334691db61f20e28fb5d4ae611d20bf722beebe2bd2f9fd557acab5b86f75d96668d23b6c3e41c51f6ba95cc23a417ee457dd7c57a5f3faaaf5956b70deebb2c592ca01a5e2abb5bba3b53903da657d7373e0b87f4c023565eb2ad6f1bdd76573e6b98e192b7f96f413ccf1871aad7a91abe730ce981eaadbd655adf37baecad08e98a6ffbd275964f3fc628d9b3d74ce1bf4216d305795c7acab5bf6f75d95911d314dff7a4eb2c9e7f8c51b367ae99c37e842da60af2b8f5956b7edeebb2b223a629bfef49d6593cff18a366cf5d3386fd085b4c15e571eb2ad6fdbdd76564474c537fde93acb279fe3146cd9eba670dfa10b6982bcae3d655adfb7baecac81aaaffac9389dc1cc0c28a85919b9cc8c8367d6a305939c8acab5bf7f75d958f3555ff592713b8398185150b23373991906cfad460b273915956b7efeebb2b1e6aabfeb24e277073030a2a16466e732320d9f5a8c164e722b2ad6fdfdd76563c616a561172b1639dd2da7c24833b0e40edf6474e82cb7246655adfc0baecac774ee704cfbbc549f3727b2040fcd4447c882eea9a0598888dcab5bf8275d958ed29e0624c4ded169eb1bc6879f006b0f3bca031310b32b51c956b7f05ebb2b1d953c0c4989bda2d3d6378d0f3e00d61e77940626216656a392ad6fe0bd76563b23393e1de0e16dd3293b7c9dfb678ebc99ec320c12ccc787355adfc18aecac7636727c3bc1c2dba65276f93bf6cf1d7933d8641825998f0e6ab5bf8315d958ec65a61e0250ebdf7821ba54f76d041d721274edf01b33385ce56b7f063bb2b1d8b40d618f6f3de71bc0410c6e596e1d63cfae01a006668af9dad6fe0c876563b150dbe8a9abe1f662fd4e7b5c32421d474a2028ffdccd3033c5adfc191ecac76291b7d15357c3ecc5fa9cf6b864843a8e944051ffb99a60678b5bf8323d958ec5236fa2a6af87d98bf539ed70c908751d2880a3ff7334c0cf16b7f0647b2b1d8a46df454d5f0fb317ea73dae19210ea3a510147fee669819e2d6fe0c8f6563b14867fb0258b858e5b51b41842a387b6f44cc6b5bd9cd31d7c6adfc191fcac7628f5c085d5e47144e220349304c67550684451913b09a65538e5bf83240958ec51d44231369648b1efbd3588890c50835033674835e34cc4b1db7f064822b1d8a3914587f7f9f78c0af73773919806e9201192b62b9699a3a3c6fe0c905563b147128b0feff3ef1815ee6ee723300dd24023256c572d3347478dfc1920aac7628e25161fdfe7de302bdcddce46601ba480464ad8ae5a668e8f1bf83241558ec51c42ed654a9d2288833687ff0c3f9d2b803759d71c84cd375e47f06482bb1d8a3875daca953a4511066d0ffe187f3a57006eb3ae39099a6ebc8fe0c905763b1470e476bab541f04a3856ec5eb07dda9080882b8231e334f7b92fc1920afc7628e1b1ae9af55146bc9c2aa51fe07b1b0380bb1b2a23966a09b26f83241608ec51c3535d35eaa28d7938554a3fc0f6360701763654472cd41364df06482c11d8a386a6ba6bd5451af270aa947f81ec6c0e02ec6ca88e59a826c9be0c905823b1470d4635fd35579c0d0cd1f56183583dfe85839d76dc835067d38c1920b057628e1a752d1ff57c9e424520b725862fe1df8ab1ff1378d6a0e9e728324160bec51c34d31b6575c6a2acb5be3aad8bdf29a1950ec24cb17d41ee0e606482c18d8a38699636caeb8d45596b7c755b17be53432a1d849962fa83dc1cc0c905831b1470d3252ebb61e7f0db0275b718aefc0c68d3e5cd5885c507d27991920b064628e1a6331e9c4e9d47de30683a93dd777eb427765ed6cb5a0fbf333324160c9c51c34c563d389d3a8fbc60d07527baeefd684eecbdad96b41f7e6666482c1938a38698a53b96c54285a0ed1db6b1f55d60b31d843f80ed383f170cdc90583281470d313338531552716a05b839c66a3a2748bab343279a407e4859c920b065128e1a625670a62aa4e2d40b70738cd4744e917566864f3480fc90b3924160ca251c34c4a5a271e0172bd0425db37c286803056a77d0c428d1f93ba73482c1945a3869893406094afbbdc8b038335ad04f6bed549a65ae1173f2918e79058328c470d31250cd3820c4e1b98bed3318201e3dbd28df8f81e2b7e53d5d020b065198e1a624919a704189c37317da6630403c7b7a51bf1f03c56fca7aba04160ca331c34c492334e0831386e62fb4cc608078f6f4a37e3e078adf94f574082c1946638698924669c106270dcc5f6998c100f1ede946fc7c0f15bf29eae81058328cc70d31248594a7971b81c0ea4ffde4816341b50da3bc43eb4e53f01030b065199e1a6248f3ea74b90469aa001cc82b8245e94c9af23cad966ca7fa607160ca334c34c491d0960efcd6397c2bb65cb9840b387bb58f3d80eca9500f00f2c19466a8698923912c1df9ac72f8576cb973081670f76b1e7b01d952a01e01e58328cd50d3124722583bf358e5f0aed972e6102ce1eed63cf603b2a5403c03cb06519aa1a6248e44b077e6b1cbe15db2e5cc2059c3ddac79ec07654a807807960ca335434c491c8222155830fdeae6e297fac032ed9dd89e9c348a65010a4f3c19466a96989238f4442ab061fbd5cdc52ff58065db3bb13d386914ca02149e78328cd52d312471e1497aeb915dd3c7072c4d804b1c59e22534f7e96404437d006519aa6a6248e3b292f5d722bba78e0e589b009638b3c44a69efd2c80886fa00ca3354d4c491c76525ebae45774f1c1cb136012c71678894d3dfa590110df4019466a9a989238ec30cfce75854c663b62ece81d848b190d46be50af02236281328cd536312471d7619f9ceb0a98cc76c5d9d03b0916321a8d7ca15e0446c5026519aa6c6248e3ae4f519282eb941ba55879c86e088a8c2fc73b9eb9088f2e05ca3354d9c491c75b2ab57db2ad8aba027db9b8d40773405a3ab9996f1120000c9466a9b489238eb5556afb655b157404fb7371a80ee680b4757332de2240001928cd536912471d6a36e84f778c8d6ac1c3ad0b48142b29639728c1b94481a433519aa6d3248e3ad36dd09eef191ad583875a1690285652c72e51837289034866a3354da6491c75a667b3968b08982dbedb7a5518470acd8908e562e2120834ce466a9b4d9238eb4b5b7985c2e792de3583bad2288473c30cbe0d21c124120d9d8cd5369c2471d69543056432a5883f22d43bcc48ff45ae14285c9f7f4825bf3c19aa6d3948e3ad29121d2112217300fd753dc089f4e98422fcfb9afb904d22793354da7391c75a51243a422442e601faea7b8113e9d30845f9f735f7209a44f266a9b4e7238eb4a24874844885cc03f5d4f70227d3a6108bf3ee6bee413489e4cd5369ce471d69441cfb613de1fa8aa376b42c479daa4912941f33d9826ab7ca9aa6d39d8e3ad28739f6c27bc3f51546ed68588f3b549225283e67b304d56f95354da73b1c75a50e73ed84f787ea2a8ddad0b11e76a9244a507ccf6609aadf2a6a9b4e7638eb4a1c73ed629be636d7d382678a34e3b0708f4d3bfac913576255d5369ced71d6943773ed1de4a2d0325ed1953c61bdbf091946ba518f26b068acaa6d39dbe3ad286d73ec94761c02e7756ff0a0bb71dc3a2d39b6ff1b4d62755a54da73b8c75a50d973eb81990e6851a2aca7696eda169c551fb05a339ac68eb5a9b4e7728eb4a1b173e95bdef33325fd2614fad5aa8b60a4eba31064358ec16c5369cee61d69436173e5106abcc8ceb218f01da34b74e94483887cc56b1f26d9a6d39dcd3ad286c173dc79824ff4201bfea6633e8d47fa83b3535587d63ff1b44da73b9b75a50d8173cb4bb1764ac2efca12ee7510ee1d0212e9070cac8187699b4e7737eb4a1b0173a8f00fc2f8089760ec04e2183a61fed2146a165904b2d4369cee70d6943601736438cc5c5293e68e9e31bc26d2ebf8506b3029b20b09a96d39dce2ad286c0172daca458f07aa84ea028b704403ffeb4d18bc506417b753da73b9c65a50d80171c7ed37f471d7c1a0cb3ed87e6627d14673d49dc83112a8b4e7738db4a1b0016fa2331cbf46323b0e5ca5a8f32a779d392a05389063c95269cee71c694360016b56bee654eee72de97f7349dcb317351e96666e20c936a5d39dce39d286c00162bfd679804051139fc50e8bafc45664e96f28d94194114ca73b9c74a50d80015192059fd6e324df0c50450f55e6d4c47f20adaf8329c69a4e7738ea4a1b00012f3663ec8428cc75e566b216a22bd183aa83b75c065531359cee71d5943600015e6cc7d9085198ebcacd642d4457a30755076eb80caa626b39dce3ab286c000248ebe85ee705b48f6260f0527f0d6e095651396d195668d773b9c75750d800031dea296aa46debd69188089cf479040d58e4ced732ae75afe7738eafa1b000053bd452d548dbd7ad23101139e8f2081ab1c99dae655ceb5fcee71d5f4360000a03bafe57681a321212e64a6bc84238300fd59759cabb7ac09dce3abf86c000130775fcaed034642425cc94d7908470601fab2eb39576f5813b9c757f0d8000260eebf95da068c8484b9929af2108e0c03f565d672aedeb027738eafe1b00004c1dd7f2bb40d190909732535e4211c1807eacbace55dbd604ee71d5fc360000983bafe57681a321212e64a6bc84238300fd59759cabb7ac09dce3abf86c00013003722399d9a8c4fa298f7570fea52dfca6f547365770fc14b9c757f1d800025f06e44733b35189f4531eeae1fd4a5bf94dea8e6caee1f829738eafe3b00004be0dc88e6766a313e8a63dd5c3fa94b7f29bd51cd95dc3f052e71d5fc76000097c1b911ccecd4627d14c7bab87f5296fe537aa39b2bb87e0a5ce3abf8ec00012f83722399d9a8c4fa298f7570fea52dfca6f547365770fc14b9c757f1d800025f06e44733b35189f4531eeae1fd4a5bf94dea8e6caee1f829738eafe3b00004be0689b3f234093c14230a384379fa9a72469942992dc40a92f71d5fc77000097bf5d48d6f3578a053c2e0d306735b176437f6aaf22b882f65fe3abf8ef00012f7d46a4069385768d3028e088c661c11481ab17ba42710790c0c757f1df00025ef9195a65d3e14f9d181e873984b9e050fe0271d081e210c5828eafe3bf0004bdf132b4cba7c29f3a303d0e730973c0a1fc04e3a103c4218b051d5fc77e00097be26569974f853e74607a1ce612e78143f809c742078843160a3abf8efc0012f7c456e5874be0df6b78c0fff41dc560afeabfd0e00c1087d015757f1df90025ef8739dd6744982159a94ec61033811f87d02be41c152111442beafe3bf3004bdf0d73bace893042b3529d8c2067023f0fa057c8382a42228857d5fc77e60097be1a7387f5bf36e7e95d07de68c5fadc473b5bd2cc518446b4b0abf8efcd012f7c337322442b44325571dc82f983ec16b67163e7f4a0088f0d6257f1df9b025ef8657256e1035ec72d9b85cc1affce8b94dd7412453d111fbec5afe3bf3704bdf0c970c01ab393f0ddeed85e5df7937551b59466e6772241218c5fc77e6f097be1916d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321673774d4d2eaffe2c7cbefc630efbec65662add3890972347f1df9bf25ef86415a8142567c38827d5c5e0784583da5875907b7a412148869fe3bf37f4bdf0c814114dd59ced387b285823700a6d973095e51cb45242ab4d4fc77e6ff97be19010e3c13607409921cd7ca95f944110e0d68e5f28748570daaf8efce002f7c32011c7826c0e8132439af952bf288221c1ad1cbe50e90ae1b55f1df9c005ef8640238f04d81d02648735f2a57e510443835a397ca1d215c36abe3bf3800bdf0c80471e09b03a04c90e6be54afca2088706b472f943a42b86d57c77e70017be190086fd38eb416fba485496f878c376f08d13aa1847185727eb08efce003f7c3200f6bb976150459cbc25fa53710653c399d218564e00ae6a1621df9c008ef86401d638544d6df161a3c8c109618c0d69b34ef4d25bd15cee6c53bf38012df0c8039531ce25a948eb730e4e75429780b5e648adca7772b9f718b77e70026be190071324c1d61ff7ff1199694d04ae674e4c3c1fbaaeb57408717efce004e7c3200e164983ac3feffe2332d29a095cce9c98783f755d6ae810e2fdf9c009cf86401c25542ce34d462471e271969239031bb09b43107aa5d03c060bf38013af0c803833697f5167f2710f41af8fa3f16c19e0e14a46b51ba0924c27e700276e19007056d2fea2cfe4e21e835f1f47e2d833c1c2948d6a374124984fce004edc3200e0a66722d06d2fec68838aa10f45164a032fed40943e826370af9c009dc86401c1358f6b2ba7c600fc83e1a49e099276860a9ea6e84d04e1216f38013ba0c8038253dffbe21cf22a24848fabbb928acf8bc00173906a09dc82ee7002775190070490811d4f074a7c7485ebb9f6a47b81972ac70ce0a413d345ece004eeb3200e0911023a9e0e94f8e90bd773ed48f7032e558e19c14827a68bd9c009dd66401c122204753c1d29f1d217aee7da91ee065cab1c3382904f4d17b38013bacc8038244408ea783a53e3a42f5dcfb523dc0cb956386705209e9a2f670027759900704880d2fa7b420def73db8801e9c71dfbf25734f3ca113d4e9ede004eeb4200e090f1a5f4f6841bdee7b71003d38e3bf7e4ae69e794227a9d3dbc009dd68401c121e34be9ed0837bdcf6e2007a71c77efc95cd3cf2844f53a7b78013bad08038243c697d3da106f7b9edc400f4e38efdf92b9a79e5089ea74f6f002775a1007048785f0cd3eee451f69354c811bf145a1a51e136260e3d5042df004eeb4300e090ef4a2c008a9f066fde76564b761f125c9e6eaea8197aa229bf009dd68701c121dd206a59c2146f6274b972bee43482e137899fac2ff545f77f013bad0f038243b940d4b38428dec4e972e57dc86905c26f133f585fea8beefe02775a1e070487720dbbbfb528200c8ab2912388c869acd8d2c10cbcd51981fd04eeb43d0e090ee31b777f6a504019156522471190d359b1a5821979aa3303fa09dd687a1c121dc636eefed4a080322aca448e2321a6b3634b0432f3546607f413bad0f438243b8c6dddfda94100645594891c46434d66c6960865e6a8cc0fe82775a1e87048771867ce53ff58634b62f5d860847cf8f587d85327ca5199c3d14eeb43d1e090ee2f5baf00ab8729197db876e900f050130a5ce8ab91a3352ba39dd687a4c121dc5d43705a03e4b4b5b33db3f9f9d6fe4e0f6613b320466bfb483bad0f4a8243b8b912f30cb49fcbee1e482e1beba45ac4197869c23d8cd99a91775a1e960487717125e619693f97dc3c905c37d748b58832f0d3847b19b33522eeb43d2c090ee2e24bcc32d27f2fb87920b86fae916b1065e1a708f633666a45dd687a58121dc5c423aabe51d4c1f3aa0e370755193448c66f906de966ce788cbad0f4b1243b8b8747557ca3a983e7541c6e0eaa3268918cdf20dbd2cd9cf11975a1e9624877170e1abd51f4296a516005a2454c5b2f4b146a8413a29b3b8633eb43d2c590ee2e1b357aa3e852d4a2c00b448a98b65e9628d508274536770c67d687a58b21dc5c366af547d0a5a94580168915316cbd2c51aa104e8a6cee18cfad0f4b1643b8b86c61fce84e21b50db7f9d8525acfd8809e0062f911d9ddd5a05a1e962d877170d7500c294919cc9e27c076ccad960f2936ad084e20b3bd4f41b43d2c5c0ee2e1ad2c2aab3f09fbbf074db3c153227c7a680652f83e677c4284687a58b91dc5c3595855567e13f77e0e9b6782a644f8f4d00ca5f07ccef88508d0f4b1723b8b86b23cbd05a8fe517ed503952d448050119ac58e3cf69df2ae12a1e962e577170d63058c63fed3058061d3f08280f6fe4b30375ed5ea3be7002643d2c5cbee2e1ac50b18c7fda60b00c3a7e10501edfc96606ebdabd477ce004c87a58b97dc5c358a16318ffb4c1601874fc20a03dbf92cc0dd7b57a8ef9c00990f4b172fb8b86b142c631ff6982c030e9f841407b7f25981baf6af51df3801321e962e5f7170d62858c63fed3058061d3f08280f6fe4b30375ed5ea3be7002643d2c5cbee2e1ac503d9ed88737128ef24ad67816d6278e01981d19447ce1a8c97a58b97ec5c3589f075009bb4487a09c62731825a2ad43fddc7c8e85f9c4f593f4b172fe8b86b13d0ea01376890f4138c4e6304b455a87fbb8f91d0bf389eb27e962e5fd170d627a1d4026ed121e827189cc60968ab50ff771f23a17e713d64fd2c5cbfa2e1ac4f43a804dda243d04e31398c12d156a1feee3e4742fce27ac9fa58b97f45c3589e80112f4611edc8c7df3f7aa52213267d8740b445c9c50fd404b172fe9b86b13cf0225e8c23db918fbe7ef54a44264cfb0e81688b938a1fa80962e5fd370d6279e044bd1847b7231f7cfdea94884c99f61d02d11727143f5012c5cbfa6e1ac4f3c0897a308f6e463ef9fbd529109933ec3a05a22e4e287ea0258b97f4dc3589e78112f4611edc8c7df3f7aa52213267d8740b445c9c50fd404b172fe9b86b13cf0225e8c23db918fbe7ef54a44264cfb0e81688b938a1fa80962e5fd370d6279e044bd1847b7231f7cfdea94884c99f61d02d11727143f5012c5cbfa6e1ac4f3c0158c893c44a8c1b1c89b51088f921434b1e48a4b288044268b97f4dd3589e77f2b191278895183639136a2111f24286963c914965100884d172fe9ba6b13cefe563224f112a306c7226d44223e4850d2c792292ca201109a2e5fd374d6279dfc3876a28efba8904611a0b03c72eec9a03b66ae564403c5355cbfa6eaac4f3bf770ed451df751208c23416078e5dd934076cd5cac88078a6ab97f4dd5589e77ee6dece2e8c504c3d01348e8e9c2194e7b99dd15561010b8d672fe9babb13cefdb67ec1e7e606c0a57f357f9cb7a90c4f1dffc86a9202315ade5fd37586279dfb55bea95a9973a9767b3761b8eeb7fb1de6c3b694f4047cf5ccbfa6eb1c4f3bf6943e7840004d7b18733b25f15cd5d8bb784b92e9b809142ba97f4dd6489e77ed113e160ace011e5c6342ae62391193f69b5b4b934012429762fe9baca13cefda127c2c159c023cb8c6855cc4722327ed36b697268024852ec5fd37594279dfb424f8582b380479718d0ab988e4464fda6d6d2e4d00490a5d8bfa6eb284f3bf6842b1d5e13d6f1b0e96e1d59147f28234859e8259d0922efb27f4dd6519e77ed07563abc27ade361d2dc3ab228fe504690b3d04b3a1245df64fe9baca33cefda0e3887d0fc3229465d853b8c49f2feb51c13e2f271248d62cafd37594779dfb41b710fa1f864528cbb0a771893e5fd6a3827c5e4e2491ac595fa6eb28ef3bf68366e319c9d9f079c2de1b4591fc258fc6afbce25c192372f2cf4dd651ee77ed06b687591e81471bb13902eda377b1020d0a3dea7802470025ae9baca3ecefda0d55cfd7c7cff45f8deed23dc66ec7e699bf3ffaafd48e1a8b6d375947e9dfb41a9460d51a6d4ee7475a70de0c5cf5afb329441b1f791c4f56ea6eb28fe3bf68351182cfbfa803f6ba31ae1e98395141e5fd4c5bfec238b8ede4dd651fd77ed06a13059f7f5007ed74635c3d3072a283cbfa98b7fd847171dbc9baca3faefda0d4260b3efea00fdae8c6b87a60e5450797f5316ffb08e2e3b79375947f5dfb41a844d7a3880d85ddfd0a3d574149eff1af952705b5e1c5e1af36eb28fecbf6835072706c9ae871e425914711021345c5ded512312b938bdd9e7dd651fda7ed06a0d4e0d935d0e3c84b228e2204268b8bbdaa2462572717bb3cfbaca3fb4fda0d41a282d7f66f2db8c1c1e8a687cc7cf9faff0cea6e1e2f90ba075947f6afb41a833505afecde5b718383d14d0f98f9f3f5fe19d4dc3c5f21740eb28fed5f68350662cc85648a1d0b32846efc9eb159ca6ba6f7cf7848be5d282d651fdaced06a0cb5990ac9143a166508ddf93d62b394d74def9ef0917cba505aca3fb59da0d41963f33b1cf5da54f58e8854fa44cd0c2e46a363a0f2f98ee0c5947f6b4b41a832b0a79bc4b91ad21699dd0c7408fffadc380aed01b5f338019b28fed6a6835065514f37897235a42d33ba18e811fff5b87015da036be670033651fdad4d06a0caa29e6f12e46b485a677431d023ffeb70e02bb406d7cce0066ca3fb5a9a0d4195453cde25c8d690b4cee863a047ffd6e1c057680daf99c00cd947f6b5341a832a833ae1d65f1349951a9d29c00f6590432b72f5db2f339a59c28fed6a78350654f675c3acbe26932a353a53801ecb208656e5ebb65e6734b3851fdad4f06a0ca9e5acace449b34e7fe741097fbcfc238c588ffd2c8cce83a71a3fb5a9f0d41953b41a7f5360ccc52b4b4e757ef95e29985be42018e99d218e447f6b53f1a832a750f624318effb28213694d7d722235b0628c65f1a33a5d5c98fed6a7f350654e91ec48631dff650426d29afae4446b60c518cbe34674bab931fdad4fe6a0ca9d23d890c63bfeca084da535f5c888d6c18a3197c68ce9757263fb5a9fcd41953a407247174563bc3c1816ce6b10779002bf27554ce9d30524d7f6b53faa832a7470e48e2e8ac77878302d9cd620ef20057e4eaa99d3a60a49afed6a7f550654e8e1c91c5d158ef0f0605b39ac41de400afc9d5533a74c14935fdad4feaa0ca9d1c39238ba2b1de1e0c0b6735883bc8015f93aaa674e982926bfb5a9fd541953a387247174563bc3c1816ce6b10779002bf27554ce9d30524d7f6b53faa832a747070a087379ddafae7fa62fe18e57e2d78faecf5d0a60bedb0ed6a7f560654e8df6d53671c12187887c18c2429c15a82eca21c479e4c197f62dad4fead0ca9d1bd66b926e4fa9373c74fde704b79132dd3f07aeb399834a2c6b5a9fd5b1953a3795984a676cb896a466c83088ee88483a28d383270306ae98e6b53fab732a746f13f1ba59a6d755744a5cc3915c7672f3fc6b2c0dd60d7771dd6a7f56f654e8de10a49a3e1b14d3141185e9a23852c867a39a7ddb7c1b0923cad4feadfca9d1bc1149347c3629a628230bd34470a590cf4734fbb6f836124795a9fd5bf953a378229268f86c534c504617a688e14b219e8e69f76df06c248f2b53fab7f2a746f04524d1f0d8a698a08c2f4d11c296433d1cd3eedbe0d8491e56a7f56fe54e8de0830ac96c7eb3596c952afca3049268f9e46c037791b0ac7cbd4feadfda9d1bc0f61592d8fd66b2d92a55f9460924d1f3c8d806ef236158f97a9fd5bfb53a3781e4ec4b3cc8338dddd178550b91af86673c74339e16c2cc33053fab7f7a746f03b299bc045dcd43e71fbd0c96a2c4ef4e23ac8cfbfd85b2a61a7f56ff04e8de0755337808bb9a87ce3f7a192d4589de9c475919f7fb0b654c34feadfe09d1bc0ea328159c449b37c7fbc094da0a799fb8397659afc616e4d879fd5bfc23a3781d36502b3889366f8ff78129b414f33f7072ecb35f8c2dc9b0f3fab7f84746f03a65617bfbdfd3074b6bceb5e7a94c6160909d8c7ee85bada1f7f56ff09e8de074b3841d828d0c36c25469ce4ed1fea540cbff3ebda0b77583ffeadfe14d1bc0e957083b051a186d84a8d39c9da3fd4a8197fe7d7b416eeb07ffd5bfc29a3781d2a6d19b9501970334ce739bbac7607782dac120b652ddf0500fab7f85446f03a536645cb4d0942e9519b399f50e26d1856046672c75bbfae02f56ff0a98de074a5589def46e8e8555b03396699bb3858a6b50f418bb7810006eadfe1541bc0e9493d4e373aa8332d6dd338f52b6cced9481660df146f03a40ed5bfc2a93781d29106aec72226c8dd937338124ecffbda8ad9041a25de08ec1eab7f85536f03a5210d5d8e444d91bb26e670249d9ff7b515b208344bbc11d83d56ff0aa6de074a421abb1c889b23764dcce0493b3fef6a2b641068977823b07aadfe154dbc0e9484357639113646ec9b99c092767fded456c820d12ef04760f55bfc2a9b781d29086aec72226c8dd937338124ecffbda8ad9041a25de08ec1eab7f85536f03a521061eb3cf1af7e352633c871d1f5d97955ccc5a0b8c11f27d66ff0aa6ee074a41f4fe8d290355eed0434570b9be2111aa645cd9d6e823ff3addfe154dec0e9483d2be3fdcd41205cc035743f2fba805d4737dd96da04818b5cbfc2a9be81d2907957c7fb9a8240b9806ae87e5f7500ba8e6fbb2db4090316b97f85537d03a520f23ba24fe1dae3f5b8a29724b6e05f9d178bb8b7651207d173ff0aa6fb074a41e30356f8708c2a6e2911f47165b71d6229c3b3cac7241146e8fe154df70e9483c506adf0e11854dc5223e8e2cb6e3ac4538767958e48228dd1fc2a9bee1d29078a0d5be1c230a9b8a447d1c596dc7588a70ecf2b1c90451ba3f85537dc3a520f141ab7c384615371488fa38b2db8eb114e1d9e5639208a3747f0aa6fb874a41e28356f8708c2a6e2911f47165b71d6229c3b3cac7241146e8fe154df70e9483c506adf0e11854dc5223e8e2cb6e3ac4538767958e48228dd1fc2a9bee1d29078a061d074cfe0fe0cfc49e28165bdb6b26b99350dc604535e4085537dc4a520f13f4fb3424c985e9cb0608b2ac371cb8cd1deac778908a860820aa6fb8a4a41e27d2b78dd46071fbc188ddc7d7ed9f5419e699b4b0f11526505154df7159483c4f956f1ba8c0e3f78311bb8fafdb3ea833cd336961e22a4ca0a2a9bee2b290789f239f5cdc4f2e1731a04381df35e332e7452af8839454b38155537dc57520f13e373eb9b89e5c2e63408703be6bc665ce8a55f10728a96702aaa6fb8aea41e27c673e98fc0a1e84f1fdda69fc56f2ae1cbf7007ce2152e845654df715e483c4f8b73e5782e1a3320f788136782d4b3eb929a4355c12a5eacada9bee2bd90789f1573dd49090ac8c4a6dcecf6fd9fc5ff1fe0c9077f54befd5c537dc57c20f13e2973cceabeebf40c0586a015f335ea263a6dd46afba97f9eb9a6fb8af941e27c5173ac2e2aae4a9ac2da0653de6232746f87eb31f45300e1744df715f383c4f8a1736ab50232f7b83d80d2cfb4bac310d9bc18bfe5a60366e99bee2be80789f14172e7c2b13c51f332ce6bc7616be449ae2473dbc84c0871d437dc57d10f13e28171e1de0f4f06691d699db6bace26bb56f52a138d981287a96fb8afa31e27c5016fd614cb746f54f2a001956d92ab9ea8969683183026b353df715f473c4f8a016bbe8243bf412c9d0cc952d31bb5654bd96f622d604f0aa8bee2be8f789f1401638f5d3454e4dbf1e658cd9e2dc8f2925f212057c09fb9527dc57d1ff13e280153311315802c3a9b9977c33451f00d1f6a849cac814116a5fb8afa40e27c500132747ed7d6baf7eeffb5ae609a3e4239814b95560283d14cf715f482c4f8a00164e8fdafad75efddff6b5cc1347c847302972aac0507a299ee2be90589f1400255e4540c314e6273cb9ce17a5f5730e0b170b1550a10e934dc57d20c13e2800337db00c538ff479f63ffeaecb50c89bc0f23bea71423766ab8afa41927c500056fb6018a71fe8f3ec7ffd5d96a1913781e477d4e2846ecd5715f48324f8a000a6b7e5bc1ba5fa1355cc5d3aaca904eeae8d15699508f7dabe2be90659f140013630f10304b21c5228651cf4d8b7ec5d07de5092fa1209f58c57d20cc3e2800255230790d6ca60cfcd969c6930d5bb39ba80c6e5c4242e2b28afa41997c50004930734ac7afae9cb17f99b51e11158f31fc5b38b58487696615f48333f8a0009160e6958f5f5d3962ff336a3c222b1e63f8b6716b090ed2cc2be90667f14001224ddf83cb951cf57dcb2cfc703ab464c29daf3ed3121f499957d20cd0e280024327d16044009c6db3632020d86bc6f17fe7a0d9a324403733afa419a2c50004854fa2c0880138db66c64041b0d78de2ffcf41b34648806e675f4833458a00090a2b57d9bcd8d439855946ab59a579edfa4ac5c289910280cfbe90668c1400121356afb379b1a8730ab28d56b34af3dbf4958b85132205019f7d20cd18280024263971bfa039b368cd31e0d55e8c45dfe3d7596623440ba73ffa419a315000484b72e37f407366d19a63c1aabd188bbfc7aeb2cc4688174e7ff4833462a000909671d9572dbd3025ec94497d722775a78a09a7f48a10304100e90668c64001212b6fc5070850c2ce90f55922dc4549770ebf92451120622602d20cd18d800242556b9c66bd77e81fd9b7786db080f116182b66e61f40c5f006a419a31c000484a9634b2627c632c26b3bb70358f840542b0310283b818d840e483346390009095152a8a4fc62c8078e44342ea9e6ded050b262ac74031cac1d90668c73001212a13163a2a59bf291d4552e854bc41bc89c1107b4e5063afc3c20cd18e70024254162c7454b37e523a8aa5d0a9788379138220f69ca0c75f878419a31ce00484a8251a0e343462cca0921803d2706cd4a6af0612f9118ed94f18334639d009095032f541f3362bc16ca0fc6a24603f8bcd08d04bb1f31dccde40668c73b01212a055ea83e66c5782d941f8d448c07f179a11a09763e63b99bc80cd18e760242540a4962d57a6152dde00be0b11006411b3ce0554879c774db9119a31ced0484a8131ed803a199083e77e4878a1802e05e746cececf08eeb5b23334639db090950253db0074332107cefc90f143005c0bce8d9d9d9e11dd6b646668c73b61212a04a077267333a837c975ee4505801dfa1cc5ff60fbf3baf108dcd18e76d242540930ee4ce667506f92ebdc8a0b003bf4398bfec1f7e775e211b9a31ceda484a81261dc99cccea0df25d7b914160077e87317fd83efceebc423734639db49095024c3b933999d41be4baf72282c00efd0e62ffb07df9dd78846e68c73b69212a04980338cbe07e9a4c2dbb0b2d78145844c0aba357f0baf2acddd18e76d34254092f067197c0fd34985b76165af028b089815746afe175e559bba31ceda684a8125e0ce32f81fa6930b6ec2cb5e051611302ae8d5fc2ebcab3774639db4d095024bc19c65f03f4d2616dd8596bc0a2c226055d1abf85d79566ee8c73b69a12a04978338cbe07e9a4c2dbb0b2d78145844c0aba357f0baf2acddd18e76d34254092f067197c0fd34985b76165af028b089815746afe175e559bba31ceda684a8125e05a4550cc7cf58e268f9185fd0c6f58259518582bbcacdb75639db4d195024bbf409cfa45d04d9f04ebe933f20f3cd845d6730c54795b5aebc73b69a42a04977d0d4c4d3876fdc0c1a4988fdc14d7d886592874a5f2b859d88e76d34954092ef91a989a70edfb818349311fb829afb10cb250e94be570b3b11ceda692a8125df2353134e1dbf7030692623f70535f621964a1d297cae1676239db4d255024bbe46a6269c3b7ee060d24c47ee0a6bec432c943a52f95c2cec473b69a4aa04977c860d72c34463e8ed2164f25b943dbb0603ec9a65c2b874189e76d34964092ef8f4dc0b11562dfa05bf964736a7e1588bb29d5a8b557102714ceda692d8125df1d2793bad79c21c36fbf8f0eccf2893970ffedad67ae21f22a9db4d25c024bbe394f2775af384386df7f1e1d99e51272e1ffdb5acf5c43e4553b69a4b804977c722a61440b46e99076cb02632bc0830dbeabf9119bb8896cab76d34971092ef8e354c288168dd320ed9604c65781061b7d57f223377112d956eda692e2125df1c6359768d9f208c492f8cfb4a6f86a5ef55c26a26be22756aedb4d25c524bbe38b6b2ed1b3e4118925f19f694df0d4bdeab84d44d7c44ead5db69a4b8a4977c716626ffc149e859503b004fa93d807a3d01cdce5ac889efebc6d34971592ef8e2b50f250d6136dacbf2cd01d1fa66d6f9ae5fc2756113fa179da692e2c25df1c552df6fa58fd3ddc362666623743390730783aaaa92280e6f4b4d25c594bbe38a95bedf4b1fa7bb86c4cccc46e86720e60f07555524501cde969a4b8b2977c715243ee4210cb59f390665fb0d5034244bc8d2d06a18a053fd3d34971662ef8e2a313eedcce6d1669d8998589a1fce2b173c69c6940140c23a8a692e2cd5df1c54527ddb99cda2cd3b1330b1343f9c562e78d38d280281847514d25c59abbe38a8a4fbb7339b459a76266162687f38ac5cf1a71a50050308ea29a4b8b3577c715142b893f203f15d17c98f27507dd73b398e125a5fda062c1463497166bef8e2a2757127e407e2ba2f931e4ea0fbae76731c24b4bfb40c5828c692e2cd7df1c544e3a37552dd2b9c8aa308ffc176c2cf65e30d8f3f3818ca919d25c59b0be38a89b008103087bd6140c2de62026ceb814b70df443e4031af634a4b8b3627c71513501020610f7ac28185bcc404d9d70296e1be887c80635ec69497166c4f8e2a26a02040c21ef585030b798809b3ae052dc37d10f900c6bd8d292e2cd89f1c544d404081843deb0a0616f31013675c0a5b86fa21f2018d7b1a525c59b13e38a89a808103087bd6140c2de62026ceb814b70df443e4031af634a4b8b3627c71513501020610f7ac28185bcc404d9d70296e1be887c80635ec69497166c4f8e2a26a02040c21ef585030b798809b3ae052dc37d10f900c6bd8d292e2cd89f1c544d404081843deb0a0616f31013675c0a5b86fa21f2018d7b1a525c59b13e38a89a800d156128ac768ee5b2e64ec6ae72df08a08640001af7d8a5b8b3627d715134ff1a2ac25158ed1dcb65cc9d8d5ce5be11410c800035efb14b7166c4fae2a269fe345584a2b1da3b96cb993b1ab9cb7c22821900006bdf6296e2cd89f5c544d3fc68ab094563b4772d973276357396f84504320000d7bec52dc59b13eb8a89a7f85d686b379dcb7112fb2b1462dd8c1884b4a65bfeaf7f2e5c8b3627d815134fef46e32f1c11f964ddc31c50bdb1765904158f13fa5f0000ba166c4fb12a269fdd19d8b6e4fa554c7352fec973594ada02d76083f1be01a5752cd89f63544d3fb933b16dc9f4aa98e6a5fd92e6b295b405aec107e37c034aea59b13ec6a89a7f726762db93e95531cd4bfb25cd652b680b5d820fc6f80695d4b3627d8d5134fee45ad80fd4a90ce65264bc7392c0b4f81167467b8af00ecfaa66c4fb1ba269fdc741c27856287c4f5c963f0f1d77c8181d7acf5312e01f4355cd89f63844d3fb8d0f974959275b2170f9444632e5ee5835a1e10222c0402aac9b13ec7189a7f7191f2e92b24eb642e1f2888c65cbdcb06b43c20445808055593627d8e3134fee323e5d25649d6c85c3e51118cb97b960d68784088b0100aab26c4fb1c6269fdc6408cca376113b8e3f96e8598f25d0e9a7bb4a6d130202f965d89f638d4d3fb8c7119946ec22771c7f2dd0b31e4ba1d34f7694da260405f2cbb13ec71a9a7f718e23328dd844ee38fe5ba1663c9743a69eed29b44c080be597627d8e3534fee31c46651bb089dc71fcb742cc792e874d3dda5368981017cb2ec4fb1c6a69fdc63818dc900dea1b66b13b4bc0ea536cc27660e92d2d20313a5e89f638d5d3fb8c6f31b9201bd436cd62769781d4a6d984ecc1d25a5a406274bd13ec71aba7f718de63724037a86d9ac4ed2f03a94db309d983a4b4b480c4e97a27d8e3574fee31bc52f6d91c273db841a7242f4a91c43badb38bc566018b76f54fb1c6af9fdc637732000ae524ddf33b1b0e868d19e69f561359e6c9031891eb9f638d603fb8c6ed640015ca49bbe676361d0d1a33cd3eac26b3cd92063123d73ec71ac07f718dda5412844169da4fa43900422c5df8a552f9a9f7210c63ebaf7d8e3581fee31bb33437612faa1722003ec6ac50b24f72a09f964a3f18c97b5ffb1c6b04fdc63765686ec25f542e44007d8d58a1649ee5413f2c947e3192f6bff638d609fb8c6eca5cefdd6b7ebf0ab8c7e0d93abf9bf27d2a9b84f963279180ec71ac14f718dd9345f21383d3e098295c87da6d75960cf5017965efc650c702d8e3582aee31bb2517f67fb47e23b30a85d5dcd2e18a41e4af3527dc8ca33206b1c6b056dc6376492fecff68fc4766150babb9a5c31483c95e6a4fb91946640d638d60adb8c6ec925fd9fed1f88ecc2a1757734b86290792bcd49f72328cc81ac71ac15b718dd9244bc65650c7801b0bfb750e8f02b0372025eb9ae1651b34368e3582b7e31bb247239f054e6562b8cfc3b04515fbbe963af81991bfca380c6e1c6b0570c637648d473e0a9ccac5719f87608a2bf77d2c75f033237f947018dc38d60ae18c6ec91a1a8e6de66bed65f6db873c4fe55880e68ca8a2fc28e1d5b971ac15c418dd9233351cdbccd7dacbedb70e789fcab101cd195145f851c3ab72e3582b8831bb24666a39b799afb597db6e1cf13f9562039a32a28bf0a38756e5c6b05710637648cc6085c7e035cdb26ea9000a7721222f2f118773de471051cc8d60ae21c6ec91974d1de86d41fde7951ec63ce638a28658cf5143b98e22479a1ac15c448dd9232d264e29875a5e51e20a52a1c467a334ac4ae4e3701c4633353582b88a1bb246594c9c530eb4bca3c414a54388cf46695895c9c6e0388c666a6b05711437648cb2254afeca3fdbca3ff610af0994eafaabd7d5e9bd711a70d5d60ae2296ec919634a95fd947fb7947fec215e1329d5f557afabd37ae234e1abac15c452dd9232c6213e53d5d5d1abb7a508e41e4a0a12aa0b9a02f2c46b6758582b88a6bb24658b427ca7ababa3576f4a11c83c94142554173405e588d6ceb0b057114d7648cb16110ba8042da9319660e9b8711e8672a2daaa67c811af416260ae229bec91962b221750085b52632cc1d370e23d0ce545b554cf90235e82c4c15c4537d9232c56442ea010b6a4c65983a6e1c47a19ca8b6aa99f2046bd058982b88a6fb24658ac146f98ce43ac0f6ad413eb80ea91bd1181959a3d8d7baf14057114e0648cb15728df319c87581ed5a827d701d5237a23032b347b1af75e280ae229c0c91962ae51be63390eb03dab504fae03aa46f446065668f635eebc5015c453819232c55c2f8f1f1ef3c2fe0e6d6583ff4aec1086b8ef2de96bdf1ca12b88a70424658ab75f1e3e3de785fc1cdacb07fe95d8210d71de5bd2d7be394257114e0848cb156e4a4ed528a56e7af1825c37f5220e6a158fff13a2af7e1685ae229c1191962adb20b002fe213f789ad17e97e23a7afc25cc4083425efdd10c5c453824232c55b5416005fc427ef135a2fd2fc474f5f84b98810684bdfba218b88a70484658ab6a0ed264a55b60652312c08780e04a1891dd4469067bf8e8327114e0918cb156d31da4c94ab6c0ca4625810f01c0943123ba88d20cf7f1d064e229c1231962ada63b4992956d81948c4b021e03812862477511a419efe3a0c9c453824632c55b4c02a57dd7b165abd062ca63fef8aeec899665a430dfc8e59488a7048d658ab697054afbaf62cb57a0c594c7fdf15dd9132ccb4861bf91cb29114e091acb156d2e0a95f75ec596af418b298ffbe2bbb226599690c37f239652229c1235962ada5c152beebd8b2d5e8316531ff7c577644cb32d2186fe472ca44538246b2c55b4b82a57dd7b165abd062ca63fef8aeec899665a430dfc8e59488a7048d658ab697054afbaf62cb57a0c594c7fdf15dd9132ccb4861bf91cb29114e091acb156d2e03571ce992fcd76d07f5f27b622194a6045ab6834f23b092329c1235a62ada5bf6ae39d325f9aeda0febe4f6c443294c08b56d069e4761246538246b4c55b4b7e61d9931195985df9ca42c6d07ec3517bc2effcd0c8edc88da7048d6a8ab696fb4fc57ed001933eab614bb598f3e4caf23222559e91dd351c4e091ad6156d2df52b9d564cd989000e8f5d9329de27bddf1087073a23bc0e399c1235ad2ada5be9573aac99b312001d1ebb2653bc4f7bbe210e0e7447781c7338246b5a55b4b7d23a87b1e03c8682f20a3c749f6efd1f76ee5e78e58ef1dce77048d6b5ab696fa30121bc6d4f6f889be13f1136d45866e888ff4dc81de55dcfe091ad6c56d2df45024378da9edf1137c27e226da8b0cdd111fe9b903bcabb9fc1235ad8ada5be8a0486f1b53dbe226f84fc44db51619ba223fd37207795773f8246b5b15b4b7d14090de36a7b7c44df09f889b6a2c3374447fa6e40ef2aee7f048d6b62b696fa28121bc6d4f6f889be13f1136d45866e888ff4dc81de55dcfe091ad6c56d2df45024378da9edf1137c27e226da8b0cdd111fe9b903bcabb9fc1235ad8ada5be8a0486f1b53dbe226f84fc44db51619ba223fd37207795773f8246b5b15b4b7d1401cf08f548e26d0a86c4ec36222919c3f2be9400bf2b08bf148d6b62c696fa27f39e11ea91c4da150d89d86c44523387e57d28017e56117e291ad6c58d2df44fe73c23d52389b42a1b13b0d888a4670fcafa5002fcac22fc5235ad8b1a5be89fc7396d351479907fb2f3c43090aeb09f40b8c5c5c9586038b46b5b1644b7d13f7733fff4f659492ae2b3eae0a0c343be2c35b14b62b0dab178d6b62c996fa27ed7292574ba18ba8142343840c0ec69fc032f88569561cfa301ad6c5942df44fd9713707441979d2e0134d301013eb677b123366cfac3b986135ad8b295be89fb16e80673509562877f36088181e34f6f0d0a9299c5878d4c36b5b1653b7d13f6169132716e90ed3a7b387382832c815dc4d94af35b0f34d87d6b62ca86fa27ec15e38a6daa8802a0733d498485bee53b3476bba6861e83f10ad6c5951df44fd814883a6622762d6c6346f5888ae3acf613b19d0cdc3d222225ad8b2a4be89fb011d19a5712528304435a4d90952d3c6bd2275fd9887a5e845b5b1654a7d13f6013a334ae24a5060886b49b212a5a78d7a44ebfb310f4bd08b6b62ca94fa27ec020078ee716b0343c8a3598c1d41ad42ef361a525f1e994517d6c5952af44fd80300f1dce2d606879146b3183a835a85de6c34a4be3d328a2fad8b2a55e89fb00601e3b9c5ac0d0f228d66307506b50bbcd869497c7a65145f5b1654abd13f600c03c7738b581a1e451acc60ea0d6a1779b0d292f8f4ca28beb62ca957a27ec018078ee716b0343c8a3598c1d41ad42ef361a525f1e994517d6c5952af44fd80300f1dce2d606879146b3183a835a85de6c34a4be3d328a2fad8b2a55e89fb00601e3b9c5ac0d0f228d66307506b50bbcd869497c7a65145f5b1654abd13f600c03c7738b581a1e451acc60ea0d6a1779b0d292f8f4ca28beb62ca957a27ec01800500ca17d9a64b5b26524539a3a11730c694bb1b9946bbd7c5952af54fd802ff0a01942fb34c96b64ca48a7347422e618d297637328d77af8b2a55ea9fb005fe1403285f66992d6c994914e68e845cc31a52ec6e651aef5f1654abd53f600bfc280650becd325ad9329229cd1d08b98634a5d8dcca35debe2ca957aa7ec017f8500ca17d9a64b5b26524539a3a11730c694bb1b9946bbd7c5952af54fd802ff02c2b9ba80b2bee1c970ecf2c6a810e137ed9bf7028d91ef9b2a55eaafb005fdf585737501657dc392e1d9e58d5021c26fdb37ee051b23df3654abd55f600bfbe3cc0c74d03123b2a290164a9a0626048a7a959bda3661fe7ca957aacec017f7b0593e746dc86f90c1ec8f14b3722e88bfb950f7846cde3d0952af55ad802fef50b27ce8db90df2183d91e2966e45d117f72a1ef08d9bc7a12a55eab5b005fdea164f9d1b721be4307b23c52cdc8ba22fee543de11b378f4254abd56b600bfbd42c9f3a36e437c860f6478a59b917445fdca87bc2366f1e84a957aad6c017f7a8593e746dc86f90c1ec8f14b3722e88bfb950f7846cde3d0952af55ad802fef503e8f41886741a43ba5e4515edabb397a1ee44b05d9be1e13a55eab5c005fde9f0930dbbda4e5cb2f188ecab5abd49aeeea0af208b37de0284abd56b900bfbd3d1261b77b49cb965e311d956b57a935ddd415e41166fbc050957aad72017f7a7a24c36ef693972cbc623b2ad6af526bbba82bc822cdf780a12af55ae402fef4f44986dded272e5978c47655ad5ea4d777505790459bef014255eab5c805fde9e81f20148724bf35a955b2d352b3a7d6e94cf17c8837dfa685abd56b910bfbd3cf3e40290e497e6b52ab65a6a5674fadd299e2f9106fbf4d0b57aad72217f7a79e0892aac9695f595d23917542c4fd839fe0084e1ddf803e17af55ae452fef4f3b11255592d2beb2ba4722ea8589fb073fc0109c3bbf007c2f5eab5c8a5fde9e76224aab25a57d65748e45d50b13f60e7f802138777e00f85ebd56b914bfbd3cec4495564b4afacae91c8baa1627ec1cff004270eefc01f0bd7aad72297f7a79d8153d05436c58188a05dd7c24463661f8acc73ddaf805857bf55ae453fef4f3af2a7a0a86d8b031140bbaf8488c6cc3f1598e7bb5f00b0af7eab5c8a7fde9e75e54f4150db16062281775f09118d987e2b31cf76be01615efd56b914ffbd3cebc35fa82c839234707fbb2091a281137c0127c4ad4c02dcfe0aad722a0f7a79d776bf5059072468e0ff764123450226f8024f895a9805b9fc155ae4541ef4f3aee63fc63cdbaef9ed7bb8e4c6096a306faf633875000b8e383ab5c8a84de9e75db540b20484c41c06743e2c0b923a435f098a96a9d01736b0856b9150abd3cebb53428993d6ee60386548ba96a3da693dbdd95313702e87a11ad722a167a79d7696851327addcc070ca91752d47b4d27b7bb2a626e05d0f4235ae4542cf4f3aed25cb4bda291fa90d11ef4cda0ecf8776a229720d90ba38c47b5c8a85ae9e75da3457bd3f1fa57a45a0aafc339d04f16cef1709daf1748bc906b9150b6d3cebb45170a0090cb11cb6be225ae6b96fc55988f23975b2e931d21d722a16ea79d76892e140121962396d7c44b5cd72df8ab311e472eb65d263a43ae4542dd4f3aed125c2802432c472daf8896b9ae5bf156623c8e5d6cba4c74875c8a85ba9e75da2444625d332ef0de16ddf39b54ae40d4bf255f16d6749a8d0fb9150b763cebb44714d7131334443ee588ad5ea152dfd178f70089a9e936be20722a16ed79d7688d29ae262668887dcb115abd42a5bfa2f1ee011353d26d7c40e4542ddaf3aed11a535c4c4cd110fb9622b57a854b7f45e3dc0226a7a4daf881c8a85bb5e75da23432caf146788479e412311d028d5cb3c26446a94c49b795049150b76ccebb44676595e28cf108f3c824623a051ab96784c88d5298936f2a0922a16ed99d7688ce573e1dc6b8746a48158a9c022bd0f7043d5d012e26dff8134542ddb43aed119b3a8e943a474b5747f7db5ffc4e00160326fc5e594dc194278a85bb6975da2335012f812164f93147bc7ce7f0925e5400fa3b18af9b84cc50150b76d3ebb44669025f0242c9f2628f78f9cfe124bca801f476315f370998a02a16eda7d7688cd204be048593e4c51ef1f39fc249795003e8ec62be6e133140542ddb4faed119a4097c090b27c98a3de3e73f8492f2a007d1d8c57cdc266280a85bb69f5da2334812f812164f93147bc7ce7f0925e5400fa3b18af9b84cc50150b76d3ebb44669025f0242c9f2628f78f9cfe124bca801f476315f370998a02a16eda7d7688cd204be048593e4c51ef1f39fc249795003e8ec62be6e133140542ddb4faed119a4023d2e95f52fb26960b3a204125882877c9ceb3cac267cc0b85bb69f6da23347f47a5d2bea5f64d2c167440824b1050ef939d679584cf98170b76d3edb44668fe1b5dfe2a224f1d0ff9aea8fc8c7ec9d9d37d2b2809a0d42f16eda7dc688cd1fb36bbfc54449e3a1ff35d51f918fd93b3a6fa56501341a85e2ddb4fb8d119a3f66d77f8a8893c743fe6baa3f231fb27674df4aca0268350bc5bb69f71a23347ec670249fde8db6b379a3b6fdc5a5476c9482bb53d4d084579b76d3ee444668fd75a16eca8a8195927013d07b0ab07158d3c99c6779a122ef46eda7dc988cd1fad404031fe26953505cf4037594c6c53152575e8ec342601e9ddb4fb94119a3f590c92bca9238cecc36b4696aa8f36ce24f72e2dd5684da7d4bb69f72923347eb1192579524719d986d68d2d551e6d9c49ee5c5baad09b4fa976d3ee524668fd62324af2a48e33b30dad1a5aaa3cdb3893dcb8b755a1369f52eda7dca48cd1fac46495e5491c67661b5a34b55479b67127b9716eab426d3ea5db4fb94919a3f588553e233f0f314eee812f92a0e9cb0a4a1f25395384dc214cb69f72933347eb0f368e9f2af4c52094cf254d39c9f43c8eea8ccea409b9e69a6d3ee527668fd61d6d1d3e55e98a41299e4a9a7393e8791dd5199d481373cd34da7dca4ecd1fac3a664cd558a977050b095b5cdf1e2f1a365675968d26e93e6ab4fb949e9a3f587358ac035e29508ccddf7ce1b632bc5c67592d89174dd420d669f7293e347eb0e53d6a5f6929039c538bbfeb645bd6e0c95e9d6e2b9ba9e5add3ee527d68fd61c906e7177f2869bb5ee445fec0ae0be98d697d385437556f5ca7dca4fbd1fac3910dce2efe50d376bdc88bfd815c17d31ad2fa70a86eaadeb94fb949f7a3f587221b9c5dfca1a6ed7b9117fb02b82fa635a5f4e150dd55bd729f7293ef47eb0e443738bbf9434ddaf7222ff605705f4c6b4be9c2a1baab7ae53ee527de8fd61c886e7177f2869bb5ee445fec0ae0be98d697d385437556f5ca7dca4fbd1fac391068f54891e399ee945586000db7db59a7dbe96683eaaf8f95fb949f7b3f58721f5dfce9d09d965fe077d228136614db4a64152904d560c32cf7293ef77eb0e43d480c2c4e118f4278bc6a781ec287de8f746cae06aac32a5aee527deffd61c8791c2ab148f98107a9459b18357b6de519951bb80a5587f8b6dca4fbe0fac390f138556291f3020f528b36306af6dbca332a377014ab0ff16db949f7c1f58721e270aac523e6041ea5166c60d5edb79466546ee029561fe2db7293ef83eb0e43c46d67e2f4a26ac001f99ee9a3d1cd50c755201c4fac4169b7e527df08d61c878766e21e961b3802bbc003fb3f99f8c9895682949c58847770ca4fbe12ac390f0d59d695d90cd2882f4cce1e772a4fbb0d59478535b10a92e2949f7c2658721e193fbf845ef0079316666264e64afd9e155ed166686216c9c6293ef84db0e43c310b91616ab671a8e4998af1c48c59642569e528cdc42f378d527df09c61c878611722c2d56ce351c93315e38918b2c84ad3ca519b885e6f1aa4fbe138c390f0c22e4585aad9c6a392662bc71231659095a794a33710bcde3549f7c2718721e1845c8b0b55b38d4724cc578e2462cb212b4f29466e2179bc6a93ef84e30e43c30845286f583d7d110165754440bbf46a514a94e8d942f51cd627df09c71c87860f1663375d515ca4ba97b0b0796e46fc9d416c2daf85ebddad4fbe138f390f0c1d2cc66ebaa2b949752f6160f2dc8df93a82d85b5f0bd7bb5a9f7c271e721e183a598cdd75457292ea5ec2c1e5b91bf27505b0b6be17af76b53ef84e3ce43c30743f2c13976147a88c8a4babc368960ce4b7a3c9792f60916b7df09c7ac87860e70a6a7fdb98f1d3d0e15d7f7ec78a41c41b89eeef5ec2c6d7fbe138f690f0c1cd14d4ffb731e3a7a1c2bafefd8f1483883713dddebd858daff7c271ed21e1839a29a9ff6e63c74f438575fdfb1e2907106e27bbbd7b0b1b5fef84e3da43c307345353fedcc78e9e870aebfbf63c520e20dc4f777af61636bfdf09c7b487860e6832ba5666657fbfc5e29e1fe46f02443c64e14af2ec2e1180be138f6a0f0c1ccf6574accccaff7f8bc53c3fc8de048878c9c295e5d85c23017c271ed41e18399e56fbb2466c6181cf573ea789b26738ec3fc787c8b0b9ea03f84e3da93c30733b3a09bd39af2586567b43770b5b2c99d32bd16b8e61757808f09c7b537860e6750025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200974c80d2b63d930d34583ab2dd6e840f94cc670bb2504b84e3da9fc30733a4012e9901a56c7b261a68b07565badd081f2998ce1764a09709c7b53f860e6748025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200974c80d2b63d930d34583ab2dd6e840f94cc670bb2504b84e3da9fc30733a4012e9901a56c7b261a68b07565badd081f2998ce1764a09709c7b53f860e6748025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200235ed97f8ca015c5011e62aad3ccac0a410ec308b251ef85e3da9fc40733a3ff46bdb2ff19402b8a023cc555a7995814821d861164a3df0bc7b53f880e6747fe198dbeab08e2d9cbd13fb2a34590d823b07d681fc94962188f6a7f111cce8ffb331b7d5611c5b397a27f65468b21b04760fad03f9292c4311ed4fe22399d1ff66636faac238b672f44feca8d1643608ec1f5a07f252588623da9fc44733a3fec58804e051d79511656c3bd1222e4e918302d9cfb4a4cb4c57b53f889e6747fd73d12f4b7115524e47a4da21c3c27fa2b0c9d95f3949b0d8bf6a7f114cce8ffad0638421af90ccc80c1616c306eae1c50c57d87e42937bf18ed4fe22a99d1ff590c708435f219990182c2d860dd5c38a18afb0fc8526f7e31da9fc45533a3feb218e1086be43332030585b0c1bab8714315f61f90a4defc63b53f88aa6747fd6431c210d7c86664060b0b61837570e2862bec3f2149bdf8c76a7f1154ce8ffac8638421af90ccc80c1616c306eae1c50c57d87e42937bf18ed4fe22a99d1ff590531a9c0bf7fc12cff8f3ae05cc21b2135bf3588226f9871ea9fc45543a3feb1f324790c4c65aa857bead84038ea18c2164290d014df4b23e53f88aa9747fd63d648f21898cb550af7d5b08071d431842c8521a029be9647ca7f11552e8ffac7a55309bbfefcd2416c77c380630e458803ce6900237d46cfa4fe22aa6d1ff58f33673902cb5fccae55bbe98045826d8fb260f7c016faa7df59fc4554ea3feb1e56ce720596bf995cab77d3008b04db1f64c1ef802df54fbeb3f88aa9d47fd63ca65e0995fae55ae4d3bc0880956f98be744804c02beab9bd77f11553b8ffac79357d38b6c330ddf524447380aa4513fc93542f4027d58dbaffe22aa781ff58f253bb96f853c7e415c5554980d3f00a78d16c84401fab35b60fc4554f13feb1e49038537b74f5f0570776f5812745f7714d9d2e400f5685ac2f88aa9e37fd63c91070a6f6e9ebe0ae0eedeb024e8beee29b3a5c801ead0b585f11553c6ffac79220e14dedd3d7c15c1ddbd6049d17ddc53674b9003d5a16b0be22aa78dff58f2441c29bdba7af82b83bb7ac093a2fbb8a6ce972007ab42d617c4554f1bfeb1e48838537b74f5f0570776f5812745f7714d9d2e400f5685ac2f88aa9e37fd63c91070a6f6e9ebe0ae0eedeb024e8beee29b3a5c801ead0b585f11553c6ffac792206d604680ae23ded5a89c2c950e3bed3120fb5c3a5a1854bf22aa78e0f58f243f66d2e5ae32aa40631dfe812212d6025cee391471b4324d7f4554f1c2eb1e487d59b824093bb7037e08c32a3c1c0a2cb488b484e068663eff8aa9e386d63c90f93f82a0bf4dd089b3de4c7c702e728163bdab65bdd0ce22001553c70eac7921f10b179a2b7203961f895f20d853432ac227992778a19de8012aa78e1e58f243e1162f3456e4072c3f12be41b0a68655844f324ef1433bd002554f1c3cb1e487c22c5e68adc80e587e257c83614d0cab089e649de28677a004aa9e387963c90f8458bcd15b901cb0fc4af906c29a1956113cc93bc50cef4009553c70f2c7921f083d8bfb63f69be4b062b8357d2a90d41d25d4d38719e02413aa78e1e68f243e0f072a4f74c39a4c18923692f24b7fd034f7ec030b33c1ec2854f1c3ce1e487c1d0e549ee987349831246d25e496ffa069efd806166783d850a9e3879c3c90f83a1ca93dd30e69306248da4bc92dff40d3dfb00c2ccf07b0a153c70f387921f07439527ba61cd260c491b497925bfe81a7bf6018599e0f6142a78e1e70f243e0e872a4f74c39a4c18923692f24b7fd034f7ec030b33c1ec2854f1c3ce1e487c1d0715c474549ac05ca1398864166582e99a9c2bd63783f290b9e3879c4c90f839f6ecae73769ba8e4bf3f7347ac30e852dffc7d6c3f07ff6183c70f38a921f073d69a8271ba9d79f4fb4b490ed7c7b3256abd20984e101903178e1e716243e0e795f62a6e42a11c157362f49d2ef548ca803e66f06c204c463f1c3ce2d487c1cf14ad7a6752a8605663924bb9dd507414ab40f3a0a840b2cc8e3879c5b90f839e121c1a5972b6e8d843f0f9f33a06caa901460d0120817fd92c70f38b821f073c143834b2e56dd1b087e1f3e6740d9552028c1a024102ffb258e1e717043e0e7821318ef09841cb8c8c904a4c67810d23afdc59c4520619a4c1c3ce2e187c1cf032631de13083971919209498cf021a475fb8b388a40c334983879c5c30f839e064c63bc261072e32324129319e04348ebf71671148186693070f38b861f073c0c24d9d0f8f74848fe14eb4e2bb6e4b9d29a6f3e26030e7661e1e7170d3e0e781749b3a1f1ee9091fc29d69c576dc973a534de7c4c061cecc3c3ce2e1a7c1cf02e1f799c90b383a6b0207360a6d1f10f4515ff54950c3b7d88879c5c35f839e05b3ef3392167074d6040e6c14da3e21e8a2bfea92a1876fb110f38b86bf073c0b609f8caefa4711d784e93aa933e22650f043fae5130ef9a231e7170d8e0e7816b13f195df48e23af09d2755267c44ca1e087f5ca261df34463ce2e1b1c1cf02d627e32bbe91c475e13a4eaa4cf889943c10feb944c3be688c79c5c363839e05ac4fc6577d2388ebc2749d5499f113287821fd7289877cd118f38b86c7073c0b582b9f07a71d745a3cb600d12bd88478eaf03d41100efb4632e7170d8f0e7816af573e0f4e3ae8b4796c01a257b108f1d5e07a82201df68c65ce2e1b1e1cf02d5e3a8e77494c33ebaaa4c96ca758700ba66d37603d3beebccc9c5c363d39e05abb012f473f6eca5a0d16590146a73e3f4786b11c7777df1d9a38b86c7b73c0b575025e8e7edd94b41a2cb2028d4e7c7e8f0d6238eeefbe3b347170d8f6e7816aea04bd1cfdbb2968345964051a9cf8fd1e1ac471dddf7c7668e2e1b1edcf02d5d4097a39fb7652d068b2c80a3539f1fa3c3588e3bbbef8ecd1c5c363db9e05aba812f473f6eca5a0d16590146a73e3f4786b11c7777df1d9a38b86c7b73c0b575025e8e7edd94b41a2cb2028d4e7c7e8f0d6238eeefbe3b347170d8f6e7816aea04bd1cfdbb2968345964051a9cf8fd1e1ac471dddf7c7668e2e1b1edcf02d5d4023b5f8643b8f8942f946cb4b957dcbbe04d097b8ef90711d5c363dbae05aba7f476bf0c8771f1285f28d96972afb977c09a12f71df20e23ab86c7b75c0b574fe1aea3a3dc4a0a7c3b1e155264c5556f2bf84bae0be43687670d8f6ec816ae9fb35d4747b89414f8763c2aa4c98aaade57f0975c17c86d0ece1b1edd902d5d3f66ba8e8f712829f0ec785549931555bcafe12eb82f90da1d9c363dbb205aba7ec63642a9afb67c0d55bd0d12a5908df90a8683302f21ce7b486c7b7650b574fd752daade2cd3204628467ca4ca86fe71bfd12c202e43b736a0d8f6ecb16ae9fad31c7b47270c68b7cd595bc91473df632a667e002c8788ad51b1edd972d5d3f59638f68e4e18d16f9ab2b79228e7bec654ccfc00590f115aa363dbb2e5aba7eb253312a76997cb0ab231d1a3d135600c545e1dc0821e3cf556c7b765db574fd633274ad9a095be40e13005c721d0a29853806140d43c942abd8f6ecbc6ae9fac564e95b3412b7c81c2600b8e43a14530a700c281a87928557b1edd978d5d3f58a55e50f14fbd212f018c799c06a86ce0f8c5aac320f26aeb063dbb2f2aba7eb1337dc76d6ce06a897fe555b78cb6bc419c4f7b4611e4f0161c7b765e6574fd6256fb8edad9c0d512ffcaab6f196d7883389ef68c23c9e02c38f6ecbccae9fac4a6b8434080e7d2517c61b95db240d3861c0212d81793da9881edd979a5d3f5893631ac0bcf35ccce758fd53ae3e7898be2c84b6fff27cf7113dbb2f35ba7eb1255247da26bd1c1c867ec0cf54734f5977054bc9fce4fb92237b765e6c74fd624930a20cfa509abbc4ca47c6a0dcfcdae8b6d9eff6c9f8c847f6ecbcd9e9fac491614419f4a1357789948f8d41b9f9b5d16db3dfed93f1908fedd979b3d3f589224e9a8c9618cd71caf5e5427b6a51939d87aa1bd827e4c520dbb2f368a7eb1243294771d907fd664db890aceecb014f35bb9693ad4fcb2e42b765e6d24fd62485528ee3b20ffacc9b712159dd96029e6b772d275a9f965c856ecbcda49fac490a31302010f6581beeaf08dbb3226364d19a9caab23f2e5d0bdd979b4a3f58921362604021ecb037dd5e11b76644c6c9a3353955647e5cba17bb2f36947eb1242650d2d8f0afc2f27288e996c47febbb4116b506c5fcbb1830765e6d29fd62484b2db80a8e35e8679cde995580f6359e7cd9ac6988f977d461ecbcda54fac490955b70151c6bd0cf39bd32ab01ec6b3cf9b358d311f2efa8c3d979b4a9f589212a42f282e5ae04212b472b7dfbcf34a1ee12f40220e5e0f588b2f36954eb12425311f75e78326ac50e5b1d23ef94c76bd6d22a603ecbc38f1265e6d2aad62484a523eebcf064d58a1cb63a47df298ed7ada454c07d97871e24cbcda555ac49094a47dd79e0c9ab14396c748fbe531daf5b48a980fb2f0e3c49979b4aab589212941bcd4c6e69b8ab2aa5af47749c9986b13d955df35e1e1c942f369557b1242527379a98dcd37156554b5e8ee939330d627b2abbe6bc3c39285e6d2aaf62484a4e6f3531b9a6e2acaa96bd1dd272661ac4f65577cd78787250bcda555ec490949c6a7cbc202427dc0cfa40639cdb2a5d8498ed4b97f0f288a279b4aabe89212937610bd0ed1eb23ad1c146ef31acb2e303de1cf32ce1e6b545f369557e1242526d4e29fa8713c6f85b4f54065b4fc3ee02687c4256c3cf0e8ce6d2aafd2484a4d928664dbafdf0736e6b6e34ae95e603ff7d3ae0aa879fc11acda555fb490949b150cc9b75fbe0e6dcd6dc695d2bcc07fefa75c1550f3f82359b4aabf6921293622dab8f98ce2450717a7efab24df637f8a12ddea71e80a86c369557ee242526c35b571f319c48a0e2f4fdf5649bec6ff1425bbd4e3d0150d86d2aafdc484a4d8642c097100ef3c47db6c212c12e3707dd30f9d6997a0445b1da555fb990949b0b119386ccf44a0bb33a4a4d7a52cc37b50e36092ff40a2f64b4aabf742129361523270d99e894176674949af4a5986f6a1c6c125fe8145ec969557ee842526c2a464e1b33d1282ecce92935e94b30ded438d824bfd028bd92d2aafdd084a4d85418ae8f1478b2e0519f1893ca8cbfe5a31df2a57ca0531f26a555fba20949b0a7315d1e28f165c0a33e312795197fcb463be54af940a63e4d4aabf7441293614e62ba3c51e2cb81467c624f2a32ff968c77ca95f2814c7c9a9557ee882526c29c5186d1509bf98544c58ac64c5c5d55139bd787e2029a9d362aafdd114a4d85372f1ffb4e0e558d4157dbb490af18d221e3f16bc10536de6d555fba23949b0a6d5e3ff69c1cab1a82afb769215e31a443c7e2d7820a6dbcdaaabf7447293614da489245e50fb8b7bd2c34fa3ab2c170823c080b0114dd1db6557ee88f526c29b31d36e476f5d3f23225301c6d5be108ff245271ff29bbdf6daafdd11fa4d853653a6dc8edeba7e4644a6038dab7c211fe48a4e3fe5377bedb55fba23f49b0a6ca00edea88adb24b80618699ad65e24bf73d8c23f9a6f121b7abf7447f93614d9301dbd5115b649700c30d335acbc497ee7b1847f34de2436f57ee88ff26c29b2603b7aa22b6c92e01861a66b597892fdcf6308fe69bc486deafdd11fe4d85364c076f54456d925c030c34cd6b2f125fb9ec611fcd37890dbd5fba23fc9b0a6c980edea88adb24b80618699ad65e24bf73d8c23f9a6f121b7abf7447f93614d9301dbd5115b649700c30d335acbc497ee7b1847f34de2436f57ee88ff26c29b2603b7aa22b6c92e01861a66b597892fdcf6308fe69bc486deafdd11fe4d85364c003079d03af8842e89012feaae7842399725458d078927fd6fba23fcab0a6c97f060f3a075f1085d12025fd55cf084732e4a8b1a0f124ffadf7447f95614d92fe0c1e740ebe210ba2404bfaab9e108e65c9516341e249ff5bee88ff2ac29b25fc183ce81d7c4217448097f5573c211ccb92a2c683c493feb7dd11fe5585364bf83079d03af8842e89012feaae7842399725458d078927fd6fba23fcab0a6c97f060f3a075f1085d12025fd55cf084732e4a8b1a0f124ffadf7447f95614d92fe04df99998b8733cdbd185d2b1d7670e574158901b24a199bfe88ff2ad29b25fbf28058bde4748fc6f6fd1cd5ba52c44a92ef37c334944d780d11fe55b5364bf7d500b17bc8e91f8dedfa39ab74a5889525de6f8669289af01a23fcab6a6c97efa2c288825f38674758c0d5d668b0f3a9f68104cca25150204447f956e4d92fdf35851104be70ce8eb181abacd161e753ed02099944a2a040888ff2adc9b25fbe63cb47944a47c548dfcfb9d92229b12784c838f259455ac1211fe55ba364bf7cb057b4b361f5b2bd3c6bd631c3b944ceb45497a4828acfc2523fcab756c97ef950af6966c3eb657a78d7ac638772899d68a92f4905159f84a47f956ead92fdf2a15ed2cd87d6caf4f1af58c70ee5133ad1525e920a2b3f0948ff2add5b25fbe542bda59b0fad95e9e35eb18e1dca2675a2a4bd2414567e1291fe55bab64bf7ca857b4b361f5b2bd3c6bd631c3b944ceb45497a4828acfc2523fcab756c97ef9503b7bbf70c1c7fd30a4728b7f68e7c5635571a50215a128a57f956eae92fdf29f0309d78e59f27d1915ab3ef6c82db2c15725a6012b43f54bff2add5e25fbe53d0613af1cb3e4fa322b567ded905b6582ae4b4c025687ea97fe55babc4bf7ca7a0c275e3967c9f46456acfbdb20b6cb055c969804ad0fd52ffcab757897ef94f4184ebc72cf93e8c8ad59f7b6416d960ab92d30095a1faa5ff956eaf12fdf29e8309d78e59f27d1915ab3ef6c82db2c15725a6012b43f54bff2add5e25fbe53d0613af1cb3e4fa322b567ded905b6582ae4b4c025687ea97fe55babc4bf7ca7a04e883c435301c8fd3795e5aa01cad85075abdc47d0fef700cab7578a7ef94f3f2922d1337c6614b23bf1f34bf9f3d89b979a148ca1ff9202956eaf15fdf29e7d5245a266f8cc296477e3e697f3e7b1372f34291943ff24052add5e2bfbe53cfa309d9d7ac7fad580bc8df527de2d8a690aaaae2f87ffec0b55babc58f7ca79f3613b3af58ff5ab01791bea4fbc5b14d215555c5f0fffd816ab7578b1ef94f3e64e88ce97f64dd8babefdfc976f14519ed6ed14bb2001542e56eaf164df29e7cb2923f5dcc2fe342d4ac22126d486cb385a1c857340044c5dadd5e2cabe53cf955247ebb985fc685a9584424da90d9670b4390ae6800898bb5babc5957ca79f2a30a2301fe25b536cf7ceac93487954dc14b471ca0012d577b7578b2bf94f3e536144603fc4b6a6d9ef9d592690f2a9b82968e3940025aaef6eaf1657f29e7ca64e9b192c5fcfd06bac00da4518437b6aff142325004cf9dfdd5e2cb0e53cf94b29488b059602238f24c7dc8226e51ed0aa6aa247009b97c0babc5962ca79f2955291160b2c04471e498fb9044dca3da154d5448e01372f817578b2c594f3e52a313484c32e6b10f45fe59a0091f2a33d55ece51902700303eaf1658c29e7ca53626909865cd621e8bfcb340123e5467aabd9ca3204e00607d5e2cb1853cf94a650e46bb9900ec6894c5c8ffa3e28b4f003f5f06109c1b010abc59631a79f294b2ddb301ff6800fca657f47ec72af91dab42e3cbf13850422578b2c644f3e52955bb6603fed001f94cafe8fd8e55f23b5685c797e270a0844af1658c89e7ca52a437f192cb062c1e162c347a9c11c6f657cfb4ef94e15b48a5e2cb1923cf94a5313108b063728067a924cb74b789706c5a638f9ef9c2d0d15bc59632579f294a52621160c6e500cf524996e96f12e0d8b4c71f3df385a1a2b78b2c64af3e5294a4c422c18dca019ea4932dd2de25c1b1698e3e7be70b43456f1658c95e7ca52942496b0de8fa2b68c5f2be253bb165e27de0a2b79e16a0caee2cb192ccf94a527492d61bd1f456d18be57c4a7762cbc4fbc1456f3c2d4195dc59632599f294a4e1e6d1c2714ed5ce94975b146e2b7a09a246b09e485a9d6bc8b2c64b43e52949b3cda384e29dab9d292eb628dc56f413448d613c90b53ad791658c9687ca5293605c6c9492a17f65cf29ced13813caa633dee838f16a8fef32cb192d1f94a526b0b8d9292542fecb9e539da27027954c67bdd071e2d51fde6596325a3f294a4d6171b2524a85fd973ca73b44e04f2a98cf7ba0e3c5aa3fbccb2c64b47e52949ac2e364a4950bfb2e794e7689c09e55319ef741c78b547f799658c968fca5293585c6c9492a17f65cf29ced13813caa633dee838f16a8fef32cb192d1f94a526b044eb81d219614e562063ca681df374626a12cddfd521826696325a40294a4d5f15e95c5109251f640d8dbcc8324510bf8067f7bcaa44a8ce2c64b48152949abd2bd2b8a2124a3ec81b1b7990648a217f00cfef795489519c58c96902a529357a57a5714424947d903636f320c91442fe019fdef2a912a338b192d2054a526af43b5d3b351f8b7dd839340e398886adf6af8219e25226ea726325a40b94a4d5e702cccf1715797e683f2e446b076b83e80b468fc1a44f78e5c64b48182949abcd05999e2e2af2fcd07e5c88d60ed707d0168d1f83489ef1cb8c9690305293579a0b333c5c55e5f9a0fcb911ac1dae0fa02d1a3f06913de397192d2060a526af34166678b8abcbf341f97223583b5c1f405a347e0d227bc72e325a40c14a4d5e682cccf1715797e683f2e446b076b83e80b468fc1a44f78e5c64b48182949abcd05999e2e2af2fcd07e5c88d60ed707d0168d1f83489ef1cb8c9690305293579a03f461e7234c21cc7985742b9d13f21fd7de64c6613dfdd7292d2060b526af33f0a9e95913fe6bc46fd74ad6b98dc6bf5a80ef4c927c15ee625a40c17a4d5e67d153d2b227fcd788dfae95ad731b8d7eb501de9924f82bdcc4b48182f49abccfa2a7a5644ff9af11bf5d2b5ae6371afd6a03bd3249f057b989690305e935799f454f4ac89ff35e237eba56b5cc6e35fad4077a6493e0af7312d2060bd26af33e835fbb1c0d4ce4727a410feb18424e7552d31a88f7c1792635a40c17b4d5e67cf6bf76381a99c8e4f4821fd630849ceaa5a63511ef82f24c6b48182f69abccf9e64011fb0299b9f565d0a22be06f1c54f6108fe3af05fed8e690305ee35799f3b5414980d2999c16486da6d740441b2996e545872e0c17f1dd2060bdd6af33e75343b88c729960580da7b02dffee18d2d88eb0ce2c184a23ca40c17bbd5e67ce96877118e532c0b01b4f605bffdc31a5b11d619c58309447948182f77abccf9d25d007bc97cba98bb36b23377f1e45cb0cfee8f8806142cf390305ef05799f3a34613503fcfd7b42e3a2a8ee7da26e15c4c1f7b0d0c29fde82060bde1af33e7451838f92c7611eb14411b45c7aaabeab34481521718559fd140c17bc45e67ce893071f258ec23d62882368b8f5557d5668902a42e30ab3fa28182f788bccf9d1260e3e4b1d847ac51046d171eaaafaacd1205485c61567f450305ef11799f3a244dda221086f1db59d5a056354bbd7d94d04cecb5c2aea28b060bde23f33e744727c69ccde446396b7806d4628dd923244cdc3568855ee9170c17bc48e67ce88d4f8d399bc88c72d6f00da8c51bb2464899b86ad10abdd22e182f7891ccf9d11a2b2ccbe4677b6865ace179822dc2b48bdfb3319f157d485d305ef12499f3a233565997c8cef6d0cb59c2f3045b856917bf66633e2afa90ba60bde24933e7446638c5883e7450244e804c0e00ad68fa2a2b0f227955f6c575c17bc49367ce88cb718b107ce8a0489d00981c015ad1f454561e44f2abed8aeb82f78926cf9d11966f2879a6a7a313f1cdf65ffaac0210a3587ee5e257dcb9d805ef124e9f3a232b6a634bfa25a8aa9b68b2e7ed4e6249415d4027c1afbb17b10bde249e3e74465560d8f0a121b3d7ee9e2bf7d29322ba7d66c2ab805f77d36317bc493d7ce88ca94dc439ef19ca3295091e179d1ca39cf579c7b2fdbef14ac72f78927bf9d11951279acc8b09f6e7e1df0257322fa561e59fd1c1f87de4398f5ef124f8f3a232a14f35991613edcfc3be04ae645f4ac3cb3fa383f0fbc8731ebde249f1e74465422a7d8ad8fe3e223f48cf84c0b4f3af912b8963def7928a3e7bc493e4ce88ca8354fb15b1fc7c447e919f098169e75f225712c7bdef25147cf78927c99d11950636088410cf5b0bb4f0043afaca2ce63f5a67eb78de4bccfaef124f943a232a0b6c1108219eb61769e00875f59459cc7eb4cfd6f1bc9799f5de249f2874465416643468f013ceb18b8cd713e31f11c0f815e209e07930d7ecbc493e51e88ca82b547b2a8cfdffe5cee6744fbe3481a9ead8066fbdf26353da78927ca4d11950553508adc6d2624e5599aec7745f617bd05c4f3b78e4c84bb5f124f94aa232a0a96a115b8da4c49cab335d8ee8bec2f7a0b89e76f1c990976be249f2954465415260350fc81febbc0e338145c973e4173c1d7f49e09322d2d8c493e52b88ca82a34c7c783d1639fad433c8b38ade265672e740efbe264749b28927ca5811950545250b492702d6786034578f0db2aad4e07ac43b794c903766124f94b1232a0a894a16924e05acf0c068af1e1b6555a9c0f58876f299206ecc249f296246541512203f7d48e1bc64389e24642ec1097b7c975349e232428199493e52c58ca82a23407efa91c378c8713c48c85d8212f6f92ea693c464850332927ca58b195054460d104dd05d54139a4557b8b2fa8415ed098f8385c90baa6624f94b1732a0a88b1a209ba0baa827348aaf7165f5082bda131f070b921754cc49f2962e654151163441374175504e69155ee2cbea1057b4263e0e17242ea99893e52c5cca82a22c68826e82eaa09cd22abdc597d420af684c7c1c2e485d533127ca58b9950544585d1735b2aba3bc5c2241b3279e9f86cb453a945990bc4a634f94b1742a0a88af4640c4122da9fb7011498e47339d359136b784b0217a38c79f2962e95415115d1893e0d131b67997ef5944865d98931d19b1655d42f615903e52c5d3a82a22b93127c1a2636cf32fdeb2890cbb31263a3362caba85ec2b207ca58ba750544572624f8344c6d9e65fbd65121976624c7466c595750bd85640f94b174ea0a88ae450b15f3664164f7747904c2ae322c0e379cd86e717b25082f2962e9e415115c72d7517199e8f21a65be6c04dbca3a9c19fdd69cb2f664506e52c5d3d82a22b8d5aea2e333d1e434cb7cd809b794753833fbad3965ecc8a0dca58ba7b0544571a41e6b513509f09513c61292ee8eccf012bb80329bd9ab81c94b174f70a88ae330fdfc2d377a0955a45887a55c837c5fd03b262507b37143a2962e9ef15115c651fbf85a6ef412ab48b10f4ab906f8bfa0764c4a0f66e287452c5d3de2a22b8ca3f7f0b4dde8255691621e95720df17f40ec98941ecdc50e8a58ba7bc544571940b106f4893672d89f909faa6381c57e2c9d56e80d9ba45d24b174f79a88ae3271620de9126ce5b13f213f54c7038afc593aadd01b3748ba4962e9ef35115c64e2c41bd224d9cb627e427ea98e0715f8b2755ba0366e917492c5d3de6a22b8c9c58837a449b396c4fc84fd531c0e2bf164eab7406cdd22e9258ba7bcd445719383d194d360cd55b575d65d25b7823a6274999440a9ba60125b174f79b88ae326f0644f318f00d39668791ccaee6a574493f74e412374da64c62e9ef38115c64dd0c89e631e01a72cd0f23995dcd4ae8927ee9c8246e9b4c98c5d3de7022b8c9ba1913cc63c034e59a1e4732bb9a95d124fdd39048dd3699318ba7bce045719374322798c78069cb343c8e6577352ba249fba72091ba6d3263174f79c08ae326e8644f318f00d39668791ccaee6a574493f74e412374da64c62e9ef38115c64dd054b0bbcad809af88beffbdd4cb0cb1229adede43e9b66d8d5d3de7032b8c9b9f3573d0428675e1c94ac5a3a18c778a3fe2001884d36e7f1bba7bce075719373d6ae7a0850cebc392958b474318ef147fc4003109a6dcfe3774f79c0eae326e7a61e199b6f03a09dcf7dcb67e283c50fa3442be104dbba06fe9ef381e5c64dcf34fd58c1ab6d69671bc7f94f446d6c9ef14c7d81d9b78e4e0d3de703db8c9b9e52bbd70e2440faf9b45c551e0840bbbd8d5d20c3836f36dc2a7bce07c719373c9577ae1c4881f5f368b8aa3c1081777b1aba418706de6db854f79c0f8e326e7923b081c35e6a14124e3db6f7a068d175e038a8cdddbcf5b0b9ef381f2c64dcf2302229118a3a50501947d06ec037856b6b35775b8b7a05a183de703e68c9b9e4504452231474a0a0328fa0dd806f0ad6d66aeeb716f40b4307bce07cd19373c8a088a44628e94140651f41bb00de15adacd5dd6e2de816860f79c0f9a326e7914111488c51d28280ca3e837601bc2b5b59abbadc5bd02d0c1ef381f3464dcf2282229118a3a50501947d06ec037856b6b35775b8b7a05a183de703e68c9b9e4504452231474a0a0328fa0dd806f0ad6d66aeeb716f40b4307bce07cd19373c8a014b69ed5bfa3c31cec07e2f8d473d5a7821fca2ae8182a1079c0f9a426e7913f296d3dab7f478639d80fc5f1a8e7ab4f043f9455d0305420f381f3484dcf227e52da7b56fe8f0c73b01f8be351cf569e087f28aba060a841e703e6909b9e44fc31c74f5ad3809b9f2d053fbe99fcd536bd40ad5440c2f484ce07cd22373c89f7638e9eb5a701373e5a0a7f7d33f9aa6d7a815aa88185e9099c0f9a446e7913ee532f96182464f13480db26f25e517cd5a145114e030d7614381f3489dcf227db327184dd1f2c6520ce7c75dcb30121a5eecc7e99061c9029703e6914b9e44fb564e309ba3e58ca419cf8ebb96602434bdd98fd320c392052e07cd22973c89f6a55d86c215314173b06b7ff6ac262ae92677456611873e4a6c0f9a453e7913ed337c330ef7c8ab12dda3626cd7b23851f7b2b08bf30e96d4e81f348a8cf227da56f8661def915625bb46c4d9af6470a3ef656117e61d2da9d03e691519e44fb4a6b1f1c6ac88d476f359ec32de2ec3c7898ee7ef9c3a7593b07cd22a43c89f69362509182677d11963803ae53bc36a0ebde1f59f0875056770f9a45497913ed2550b37bb1a55ca5e43ccd849f6ecb69d268810fde0ea250ef1f348a93f227da492d795010211bce8046613136d3f4fb9f7d447bb91d4645df3e691528e44fb4915af2a02042379d008cc2626da7e9f73efa88f7723a8c8bbe7cd22a51c89f692241f798ed5ad1bcb8e64aecd346321678a1544ae1751abb7df9a454a4913ed24310018a878c05fc29995c019e82c254ebeeeaf1bfea371afcf348a94a227da4852003150f180bf85332b8033d0584a9d7ddd5e37fd46e35f9e691529444fb490a40062a1e3017f0a66570067a0b0953afbbabc6ffa8dc6bf3cd22a52889f692140c1eace93692640497a634ec0c70cf5a2399e9fc51ba7be89a454a5213ed2427183d59d26d24c8092f4c69d818e19eb44733d3f8a374f7d1348a94a427da484e307ab3a4da4990125e98d3b031c33d688e67a7f146e9efa2691529484fb4909c60f56749b4932024bd31a76063867ad11ccf4fe28dd3df44d22a52909f6921384dfd27403f88c301472976b8bd6b1d9ce5e0fbc21ba9628aa454a5223ed2426f280ca72d557408ba5b19156971346334780453813754691648a94a457da484dd50194e5aaae81174b6322ad2e268c668f008a7026ea8d22c9152948afb4909ba2c44f5622c32a5a1392a7d9dbb2fb4cc8c53aa01dd53485a22a52916f69213735889eac458654b427254fb3b765f699918a75403baa690b4454a522ded2426e63d262e35872d193cb1701e6ee31cfb2cdd910404754ec5698a94a45cda484dcb065eb517e4bcb5312fa664d5bc981e5467646405ea9f2ed4152948bab4909b950cbd6a2fc9796a625f4cc9ab79303ca8cec8c80bd53e5da82a5291756921372a197ad45f92f2d4c4be999356f26079519d919017aa7cbb5054a522ead2426e5432f5a8bf25e5a9897d3326ade4c0f2a33b23202f54f976a0a94a45d5a484dca865eb517e4bcb5312fa664d5bc981e5467646405ea9f2ed4152948bab4909b95057e8fba96df928ddc192c2af8961f28798cedcba53e77e83a52917579213729f3be44fffb254d4734febad5709220d09dde01571a7d0a1084a522eb02426e53d03daf8ac3b0c2b9e6c9d82a608a2420e680286e04fa2e61194a45d61484dca7907b5f1587618573cd93b054c1144841cd0050dc09f45cc232948bac2909b94f20f6be2b0ec30ae79b2760a9822890839a00a1b813e8b984652917585213729e41ed7c561d8615cf364ec153045121073401437027d17308ca522eb0a426e53c83daf8ac3b0c2b9e6c9d82a608a2420e680286e04fa2e61194a45d61484dca79007716e3437e7f68560767cb90aa669c7ac933806f45e6633948bac2a09b94f1f0ee2dc686fcfed0ac0ecf972154cd38f5926700de8bccc672917585413729e3e1dc5b8d0df9fda1581d9f2e42a99a71eb24ce01bd17998ce522eb0a826e53c7c3b8b71a1bf3fb42b03b3e5c855334e3d6499c037a2f3319ca45d61504dca78f803293bf054e1eb0dd42df388a0c4c4757575dc6c45e8073a48bac2a19b94f1ef065277e0a9c3d61ba85be711418988eaeaebb8d88bd00e74917585433729e3de0ca4efc15387ac3750b7ce22831311d5d5d771b117a01ce922eb0a866e53c7bc1949df82a70f586ea16f9c45062623ababaee3622f4039d245d6150cdca78f783293bf054e1eb0dd42df388a0c4c4757575dc6c45e8073a48bac2a19b94f1ef065277e0a9c3d61ba85be711418988eaeaebb8d88bd00e74917585433729e3de0566154c20edd462cd8430a20278f455809b9770e7a0372932eb0a867e53c7bbf38d50230f41d0f117d4c3c38457cb2aabfb54a19f40889275d6150d0ca78f77d71aa0461e83a1e22fa9878708af965557f6a9433e811124ebac2a1a194f1eefa6f666170a6d6befdc1f718d90c50f2a5ab178464d023c89e7585434429e3ddf36adf1b8e241000b350b459aa0f000d46027164c6a049353deb0a868953c7bbe561d08fc91e82841e6e2edb4c145e4286b125258a40940e7cd6150d13a78f77c94fb3783f13678af4a923de901f1aad080e8ca7118129c0faac2a1a284f1eef912b79492afd3198a11f0de5183493820ac95baa20025525f6585434519e3ddf2156f29255fa6331423e1bca306927041592b7544004aa4becb0a868a33c7bbe4239f77d58cb28e53c48fdbc58c8ac3025d1b1047d09563bda6150d14778f77c830001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe41400035c18f06fcfab2189d1aebd33a814fccdebde5540ddc8551d147f8f87c827fff6b831e0df9f564313a35d7a675029f99bd7bcaa81bb90aa3a28ff1f0f904fffe631894c8ca4d4b1a4131d744e063672e2739f14d3773b948451fe3e2f209fffb5243823e6afd18ec4f29d681b724f656fab63e976ee916918a3fc7c6e413fff530995d29ac5cb4906b19d4fb64a814a8a1aed92bddd3d124147f8f8ec827ffe96132ba5358b96920d633a9f6c9502951435db257bba7a24828ff1f1d904fffd24e77cd5387d554f9792d7be588fe7a9d32fdc0ac7750e89151fe3e3c209fffa32901f353e60d2caabf211fc3085b1d35123ddd55eea37523a3fc7c79413fff455203e6a7cc1a59557e423f8610b63a6a247bbaabdd46ea4747f8f8f2827ffe8a301a25fc6e973562c94aa70417ca9ccef539d154ba8f788f8ff1f1e604fffd1360344bf8dd2e6ac592954e082f95399dea73a2a9751ef11f1fe3e3cc09fffa264c7af09e90bf5842f1f0c40855889b368129a14fea3f863f3fc7c79913fff44b250839e9f7e1333db0a7b008a16f5e67ae959e9cd480b07f7f8f8f3327ffe8954a1073d3efc2667b614f601142debccf5d2b3d39a90160feff1f1e664fffd12a20334054b5e74fae8f64e81a7c1ba1996698d670520465fefe3e3ccd9fffa253406680a96bce9f5d1ec9d034f8374332cd31ace0a408cbfdfc7c799b3fff44a60cdf59ffadffc1720a59c861e6ccae6046a5b5be48133bfcf8f8f3377ffe894b19beb3ff5bff82e414b390c3cd995cc08d4b6b7c902677f9f1f1e66efffd1296337d67feb7ff05c8296721879b32b9811a96d6f9204ceff3e3e3ccddfffa252c66facffd6ffe0b9052ce430f36657302352dadf24099dfe7c7c799bbfff44a585a07f8a7b65e99d87262ae1663290dff169db7e1813563d08f8f3378ffe894af402249fc431fb668b18b8424bcb043f8d97dcbc0026c6ba21f1e66f2ffd1295d0c56eca55ca1ef892fdd30416fbeafec5f3df37d04da7b453e3ccde6ffa252b918add94ab943df125fba6082df7d5fd8be7be6fa09b4f68a7c799bcdff44a572315bb2957287be24bf74c105befabfb17cf7cdf41369ed14f8f3379bfe894ae462b7652ae50f7c497ee9820b7df57f62f9ef9be826d3da29f1e66f37fd1295c851812302a0817b4aca992c0ef24926c0a02193cd4da95854e3ccde70fa252b8f2f149eb21765794d61f88015daf0757bec8583979b5454aac799bce2f44a571d5e293d642ecaf29ac3f1002bb5e0eaf7d90b072f36a8a9558f3379c5e894ae3a4864d37533f867ed54a8284f621ffdea5e586a5b6d52f6ac1e66f38cd1295c731cdbff973e53529276167896ba9e23cf68f330b3daa791593ccde71aa252b8e539b7ff2e7ca6a524ec2cf12d753c479ed1e66167b54f22b2799bce3544a571ca736ffe5cf94d4a49d859e25aea788f3da3ccc2cf6a9e4564f3379c6a894ae39472f25566c8fd174b7d79ecadcb4f4675f3dbe19bd53e2ecae66f38d61295c72771f7037a685cb14ec7ba01538cfcb4e693fa1f34aa7e0196ccde71ad252b8e4d70005fa1a71be5555c3a2a9f105791c7d4369a6654fda72e99bce35b4a571c996c1317f0249a4d62853a7d36170d4b8a54af90c9a9fcf25e3379c6b794ae39316438888d1f971d7cd73b22642478bf0f55a17d9053fb88bd66f38d70295c7261548369c71590bdb17b3c6cc03f4fa6195785571da7f8b57bcde71ae152b8e4c135192c3b0183fe1ac33f017874fd742d5b4d0a384ff30ef89bce35c3a571c9816a3258760307fc35867e02f0e9fae85ab69a14709fe61df1379c6b874ae3930260770998dc727b22d9c22dd9ca53f8b0197684de3fcddfe36f38d70f95c726034d006bde8f4778fd804a83ab8b06195adf2f65b97f9d63c7de71ae202b8e4c0526133069f4f174b2cd5b2f4f0c6a5ab06aa1276fff3c6b90bce35c41571c98094c2660d3e9e2e9659ab65e9e18d4b560d5424edffe78d72179c6b882ae393012245f1a54aa2855830232e534280792bc56c6f9bcfcf35243f38d71065c72602348be34a95450ab060465ca68500f2578ad8df379f9e6a487e71ae20cb8e4c0461d8ec1ff7f03d8c3d591bcc8967c72ec075e42f0f3ceed10ce35c41a71c9808b3b1d83fefe07b187ab2379912cf8e5d80ebc85e1e79dda219c6b8834e3930116024d60aad271e5c7230d1b1a504ff3aac9bb67c0cf3d584438d7106ac726022b049ac155a4e3cb8e461a3634a09fe7559376cf819e7ab08871ae20d58e4c0456093582ab49c7971c8c346c69413fceab26ed9f033cf56110e35c41ab1c9808ac126b0556938f2e391868d8d2827f9d564ddb3e0679eac221c6b883563930115824d60aad271e5c7230d1b1a504ff3aac9bb67c0cf3d584438d7106ac726022b049ac155a4e3cb8e461a3634a09fe7559376cf819e7ab08871ae20d58e4c045601f6a836172dbf480900cee8c0a5b12ad1b1c4c30cf57b50f35c41ab2c9808abf3ed506c2e5b7e9012019dd1814b6255a363898619eaf6a1e6b8835659301157e09bc6632a1d254ba0cf9e2281fca72af18b38cc03d60783dd7106acc26022afb1378cc6543a4a97419f3c4503f94e55e316719807ac0f07bae20d5984c0455f626f198ca874952e833e788a07f29cabc62ce3300f581e0f75c41ab309808abec4de331950e92a5d067cf1140fe539578c59c6601eb03c1eeb8835661301157d827d8bbd6f387ce589c644a79f30552ec377b2800d60927de7106acc36022afaf4fb177ade70f9cb138c894f3e60aa5d86ef65001ac124fbce20d5986c0455f5e2b754808a481bc1a3e5751dfc27373ab8a2efc005826437ac41ab30e808abebb56ea9011490378347caea3bf84e6e757145df800b04c86f58835661d01157d7639e778cf68697320c6236f77002bf6a8d4fe4bfe609ab1ec106acc3b022afaeb73cef19ed0d2e6418c46deee0057ed51a9fc97fcc13563d820d598760455f5d673b03bea78084f3ae553e5d3f70e029e003b8bf6826c6bb141ab30ed08abebab7372d081c673212d976df39fe47a2d36acb973ea04da7b63835661db1157d75572f7f9b06348c512fba20f37bf52826805b543d109b69ac806acc3b722afaea972024c0d9cf40cddc40a466775032ccab7ace39f136ed9910d59876f455f5d517016f0c8104a9c7354dab4c6e06481901b9c233b26df57231ab30edf8abebaa16c403a3cf6f7bb9e767b9185b7272b1ae37aa2734dc0524735661dc0157d75416492cd26c451f9f4b9bd4b0364ac7e307337a0e39b82488f6acc3b812afaea815537f2fa5f0676a14040bdfebfb7245b92b19dc43706351fd598770355f5d50136823ea1946f6ffa4d47a3f575cc70b1d1a597856e0e0e40ab30ee07abebaa016d047d4328dedff49a8f47eaeb98e163a34b2f0adc1c1c815661dc0f57d75402661b5333282042a101e4b7cdcd8feac1f2d8ba12b839dd03acc3b81fafaea8035848ff1326a307f9d08f9793917dfd7e91f3d02270755e08598770405f5d50053ca456d323a892ab6de5571f195a22f7d029fc41e0ec6011b30ee081bebaa009055b06531db3a80ea890d63629126dea4c965480c1da6424661dc1047d7540110ab60ca63b67501d5121ac6c5224dbd4992ca90183b4c848cc3b8208faea8022156c194c76cea03aa24358d8a449b7a9325952030769909198770411f5d500442ad83298ed9d40754486b1b148936f5264b2a4060ed3212330ee0823ebaa008855b06531db3a80ea890d63629126dea4c965480c1da6424661dc1047d7540110377323108cd7848cdee0eebd18abe5443f0cec153b4e288dc3b82090aea8021f6ee6462119af0919bdc1dd7a3157ca887e19d82a769c511b877041215d50043e69dee4ef09c094eb4849e2ec590dbd0ba8760c51ed3a46380ee08243baa0087b5fd0228ae9e3ac8e5d59edd0a879a211fd2e74a0da7630711dc10488754010f54bb29dc2aa29dbd4877a039947516c1ea69f453eb4ee04e33b820911ea8021e9237794322ab63a60dbba2f2a85010037f980e67a69ddadc777041224d50043d146ef2864556c74c1b7745e550a02006ff301ccf4d3bb5b8eee082449aa0087a219f0a975813b6c3b3baee4a20a6228da9245f5e6a7785b1edc10489454010f4333e152eb0276d876775dc94414c451b5248bebcd4ef0b63db8209128a8021e8667c2a5d604edb0eceebb92882988a36a4917d79a9de16c7b7041225150043d0c5b97a458e03de491aa3d4d08496f6ecf3e720b323bc47cf7e08244a3a0087a174341a15e96de4bdb2140c208893d059929267261778a9df0c10489484010f42d12959b6a041f1a6e0f47ac0908d8332cfe8f40bfef16dfe2820912918021e859252b36d4083e34dc1e8f581211b06659fd1e817fde2dbfc5041225230043d0b24a566da8107c69b83d1eb0242360ccb3fa3d02ffbc5b7f8a08244a460087a16420bf33fcf75b5628470388403d1fc162a0bc61fc78b8a3151048948d010f42c7417e67f9eeb6ac508e0710807a3f82c54178c3f8f171462a2091291a021e858e0f0f28a0b3cfdb58e8d448f8eadd2d852f33e3eee2e4305541225235043d0b1b1e1e5141679fb6b1d1a891f1d5ba5b0a5e67c7ddc5c860aa8244a46a087a16363c3ca282cf3f6d63a35123e3ab74b614bccf8fbb8b90c155048948d410f42c6c048b9db274e15d7f13686fbf4d47942425e17b74172326ab091291a921e858d709173b64e9c2bafe26d0df7e9a8f28484bc2f6e82e464d561225235243d0b1ae122e76c9d38575fc4da1befd351e50909785edd05c8c9aac244a46a487a1635c245ced93a70aebf89b437dfa6a3ca1212f0bdba0b919355848948d490f42c6b848b9db274e15d7f13686fbf4d47942425e17b74172326ab091291a921e858d701d860efb728e329a39d41fe19f50ac7f6871ca7fe4667962225235253d0b1adf3b0c1df6e51c653473a83fc33ea158fed0e394ffc8ccf2c444a46a4a7a1635be022a949aa09b4d20b416a77e73a0d9f84e0985fc919b89898948d495f42c6b7b0455293541369a41682d4efce741b3f09c130bf9233713131291a92be858d6f608aa526a826d3482d05a9df9ce8367e1382617f2466e262625235257d0b1adec1154a4d504da6905a0b53bf39d06cfc2704c2fe48cdc4c4c4a46a4afa1635bd822a949aa09b4d20b416a77e73a0d9f84e0985fc919b89898948d495f42c6b7b0455293541369a41682d4efce741b3f09c130bf9233713131291a92be858d6f6016b77f54fd35cae4d2700794de94a60e2ea3db2166e406635235257e0b1adebf2d6efea9fa6b95c9a4e00f29bd294c1c5d47b642cdc80cc6a46a4afc1635bd7e5addfd53f4d72b9349c01e537a529838ba8f6c859b90198d48d495f82c6b7afc41ce5354c010d9de6046649eeb03586c216135083721d71b91a92bf158d6f5f70faeff56568436748d52f135cc64d8d2ef04c60d6e455238235257e3b1adebed1f5dfeacad086ce91aa5e26b98c9b1a5de098c1adc8aa47046a4afc7635bd7da3ebbfd595a10d9d2354bc4d73193634bbc131835b91548e08d495f8ec6b7afb4098a535f8a84365c375db1a65984ee9224688c68722c35c21a92bf1e8d6f5f671314a6bf15086cb86ebb634cb309dd2448d118d0e4586b8435257e3d1adebece26294d7e2a10d970dd76c6996613ba4891a231a1c8b0d7086a4afc7a35bd7d9c4c529afc5421b2e1baed8d32cc277491234463439161ae10d495f8f46b7afb3824b78ea57ea5e87b42a1425d8ead111cf2cb228422c50022a92bf1e9d6f5f66f496f1d4afd4bd0f6854284bb1d5a2239e5964508458a00455257e3d3adebecde1ef09342d0fa24a4d74b316e31126c6e776ee60d8b15a48ba4afc7a85bd7d9bb3de12685a1f44949ae9662dc6224d8dceeddcc1b162b4917495f8f50b7afb37607d4a5b81a4b154b29f2edb0baa7d9b489fdf4332c58362f92bf1ea26f5f66eb0fa94b7034962a9653e5db61754fb36913fbe86658b06c5f257e3d44debecdd61f5296e0692c552ca7cbb6c2ea9f66d227f7d0ccb160d8be4afc7a89bd7d9bac3ea52dc0d258aa594f976d85d53ecda44fefa19962c1b17c95f8f5137afb3758095cb42e7b13d76a6bf50303a0dbc3434c219f2fc58506fa2bf1ea27f5f66eaf12b9685cf627aed4d7ea060741b7868698433e5f8b0a0df457e3d44febecdd5e2572d0b9ec4f5da9afd40c0e836f0d0d30867cbf16141be8afc7a89fd7d9babc4ae5a173d89ebb535fa8181d06de1a1a610cf97e2c2837d15f8f513fafb3757821dd9b94879ff95e8c165832041a5c2f6e5c4ef9585213a3bf1ea2805f66eaef43bb37290f3ff2bd182cb0640834b85edcb89df2b0a427477e3d4500becdd5de1388c6fef4e26831fd1f88c006c798b865b397e26149f28ffc7a8a027d9babbb27118dfde9c4d063fa3f11800d8f3170cb672fc4c293e51ff8f51404fb3757764e231bfbd389a0c7f47e23001b1e62e196ce5f898527ca3ff1ea2809f66eaeec285890a47d75c447b5c26df82c9aedbdd9df1b100a513880e3d45014ecdd5dd750b12148faeb888f6b84dbf05935db7bb3be362014a27101c7a8a029d9babbae2d749b3ecc3993d6a3cfdfd8a8c9def213bec83d294686048f514054b375775b5ae9367d987327ad479fbfb15193bde4277d907a528d0c091ea280a966eaeeb641e4c5a80748d2125c05a75a9985a3c2fb3d7cf1a51bbc133d450153cdd5dd6b0fdbe3fce4f426dc84d176ad29696f80a2bd55e04a391c277a8a02a89babbad51fb7c7f9c9e84db909a2ed5a52d2df01457aabc09472384ef5140551375775aa3f6f8ff393d09b721345dab4a5a5be028af5578128e4709dea280aa26eaeeb540af17893fe03b99bf351dd6141a9a3ffc22d0aff51ca853cd4501545dd5dd6a715e2f127fc077337e6a3bac2835347ff845a15fea3950a79a8a02a8bbabbad4e2bc5e24ff80ee66fcd47758506a68fff08b42bfd472a14f35140551775775a9c578bc49ff01dccdf9a8eeb0a0d4d1ffe116857fa8e5429e6a280aa2eeaeeb5383b29e1ecb69e1c7701e3fe0c10f867f6cf130bf21ca9f7ce4501545ed5dd6a6f02661c86439ebba5d08e2410184ef7e84a6873e13955939d8a02a8beabbad4dd04cc390c873d774ba11c4820309defd094d0e7c272ab273b1405517d5775a9ba099872190e7aee9742389040613bdfa129a1cf84e5564e76280aa2faaeeb53741330e4321cf5dd2e84712080c277bf4253439f09caac9cec501545f55dd6a6e82661c86439ebba5d08e2410184ef7e84a6873e13955939d8a02a8beabbad4dd04cc390c873d774ba11c4820309defd094d0e7c272ab273b1405517d5775a9ba025997a3dbe116c2bf04f2bfe0a1c220d465f544b55668b6380aa2fabeeb5373f4b32f47b7c22d857e09e57fc1438441a8cbea896aacd16c701545f57dd6a6e7e227841a3cea833678e02d7f01eceb02fc5bfad2a559bd18f02a8beb0bad4dcfb44f083479d5066cf1c05afe03d9d605f8b7f5a54ab37a31e05517d6175a9b9f615f35f3c1103505604d187b87198e8b9c34110a65670ea3d0aa2fac3eb5373eb2be6be782206a0ac09a30f70e331d1738682214cace1d47a1545f587d6a6e7d657cd7cf0440d415813461ee1c663a2e70d04429959c3a8f42a8beb0fad4dcfac3bad528d5e7d0567f35265bb83256dc8c64ae12fb388f5e95517d6205a9b9f57036cfdc7935c8d87b36af36efca9038c38d81e5c67138fd3aa2fac41b5373ead06d9fb8f26b91b0f66d5e6ddf952071871b03cb8ce271fa7545f58836a6e7d5a0db3f71e4d72361ecdabcdbbf2a40e30e36079719c4e3f4ea8beb106d4dcfab41b67ee3c9ae46c3d9b579b77e5481c61c6c0f2e3389c7e9d517d620da9b9f56836cfdc7935c8d87b36af36efca9038c38d81e5c67138fd3aa2fac41b5373ead06d9fb8f26b91b0f66d5e6ddf952071871b03cb8ce271fa7545f58836a6e7d5a06751ca91ad85e4a4a78303b7209f0b08e249f316c4e598eb8beb106e4dcfab3f5ab5edd0316e4c011bcc2f66379c3e0c70d6422a89ccd5d817d620dd9b9f567d417e344d393f1aba045e86c46596a4138deee052139b4fb12fac41bc373eacf90f0ec14748e0b82bd5833580c18b7021c8201ca1273843635f5883796e7d59f11e1d828e91c17057ab066b018316e043904039424e7086c6beb106f2dcfab3e23c3b051d2382e0af560cd603062dc087208072849ce10d8d7d620de5b9f567c4048862e71d68441678dfd3fe02b9a908ed43410639c3bf1bfac41bcc73eacf870910c5ce3ad0882cf1bfa7fc05735211da86820c73877e37f5883798e7d59f0e12218b9c75a11059e37f4ff80ae6a423b50d0418e70efc6feb106f31cfab3e1c24431738eb4220b3c6fe9ff015cd48476a1a0831ce1df8dfd620de639f567c3848862e71d68441678dfd3fe02b9a908ed43410639c3bf1bfac41bcc73eacf8701d1eb590836b0586e8c0a7b84d93491854aa7cc4387987805883798f7d59f0df3a3d6b2106d60b0dd1814f709b269230a954f98870f30f00b106f31efab3e1be008d2eeee40e98d36fc8c6d92cab4c5bfeec4f0de1e7c202620de63ef567c37b011a5dddc81d31a6df918db2595698b7fdd89e1bc3cf8404c41bcc7deacf86f60234bbbb903a634dbf231b64b2ad316ffbb13c37879f0809883798fbd59f0dec046977772074c69b7e4636c9655a62dff762786f0f3e1013106f31f7ab3e1bd808d2eeee40e98d36fc8c6d92cab4c5bfeec4f0de1e7c202620de63ef567c37b011a5dddc81d31a6df918db2595698b7fdd89e1bc3cf8404c41bcc7deacf86f60234bbbb903a634dbf231b64b2ad316ffbb13c37879f0809883798fbd59f0dec046977772074c69b7e4636c9655a62dff762786f0f3e1013106f31f7ab3e1bd8019414790e4fb5627958d0124a1aa83f9989169dee7c3a6630de63ef667c37aff32828f21c9f6ac4f2b1a0249435507f33122d3bdcf874cc61bcc7deccf86f5fe65051e4393ed589e5634049286aa0fe66245a77b9f0e998c3798fbd99f0debfc561c9533fe3d33f4792e311d03b247c770cdaaf43e1ed7196f31f7b43e1bd7f7384b8314d2dceaa0bf228a31fdc2b7898dddb1e57c3f5233de63ef697c37afed70970629a5b9d5417e451463fb856f131bbb63caf87ea467bcc7ded2f86f5fda6d40650021d62d3ac95050bfed690620e3b92392f0feecd0798fbda6f0debfb3669322ad1a0edd2d5f66c977d130343c73b4a322e1ff7da1f31f7b4ee1bd7f6559389e070a803d128b93bae798be907393aba242c4009f44e63ef69ec37afec93e8394baeb62fcdce3ed9dc727db48e1d399a0828802e28acc7ded3e86f5fd9109198222ad287c7194a163864614b9be53759d021007691698fbda7e0debfb21123304455a50f8e32942c70c8c29737ca6eb3a04200ed22d31f7b4fc1bd7f6422466088ab4a1f1c652858e191852e6f94dd67408401da45a63ef69f837afec8448cc11156943e38ca50b1c3230a5cdf29bace810803b48b4c7ded3f06f5fd9081daa7ad7a8ea49d116dc605c57a9c3dfe39c2c1e0078356a8fbda7e1debfb20f3b54f5af51d493a22db8c0b8af5387bfc738583c00f06ad51f7b4fc3bd7f641e02bc440b7a0ba9fc2837a9695505377a3ab30c7501e279ab3ef69f887afec83b05788816f41753f8506f52d2aa0a6ef4756618ea03c4f3567ded3f10f5fd90760af1102de82ea7f0a0dea5a55414dde8eacc31d40789e6acfbda7e21ebfb20ec15e2205bd05d4fe141bd4b4aa829bbd1d59863a80f13cd59f7b4fc43d7f641d82bc440b7a0ba9fc2837a9695505377a3ab30c7501e279ab3ef69f887afec83b05788816f41753f8506f52d2aa0a6ef4756618ea03c4f3567ded3f10f5fd907603b235b8b594d01c1dab0824d37ac06895905793d78a00ed0bda7e21fbfb20ebf02590fc388fc863b82272c9265b6350d5e4d4e77f141c1a27b4fc4407f641d7d04b21f8711f90c77044e5924cb6c6a1abc9a9cefe2838344f69f8880fec83afa09643f0e23f218ee089cb24996d8d435793539dfc5070689ed3f1101fd9075f412c87e1c47e431dc113964932db1a86af26a73bf8a0e0d13da7e2203fb20ebe82590fc388fc863b82272c9265b6350d5e4d4e77f141c1a27b4fc4407f641d7d04b21f8711f90c77044e5924cb6c6a1abc9a9cefe2838344f69f8880fec83afa02256498f1584119856914c9163eb6b523f95f9f950720c9fd3f11020d9075f3f44ac931e2b082330ad229922c7d6d6a47f2bf3f2a0e4193fa7e22041b20ebe7e156b7ee92c72c919270b5a3d860bd543aa9a43e241c9d6804fc44084641d7cfb2ad6fdd258e592324e16b47b0c17aa87553487c48393ad009f888108c83af9f655adfba4b1cb24649c2d68f6182f550eaa690f8907275a013f1102119075f3ec376e4ff639f8cb810520f9e426bcd21801147b0f0e5058037e22042420ebe7d76edc9fec73f197020a41f3c84d79a4300228f61e1ca0b006fc44084841d7cfae69cb9885be45b0bbe14a0f889151705ab09448393943040ef888109183af9f5b5fa989b852ede42f8f5a4709190108b00d6aec6f7287ac1ef1102124075f3eb54b656c1d7c3e4b16eb7ab60a2860395ac71834dbe510fc3ee22042490ebe7d6922dd30e7cedf18e5a3bb940c471e9ab03a72c5b4ca239c7ec44084931d7cfad145ba61cf9dbe31cb477728188e3d356074e58b69944738fd888109263af9f5a217871c4c11dee64e5bb4782912d892bb960d72d0289015fc1102124d75f3eb432f0e389823bdcc9cb768f05225b125772c1ae5a051202bf82204249aebe7d6865e1c7130477b99396ed1e0a44b624aee5835cb40a24057f044084935d7cfad0c484b3b0d6559b52aaa69e9408d22bdd75cadf27e448253e18810926caf9f5a171ca8cec7a115ed0d2199fa7910a3a3a9659e40f989064bc4102124da5f3eb42d39519d8f422bda1a4333f4f221474752cb3c81f3120c9788204249b4be7d685a72a33b1e8457b4348667e9e4428e8ea5967903e624192f10408493697cfad0b47158cee9df11eb20d995fbc07b7b4545d93463c948340221810926d3f9f5a1676ec3f680948658f97ff21f78ed54b2865eab238f9069a84402124da8f3eb42cd699a45adff6f34aaccaa66e9d1078d076998a31c20d4f48904249b52e7d685995f46e408d540ec0d661af5cb986d42097f73a23541ab8d13084936a6cfad0b314aa020be80e45ad298fc138f2738ac0dab29a0678358be2710926d4e9f5a166121529a29d82b385cfebe4f1644cf801602959ccc06b3204f2124da9e3eb42cc142a53453b05670b9fd7c9e2c899f002c052b39980d66409e4249b53c7d685982115cc154370f642bc7bf6451099c2852b698cf2d1ace253d84936a79fad0b30322b982a86e1ec8578f7ec8a2133850a56d319e5a359c4a7b0926d4f3f5a1660645730550dc3d90af1efd91442670a14ada633cb46b3894f6124da9e7eb42cc0c16f8634e8edda4160ac14a80433f6a906108d565d672cded249b53d0d68598172df0c69d1dbb482c15829500867ed520c211aacbace59bda4936a7a1ad0b302e5be18d3a3b7690582b052a010cfdaa418423559759cb37b4926d4f435a16605c43d573214d4fa36822d07bfa10597c7db489072bb398136a24da9e87b42cc0b713bd3eef7101c98812671fec171120f615546a546731cad549b53d106859816d277a7ddee203931024ce3fd82e2241ec2aa8d4a8ce6395aa936a7a20d0b302da4ef4fbbdc4072620499c7fb05c4483d85551a9519cc72b5526d4f441a16605b429fc50285e70cef85fff2758aee72fab56e5aea0398ffaab4da9e88442cc0b6753f8a050bce19df0bffe4eb15dce5f56adcb5d40731ff5569b53d108859816ce3403994e5025be994cc2c55ab1fae6a807d9167de6418eae36a7a2120b302d9b6807329ca04b7d3299858ab563f5cd500fb22cfbcc831d5c6d4f442416605b365c20bde616f97d1cffd13d62be49c29acba6b5f49907deb9da9e88492cc0b66b4453d47904557cf1cc68a2bd72f1ad30438fc7e632116174b53d109359816cd514ba019edf0d7c9b65976d72dc41825b3361ebc9642466ea6a7a2127b302d9a92974033dbe1af936cb2edae5b88304b666c3d792c848cdd4d4f4424f6605b35252e8067b7c35f26d965db5cb7106096ccd87af2590919ba9a9e8849ecc0b66a431e265a3cece6792f981938ed86a3ad44751ba482124db5453d1093e9816cd4763c4cb479d9ccf25f303271db0d475a88ea374904249b6a8a7a2127d302d9a8e539bef3c119c2103b2cc76335807134bc989451d849511524f4424fb605b351b334a3724f99ac4bf325f145ea66c4e923f54e638092bc6a59e8849f7c0b66a3566946e49f335897e64be28bd4cd89d247ea9cc7012578d4b3d1093ef816cd46a593b3540bccd95b496427972900f6243a995f4dd24b0be977a2127e002d9a8d33e88c32e4ffdae20f94b1add167cec81ff6e45b74963212ff4424fc105b351a50923df09765ddef9bf5c5db2235800feab1ee76b92c7e660e8849f830b66a3491247be12ecbbbdf37eb8bb6446b001fd563dced7258fccc1d1093f0616cd4692248f7c25d9777be6fd7176c88d6003faac7b9dae4b1f9983a2127e0c2d9a8d24491ef84bb2eef7cdfae2ed911ac007f558f73b5c963f33074424fc185b351a481e5049443c407253c28c031a2bde37e55e30d2b62c800a0f8849f831b66a348f3ca092887880e4a78518063457bc6fcabc61a56c5900141f1093f0636cd4691e05537dbdc7644c06d6f63460a5d707902505a6d5b201cc3f2127e0c7d9a8d23b0aa6fb7b8ec8980dadec68c14bae0f204a0b4dab6403987e424fc18fb351a476154df6f71d91301b5bd8d182975c1e4094169b56c80730fc849f831f66a348ec2a9bedee3b226036b7b1a3052eb83c81282d36ad900e61f9093f063ecd4691d85537dbdc7644c06d6f63460a5d707902505a6d5b201cc3f2127e0c7d9a8d23b036821065c2ec0392ab8cb40cb13f19ff4cf736b3403b2be524fc18fc351a475f6d0420cb85d8072557196819627e33fe99ee6d66807657ca49f831f86a348ebe661a9a43e21291027af8f82abb5a8ff7e01f36ca00ee539593f063f1d4691d7b58478d349a87a4bcc2b8184d6d1347ea6c80c99101de4b2c27e0c7e4a8d23af53ca173160b71cc3152365892d084b7cf8543ef1f03be3a594fc18fca51a475e905553ed8ed461b1a7132d91d97679799b6ca3a3b077e18b39f831f95a348ebd10aaa7db1da8c3634e265b23b2ecf2f336d9474760efc31673f063f2b4691d7a21554fb63b5186c69c4cb64765d9e5e66db28e8ec1df862ce7e0c7e568d23af442aa9f6c76a30d8d38996c8ecbb3cbccdb651d1d83bf0c59cfc18fcad1a475e885553ed8ed461b1a7132d91d97679799b6ca3a3b077e18b39f831f95a348ebd1036ba33ca7f25e605f3214baae3511b318589a35defc4ba74f063f2b5691d7a1f6d746794fe4bcc0be6429755c6a236630b1346bbdf8974e9e0c7e56ad23af43e66fb27d6d2fa1acf994b56a383a294c0c268e974bf148dd4c18fcad6a475e87b5a08a85a7c56b856ff5cd53efda3517c31142ee67e2abfaa831f95ae48ebd0f54023a961cf0ff365cb7fd275f1a4caf30e6ab9c9fc572356063f2b5d91d7a1e90c59ab707482698363c5cce3d9a7bde0c917cf90f8afeaad0c7e56bc23af43d118b356e0e904d306c78b99c7b34f7bc1922f9f21f15fd55a18fcad78475e87a23166adc1d209a60d8f17338f669ef783245f3e43e2bfaab431f95af08ebd0f4462cd5b83a4134c1b1e2e671ecd3def0648be7c87c57f556863f2b5e11d7a1e8851ad0fb41e891aee0922f63590da06073dbf550c8b004ed1c7e56bc33af43d0f2f6c78151374b893df0c14631812340927c10616160241a48fcad78775e87a1d5ed8f02a26e97127be1828c6302468124f820c2c2c0483491f95af0eebd0f43a49c439012435650748f6798456a6f81f4b467455580aaa933f2b5e1ed7a1e8731f9acaaf1ecd4cc65eb31b00a3ac183942cf44a7b016f9277e56bc3eaf43d0e53f35955e3d9a998cbd66360147583072859e894f602df24efcad787d5e87a1ca0a7d83695197b5d1479293fa850e88dfb77f6e9bc05d889ef95af0fbbd0f439314fb06d2a32f6ba28f2527f50a1d11bf6efedd3780bb113df2b5e1f77a1e872629f60da5465ed7451e4a4fea143a237eddfdba6f0176227be56bc3eef43d0e4c53ec1b4a8cbdae8a3c949fd4287446fdbbfb74de02ec44f7cad787dde87a1c9833ea8f41efdddfcc45ef67a04746b5f6243945b905da2df095af0fbcd0f4392f67d51e83dfbbbf988bdecf408e8d6bec48728b720bb45be12b5e1f79a1e8725e5bbc95b495da01e8e483c6791378ffd33d2772e1176a5bc356bc3ef443d0e4bb438b84160216868995cdb4ea1d5027a1269141bf2ed65b87ad787de987a1c975132960d8da8f8fcaf86191cc30fe773cf964df7b5dae5b105af0fbd40f4392e92652c1b1b51f1f95f0c3239861fcee79f2c9bef6bb5cb620b5e1f7a81e8725d24ca583636a3e3f2be1864730c3f9dcf3e5937ded76b96c416bc3ef503d0e4ba4255d5f73aadf010f8fd2b6597e51e1e2776957d7ed747c83d787dea17a1c97474ababee755be021f1fa56cb2fca3c3c4eed2afafdae8f907af0fbd42f4392e8e2187d67b81de86f60c11015defa5af8489e7bb5cb5d396105e1f7a86e8725d1b430facf703bd0dec182202bbdf4b5f0913cf76b96ba72c20bc3ef50dd0e4ba361231b29adddc9e8ffd0a2d6fb4f4e60cd3e1496fd74ffc42787dea1ca1c9746b24636535bbb93d1ffa145adf69e9cc19a7c292dfae9ff884f0fbd4394392e8d648c6ca6b77727a3ff428b5bed3d398334f8525bf5d3ff109e1f7a8728725d1ac1d9fed83c5477737b51793759e0558614b4ca77bba818614c3ef50e60e4ba3573b3fdb078a8eee6f6a2f26eb3c0ab0c296994ef775030c2987dea1cc1c9746ae02920ebbeb805f96a12475ce6e73897fd974f9ebea07bc540fbd4399392e8d5b05241d77d700bf2d4248eb9cdce712ffb2e9f3d7d40f78a81f7a8732725d1ab60a483aefae017e5a8491d739b9ce25ff65d3e7afa81ef1503ef50e64e4ba356c149075df5c02fcb50923ae73739c4bfecba7cf5f503de2a07dea1cc9c9746ad82920ebbeb805f96a12475ce6e73897fd974f9ebea07bc540fbd4399392e8d5b05241d77d700bf2d4248eb9cdce712ffb2e9f3d7d40f78a81f7a8732725d1ab60309607a7b67a686015e39b93934087f10980d6f781f0b904ef50e64f4ba356bf612c0f4f6cf4d0c02bc7372726810fe21301adef03e17209dea1cc9e9746ad7e4e6a774bb04c243824549646436047bed245b7db07c48814bd43993e2e8d5afb28e7474436facb28156f54847d1eb77850cdcbb30f8ab42a7a87327d5d1ab5f551ce8e886df596502adea908fa3d6ef0a19b97661f156854f50e64faba356bea2faf75bdb24daf5822837a09ead905dbef798ac93e2c74aaea1cc9f6746ad7d35f5eeb7b649b5eb04506f413d5b20bb7def315927c58e955d43993ece8d5afa64ad02fa39f99401856d4101fa1c23f6a6a288721f8b376aca87327dad1ab5f4b21b2b7f4159502e87a6e483739e2a6cf80936a40f168915a50e64fb6a356be9543656fe82b2a05d0f4dc906e73c54d9f0126d481e2d122b4a1cc9f6d46ad7d2a12dd387d2cb68e59b67f48d4dde8c338ae900500c5a3e96a43993edb8d5afa5325ba70fa596d1cb36cfe91a9bbd186715d200a018b47d2d487327db71ab5f4a64b74e1f4b2da3966d9fd235377a30ce2ba401403168fa5a90e64fb6e356be94c22fc1c963c16f58580c06e9ee5a441c020c284032d20ef531cc9f6dd6ad7d29745f8392c782deb0b0180dd3dcb488380418508065a41dea63993edbad5afa52e1802cb05c6be58cdcfc7e2738cef2efb2f4c6c09b485614d7327db76ab5f4a5b3005960b8d7cb19b9f8fc4e719de5df65e98d813690ac29ae64fb6ed56be94b6600b2c171af963373f1f89ce33bcbbecbd31b026d2158535cc9f6ddaad7d296c4c28b0db0c5549264b053b945dd79fd426a5bc4aa42cae6c993edbb65afa52d72463ba62ef0d150462d09f20b20d67a2f98dd492485b00da327db76db5f4a5ad48c774c5de1a2a08c5a13e41641acf45f31ba92490b601b464fb6edb6be94b5a1da142389296d6c95808a47abe93c6869279ae46216da769c9f6ddb7d7d296b33b428471252dad92b01148f57d278d0d24f35c8c42db4ed393edbb6fafa52d660297618f20bddddd2ce8b9e2f0ad4214f629151585b841a827db76e05f4a5acb052ec31e417bbbba59d173c5e15a8429ec522a2b0b7083504fb6edc0be94b5960a5d863c82f77774b3a2e78bc2b50853d8a4545616e106a09f6ddb817d296b2c14bb0c7905eeeee96745cf17856a10a7b148a8ac2dc20d413edbb702fa52d658297618f20bddddd2ce8b9e2f0ad4214f629151585b841a827db76e05f4a5acb052ec31e417bbbba59d173c5e15a8429ec522a2b0b7083504fb6edc0be94b596031eabc7505d9fa0306f4a0b421aead383687a15e6e120e0af6ddb818d296b2bf63d578ea0bb3f4060de94168435d5a706d0f42bcdc241c15edbb7031a52d657e53bd4a80edca6ac3e898aac87d18dcdb8660e176b849dc2cdb76e0644a5acafb338cedaeb1f7583f9df77d88f08fe1b1b9041eea70955c5ab6edc0c994b595f56719db5d63eeb07f3beefb11e11fc36372083dd4e12ab8b56ddb8193296b2bea5a460f679e3fe3b644a41e1bb89daec19052d7a6c257156bdbb7032752d657d3409e777c12e24a24560e642f6799857dcce80b4a84afced8b76e064fa5acafa50d4f47a4fc27170078e2f056c59132f646127292096141b26edc0ca04b595f491a9e8f49f84e2e00f1c5e0ad8b2265ec8c24e52412c28364ddb8194096b2be92353d1e93f09c5c01e38bc15b1644cbd91849ca48258506c9bb7032812d657d246a7a3d27e138b803c71782b62c8997b2309394904b0a0d9376e065025acafa486106d2fc98d3f2bf5af52d644f71575f0d69851d9615bf27edc0ca05b595f48f4e1ffea6080a683682b082c09540d6b8c71566382c2d2250db81940c6b2be91d285255f8e6775324d2272d7920dfd56c3a6d286d585be8a2b7032819d657d23950a4abf1cceea649a44e5af241bfaad874da50dab0b7d1456e065033acafa4722d5bb090703fcf4b1562dddc79dd7dab95f6fdb26171468bdc0ca068595f48e35ab76120e07f9e962ac5bbb8f3bafb572bedfb64c2e28d17b81940d0b2be91c641811aee9761bfe422519f69ddd41ea9041e52c685c6be30703281a2657d238b0f148e8a05260280116966cbb206654cb47f018a0b8f2061e0650345cafa47151e291d140a4c050022d2cd97640cca9968fe0314171e40c3c0ca068b95f48e2a3c523a2814980a0045a59b2ec8199532d1fc06282e3c818781940d172be91c5404b6ccfcff9296b858115e5586915260503a684d5c7aa71003281a2f57d238a7096d99f9ff252d70b022bcab0d22a4c0a074d09ab8f54e200650345eafa4714e12db33f3fe4a5ae1604579561a45498140e9a13571ea9c400ca068bd5f48e29c25b667e7fc94b5c2c08af2ac348a930281d3426ae3d538801940d17abe91c5384b6ccfcff9296b858115e5586915260503a684d5c7aa71003281a2f57d238a7022ebf84cc8b559c2cef1f2a8c8887404b38f65a88f568601650345ebfa4714df45d7f099916ab3859de3e5519110e809671ecb511ead0c02ca068bd7f48e29be17c239dff937e9c3088df29b187ff80d7a7ff29f3d5bbc06940d17b0e91c537b2f8473bff26fd386111be53630fff01af4ffe53e7ab7780d281a2f61d238a6f65f08e77fe4dfa70c2237ca6c61ffe035e9ffca7cf56ef01a50345ec3a4714dec4a2427aca021d0d01135bcd0ba5de8668041f0f6eadf8435a068bd8848e29bd7205aa80616a62457ef31a1996b19f8c7acc63dead5c0ac6c40d17b1191c537ad40b5500c2d4c48afde634332d633f18f598c7bd5ab8158d881a2f623238a6f5a0d7cf8c530fb1417898cae5da2c60b195f5b53a8570455b20345ec474714deb31af9f18a61f6282f13195cbb458c1632beb6a750ae08ab64068bd88e8e29bd6635f3e314c3ec505e2632b9768b182c657d6d4ea15c1156c80d17b11d1c537acc6be7c62987d8a0bc4c6572ed163058cafada9d42b822ad901a2f623a38a6f59863e1e4ffe613c43065910dd222bed990a1f796827046ff21345ec475714deb2f53d622aca28a0b1897e8439c3bdbdb1bf0318901e08fa24368bd88ebe29bd65d33be9e061b7698e8fc96af306e15de328ca56e00c120e887d17b11d8c537acb9677d3c0c36ed31d1f92d5e60dc2bbc65194adc018241d10fa2f623b18a6f59725b0cd0c5443ce65bbf20e4b9aeb5a0c4ded814000485462045ec476414deb2e3422bfa375edc4f6f4b07f16b53c9698469f283fd090c30418bd88ec929bd65c5106a4d1b941b219662d60ace9df0fb03802763f7121a048417b11d93537acb8920d49a372836432cc5ac159d3be1f607004ec7ee243409082f623b26a6f5971241a9346e506c86598b582b3a77c3ec0e009d8fdc486812105ec4764d4deb2e240f64c189773b8f6ae3767e6ce5e60016ad7d7bb590d1c821bd88ec9b9bd65c471ec98312ee771ed5c6ecfcd9cbcc002d5afaf76b21a390437b11d93737acb88e3d930625dcee3dab8dd9f9b39798005ab5f5eed643472086f623b26e6f59711c073864f8903efe0ee87a1b5f258e28b0182e39a9868fe50eec4764dddeb2e2370e70c9f1207dfc1dd0f436be4b1c5160305c73530d1fca1dd88ec9bbbd65c46e1ce193e240fbf83ba1e86d7c9638a2c060b8e6a61a3f943bb11d93777acb88dc39c327c481f7f07743d0daf92c714580c171cd4c347f2877623b26eef59711b873864f8903efe0ee87a1b5f258e28b0182e39a9868fe50eec4764dddeb2e2370731ef7bede424494dc0993dca8233dfdb209912dd1fe45de88ec9bbcd65c46df7250482a92e70be184d94fb146a4a3f610557e58a3fe2fbe11d9377aacb88dbd70b2e901fc309a7ad678c75a83a76fe6cced58ae47fe037d23b26ef659711b796d782ab0cec3b7ad79b7b6acfdad07c8461d0d598ffdaafb4764ddedb2e236f16702ae0e73e9f212c0359551f1b8378b387c76b01ffcf9f78ec9bbdc65c46de15a17b4c9be3666dd4d31529bd9ce97111d3b495d3ffb97f01d9377b9cb88dbc14041c24052cf50726728cd2fa9fb561ce6b8eeb77ff8d3e13b26ef749711b7810c95dd2d7c01239c9b17c2574a54d43479b4396bfff34bc3764ddeea2e236f01192bba5af8024739362f84ae94a9a868f36872d7ffe69786ec9bbdd45c46de02325774b5f0048e726c5f095d295350d1e6d0e5afffcd2f0dd9377ba8b88dbc0464aee96be0091ce4d8be12ba52a6a1a3cda1cb5fff9a5e1bb26ef751711b780855702b849674bc817e424d6c9bab6b424785f2bcff36603864ddeea3e236f00f36f2afb6034bfbbac94ac2d12db4fe7f3b4e4176fe6e6471c9bbdd48c46de01d6de55f6c0697f775929585a25b69fcfe769c82edfcdcc8e39377ba9188dbc03a67dd1784e39271a2f1f1333cad3221f7997b61d8f9bb35c826ef752411b780735bcc87b69d8765fdb0a88e7150c26be9df391faef3780f914ddeea49236f00e543ab681a11714eb32e1744da97e2ffce6ab49b5ae6f1c3239bbdd49346de01c9136928e0f945201e28f4b1ad2624279781ab92b2cde52a48377ba9278dbc039126d251c1f28a403c51e9635a4c484f2f035725659bca54906ef7524f1b7807224da4a383e5148078a3d2c6b498909e5e06ae4acb3794a920ddeea49e36f00e44275b9fb4a08b83a9146bb561277f64b6b99ef1936f2af642bbdd493d6de01c874eb73f694117075228d76ac24efec96d733de326de55ec8577ba927adbc0390e2980d77f5890915c1e74fd7c945bbad592be224abcad7d0bef7524f6b780721b5301aefeb12122b83ce9faf928b775ab257c4495795afa17deea49ed6f00e4363215b6aa38a4c828469a1dea47cd1350f73ae527f2b79830bdd493dbde01c86b642b6d54714990508d343bd48f9a26a1ee75ca4fe56f30617ba927b7bc0390d654693355b8f5a358e72e9fa11592753e892df09ccae004c3f7524f70780721ab34e4bf58484dc9699b23673a21831277be9e3d3695c1ad88eea49ee1f00e435569c97eb0909b92d33646ce74430624ef7d3c7a6d2b835b11dd493dc3e01c86aa5fa5560df799a85e3953c4e07c6a71d9a6bb50d757085a24ba927b88c0390d534b5d04c8c595d3743f6db1b8ef330badf9b8fdabae12584a7524f71280721aa522cc623e618e29a04ba18b69d4c43f569fb457545c265495ea49ee2600e435494598c47cc31c5340974316d3a9887ead3f68aea8b84ca92bd493dc4c01c86a921743e1a65c9b2938fb4c559f496f25552b13b94e709af658a927b8990390d5232e87c34cb9365271f698ab3e92de4aaa5627729ce135ecb1524f71320721aa465d0f8699726ca4e3ed31567d25bc9554ac4ee539c26bd962a49ee2640e43548c463165dfbb3bcc7fa728d4f241d752a404e0267084d956c6493dc4c91c86a9171875246c4cda1bb71b17d1dc7a0ccd42b602a8de09b4518d927b8993390d522d30ea48d899b4376e362fa3b8f4199a856c0551bc1368a31b24f71326721aa45a61d491b133686edc6c5f4771e833350ad80aa37826d1463649ee264ce43548b44fbb7c0f3d336070a584b6dbc6c492105c57a2ed4da4306d93dc4c9ac86a91672b8950cb50c9439917cf95af83e74c1b64f1a1d79b4a04dc27b8993690d522cd5712a196a19287322f9f2b5f07ce9836c9e343af369409b84f71326d21aa459a3a379bda1987911c2c047eb605fb58684008e35b6d29b7719ee264db43548b33008190610971a4f024cf25640254d8cb2c5422b3da5512e43dc4c9b786a91665010320c212e349e0499e4ac804a9b19658a84567b4aa25c87b89936f0d522cca0206418425c693c0933c95900953632cb1508acf69544b90f71326de1aa45994040c83084b8d278126792b2012a6c65962a1159ed2a89721ee264dbc3548b32808190610971a4f024cf25640254d8cb2c5422b3da5512e43dc4c9b786a91665010320c212e349e0499e4ac804a9b19658a84567b4aa25c87b89936f0d522cca0206418425c693c0933c95900953632cb1508acf69544b90f71326de1aa45994040c83084b8d278126792b2012a6c65962a1159ed2a89721ee264dbc3548b32800da2b9b6480772dc9beb8bfa4b36f32700650fd75514883ec4c9b787a91664ff1b45736c900ee5b937d717f4966de64e00ca1faeaa29107d89936f0f522cc9fe368ae6d9201dcb726fae2fe92cdbcc9c01943f5d545220fb1326de1ea45993fc6d15cdb2403b96e4df5c5fd259b7993803287ebaa8a441f6264dbc3d48b327f8663df41156d9b0818b7ee79ca9cd5a6ab2935972514a27ed4c9b787b91664fef588e40cf8415e3bae3c3f73149f8dcd011690ee1a295f3db9936f0f822cc9fdd3d2eda4bde8e4a2d944e165a8a4fe19acf1479c0452d8bb8326de1f145993fb906700d44937f1712f56254ad0afdeb304a6b4f7d8a5cbb7164dbc3e38b327f710ce01a8926fe2e25eac4a95a15fbd66094d69efb14b976e2c9b787c71664fee219c035124dfc5c4bd58952b42bf7acc129ad3df62972edc5936f0f8e2cc9fdc433806a249bf8b897ab12a56857ef5982535a7bec52e5db8b26de1f1c5993fb886700d44937f1712f56254ad0afdeb304a6b4f7d8a5cbb7164dbc3e38b327f7105a14013f464565167910bd99561b8e03f9ac4bae4b99122d9b787c72664fee1f403a5b2b62ed4ce4bee7a32aa29544029f9af3599733c85c36f0f8e5cc9fdc3d0c870f039c3d1c814a956e4d3b88afffeb7842b02e6934b96de1f1cc993fb879190e1e07387a3902952adc9a77115fffd6f085605cd26972dbc3e399327f70f2321c3c0e70f472052a55b934ee22bfffade10ac0b9a4d2e5b787c73264fee1e46438781ce1e8e40a54ab7269dc457fff5bc215817349a5cb6f0f8e64c9fdc3c8548348e69a344acc761d0ccbaee927f963c686ffe694ef97de1f1cca93fb878f3518ea7a0acb1850b900418f543077ed73cf69fccd2b8330bc3e399627f70f1d6a31d4f4159630a17200831ea860efdae79ed3f99a570661787c732c4fee1e3a60760295018ee3fab0c72e35472007b07b8003f034afb0c3f0f8e6599fdc3c734cfe5dd6d9804aad2e548462849e375ba34263dd69610588e1f1ccb43fb878e5260f145a89631812296f30bcff9a96b1f2c723b7d2c3af12c3e399697f70f1c94c1e28b512c6302452de6179ff352d63e58e476fa5875e2587c732d2fee1e392244eaa16fbeee3007282eaebf4c882c2775eeadc4b10604c0f8e65a6fdc3c723489d542df7ddc600e505d5d7e9910584eebdd5b89620c0981f1ccb4dfb878e461d4d0108c61e0eb996d1d3a7c980330489be076e2c4325313e39969cf70f1c8b3a9a02118c3c1d732da3a74f93006609137c0edc58864a627c732d39ee1e391601465ccfeedabd9e280d76971c5ef40cd33a79b5b10e38c5f8e65a74dc3c722b028cb99fddb57b3c501aed2e38bde819a674f36b621c718bf1ccb4e9b878e4560519733fbb6af678a035da5c717bd0334ce9e6d6c438e317e39969d370f1c8ac0a32e67f76d5ecf1406bb4b8e2f7a06699d3cdad8871c62fc732d3a6e1e391581465ccfeedabd9e280d76971c5ef40cd33a79b5b10e38c5f8e65a74dc3c722b028cb99fddb57b3c501aed2e38bde819a674f36b621c718bf1ccb4e9b878e4560519733fbb6af678a035da5c717bd0334ce9e6d6c438e317e39969d370f1c8ac02f40c0a443c151cbd381738625d82e64497f36d5871e06fd732d3a6f1e39157f5e8181488782a397a702e70c4bb05cc892fe6dab0e3c0dfae65a74de3c722afe49155b3de567c9e71acbf6108dbee18bd23f37531c79bff6ccb4e9bd78e455fb1e3d0f28a1321686025e141911dbeb1250c0caa338f523ee9969d37bf1c8abf53c7a1e5142642d0c04bc283223b7d624a181954671ea47dd32d3a6f7e39157ea0506954f5b2adccfd63e785c3dcdd443ef458689e3d633bb65a74df0c722afd30a0d2a9eb655b99fac7cf0b87b9ba887de8b0d13c7ac6776cb4e9be18e455fa6141a553d6cab733f58f9e170f737510fbd161a278f58ceed969d37c31c8abf4c2834aa7ad956e67eb1f3c2e1ee6ea21f7a2c344f1eb19ddb2d3a6f8639157e98506954f5b2adccfd63e785c3dcdd443ef458689e3d633bb65a74df0c722afd302ce502983bbe1cb29495337fb018b07894f32d397ac81b6db4e9be19e455fa5f59ca0530777c3965292a66ff603160f129e65a72f59036db69d37c33c8abf4be3fa6630dc55af5821f1af5f6b6c0e9dd000f10e2eb2211b7d3a6f8689157e97b0b5f1ec861186dbc0afc13e563dffbb4ac607dc2d645c770a74df0d222afd2f516be3d90c230db7815f827cac7bff76958c0fb85ac8b8ee14e9be1a4455fa5ea2d7c7b218461b6f02bf04f958f7feed2b181f70b59171dc29d37c3488abf4bd45af8f64308c36de057e09f2b1effdda56303ee16b22e3b853a6f8691157e97a842044532e7e95e787c87664e345de345724a382a645e1b0b74df0d232afd2f4f101ae312a6353fa8c5d4f4945f19ee8590d6cc51c8bdda17e9be1a4755fa5e9d2035c6254c6a7f518ba9e928be33dd0b21ad98a3917bb42fd37c348eabf4bd3a406b8c4a98d4fea31753d2517c67ba16435b314722f7685fa6f8691d57e97a740ce97142080c7ffdfb6dcc9aef2d9c2732f8be8b45f074c04df0d23bafd2f4e719d2e2841018fffbf6db9935de5b384e65f17d168be0e9809be1a4775fa5e9ce33a5c5082031fff7edb7326bbcb6709ccbe2fa2d17c1d30137c348eebf4bd39c674b8a104063ffefdb6e64d7796ce13997c5f45a2f83a6026f8691dd7e97a7385aa96ccd572a829783a2f1a6e937ea6ddbce44b15f08f005df0d23bbfd2f4e6f4165324784b787e6d40c0b45c8cdfcd663dee55fbe13840cbe1a4778fa5e9cdd0edcbd3bdfd1928574de3e8387fa21a7740026bc7c28ac1a7c348ef2f4bd39b91db97a77bfa3250ae9bc7d070ff4434ee8004d78f8515834f8691de5e97a73723b72f4ef7f464a15d378fa0e1fe8869dd0009af1f0a2b069f0d23bcbd2f4e6e402f8428bd4ef16e373b81c14362f35364c4391e0e14704d4e1a47798a5e9cdc705f08517a9de2dc6e77038286c5e6a6c988723c1c28e09a9c348ef314bd39b8e0be10a2f53bc5b8dcee07050d8bcd4d9310e4783851c13538691de6297a7371c17c2145ea778b71b9dc0e0a1b179a9b2621c8f070a3826a70d23bcc52f4e6e382f8428bd4ef16e373b81c14362f35364c4391e0e14704d4e1a47798a5e9cdc705f08517a9de2dc6e77038286c5e6a6c988723c1c28e09a9c348ef314bd39b8e04a22fba212283b94bacd2d05822b758dbd26d43551c2d939691de62a7a7371bf20584ff0fab2f9e142608202fab5131626900467a3875673d23bcc55f4e6e37d40b09fe1f565f3c284c10405f56a262c4d2008cf470eace7a47798abe9cdc6fa0d739870c12e6a3cd6483003e132745346826d9b8e1efdd048ef3158d39b8df31ae730e1825cd479ac906007c264e8a68d04db371c3dfba091de62b1a7371be635ce61c304b9a8f35920c00f84c9d14d1a09b66e387bf74123bcc5634e6e37cc6b9cc386097351e6b241801f0993a29a34136cdc70f7ee8247798ac69cdc6f98634bdfb8e94926853149283609856d2f146935b5e1f181058ef3158e39b8df2f52aa181ea8f4cfc22f58786409690258d514c768c3e4a60c1de62b1d7371be5d316688ea284c223c2b7718c009302cac566beace87caf0193bcc563be6e37cb962cd11d45098447856ee318012605958acd7d59d0f95e0327798ac77cdc6f97251ac7c5577930ba87aa28af81b1edaac05f207371f2d6465ef3158f09b8df2e32f6b5157c5889a08c20b3de82c9bdd52b8266a6b3e5c6cccde62b1e2371be5c55ed6a2af8b11341184167bd05937baa5704cd4d67cb8d999bcc563c46e37cb8a49bf9e0bec84eadad4f31f98a8cd9d458cdc05a9f9735734798ac789dc6f97131f9194c4af6c586d76ac672947f96285c5fa6750f2e85269f3158f14b8df2e253f2329895ed8b0daed58ce528ff2c50b8bf4cea1e5d0a4d3e62b1e2971be5c4a0a58abbf9413e46da777c49d1643b211c42bf940cba2eda8cc563c53e37cb89314b1577f2827c8db4eef893a2c8764238857f2819745db5198ac78a7c6f971262962aefe504f91b69ddf1274590ec84710afe5032e8bb6a33158f14f8df2e24c52c55dfca09f236d3bbe24e8b21d908e215fca065d176d4662b1e29f1be5c498319d14a617a0c992444271c95a994916ef01f009ba307e8dc563c53f37cb892f633a294c2f4193248884e392b532922dde03e0137460fd1b8ac78a7e6f97125e5286ab4534e5a900ddcfef1d60c34c56684a1c23e8c39e38158f14fddf2e24bb311faf37402dd4b988660632b7e4c0a77cd69444d188e0712b1e29fcbe5c4975623f5e6e805ba97310cc0c656fc9814ef9ad2889a311c0e2563c53f97cb892ea50911589d719d59dee5e40c2d5f12a989f9cad10462525c5ac78a7f3f97125d32d3483c084962df3a982a97da2407d2beb7bb61d8c4bef8c58f14fe8f2e24ba55a690781092c5be7530552fb4480fa57d6f76c3b1897df18b1e29fd1e5c4974a40e467aee8bb3a8672d0cdee7f601caa5a3134733131623263c53fa4cb892e930ddb280aa7d8f7c4b267c3d4f51e614f60a4c4e362646865c78a7f4a97125d251bb650154fb1ef8964cf87a9ea3cc29ec14989c6c4c8d0cb8f14fe952e24ba4a376ca02a9f63df12c99f0f53d479853d8293138d8991a1971e29fd2a5c4974946ed940553ec7be25933e1ea7a8f30a7b0526271b1323432e3c53fa54b892e92869c4d95753f1ff02f342654748443cf0b68eaa3326482a5d78a7f4aa7125d24f5f9c0b5b7e4680bdb34af28686e6a1dc195fb0634c91f8bbf14fe955e24ba49d4b4a6f63d2ef8433335c0d05042b6bb2df01bcc399259578e29fd2acc497493922a737747c418b1e337e4201feb4ff606a45d584324ccef2c53fa55a892e9271454e6ee8f883163c66fc8403fd69fec0d48bab0864999de58a7f4ab5125d24e216af367ec768af309abf2ffff132257c5559b20dc934dfcc14fe956b24ba49c32d5e6cfd8ed15e61357e5fffe2644af8aab3641b9269bf9829fd2ad6497493865abcd9fb1da2bcc26afcbfffc4c895f15566c83724d37f3053fa55ac92e9270c418c0ca311a7fc3ca2bfa7f77fef53dd570fec6b49a8a261a7f4ab5a25d24e170f2a71f2f9b27b31124577e6f63ccfb55a6234d39352e8c44fe956b54ba49c2d1e54e3e5f364f662248aefcdec799f6ab4c469a726a5d1889fd2ad6a9749385a3ca9c7cbe6c9ecc44915df9bd8f33ed56988d34e4d4ba3113fa55ad52e9270b40565e844a3f65c405ef1e72fa844a5a57f5402999a98ea237f4ab5ab5d24e1670acbd08947ecb880bde3ce5f50894b4afea805333531d446fe956b56ba49c2ce1597a1128fd971017bc79cbea1129695fd500a666a63a88dfd2ad6ad7493859c2b2f42251fb2e202f78f397d42252d2bfaa014ccd4c7511bfa55ad5ae9270b38565e844a3f65c405ef1e72fa844a5a57f5402999a98ea237f4ab5ab5d24e167038cf6141552e0ac3ab030decfef2dcaa96c2af30531ee870e956b56ca49c2cdf719ec282aa5c158756061bd9fde5b9552d855e60a63dd0e1d2ad6ad9493859be6f4fddb22b1aadc678d25fabf2299aa5074d18be4c7d45c4a55ad5b39270b37b6ab214112c97de44be6ae74fdab15d44badc8d7998fc2f8a4ab5ab6824e166f5617680cf2f923f41499bf697abc0e28421fb76f031fa0315956b56d149c2cde94eff5a4b3587013a5ffe15274ddfed02f03949dd63f5aa2c2ad6ada393859bd12a110d434170852c8cc25246921e02008cb4efb7c7ecf85955ad5b48270b37a154221a8682e10a591984a48d243c04011969df6f8fd9f0b2ab5ab6904e166f4234568db9dc249769ffcf71123ed62ffcdf161adc1fb5856656b56d219c2cde8368ad1b73b8492ed3ff9ee2247dac5ff9be2c35b83f6b0accad6ada433859bd065d6c8f9446f4e05fcc03ec40f1b6e7ee289ac76d7ed7b99a5ad5b48770b37a0b46eb77d5644c437764ce0079d9cbf7d6fd77ead7fdb11735b5ab690fe166f41519e948579efb09a6966228eba9f617a8a73231acfb63d26c6b56d220c2cde82933d290af3df6134d2cc451d753ec2f514e646359f6c7a4d8d6ada441859bd05267a5215e7bec269a5988a3aea7d85ea29cc8c6b3ed8f49b1ad5b48830b37a0a45b5c9b69ce3acfec7fd76f55460ee53fe5d3e964db2037645ab69107166f414742cb8f8072d82290cc7506a2827bf27a77ea2ec6b64212c9b56d220f2cde828d11a977adbc12c7d965b0353cfb560cef9c16b98a6c85c9946ada441f59bd05192352ef5b78258fb2cb606a79f6ac19df382d7314d90b9328d5b4883eb37a0a3246a5deb6f04b1f6596c0d4f3ed5833be705ae629b2172651ab69107d66f41464195e161ab6f8c182fa47d1dfd10e8f778cf82850642ff0a456d220fbcde828c732bc2c356df18305f48fa3bfa21d1eef19f050a0c85fe148ada441f79bd0518e6578586adbe3060be91f477f443a3dde33e0a14190bfc2915b4883ef37a0a31c570309828e288ecf9f04b6f67ed2a3b714039e8021812923b69107df6f4146373a186bb1f2b3a0570acf95e4f4036f68d44998fd4303f6486d220fbfde828c6d00433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d900866021779386cbc4caa783bcca0d98a9ab1bef0c132123b4883f017a0a31b2010cc042ef270d9789954f0779941b31535637de1826424769107e02f414636402198085de4e1b2f132a9e0ef3283662a6ac6fbc304c848ed220fc05e828c6c80433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d900866021779386cbc4caa783bcca0d98a9ab1bef0c132123b4883f017a0a31b2010cc042ef270d9789954f0779941b31535637de1826424769107e02f414636402198085de4e1b2f132a9e0ef3283662a6ac6fbc304c848ed220fc05e828c6c80433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d90012727a2469e94e7c976dabb4c06bc0a4575e4b091322c7b5883f017b0a31b1ff24e4f448d3d29cf92edb576980d78148aebc961226458f6b107e02f6146363fe49c9e891a7a539f25db6aed301af02915d792c244c8b1ed620fc05ec28c6c7fc1fa629d025acf69c8833859df9bc2d1d6734b4459917e1ad41f80bd9518d8ff73f4c53a04b59ed3910670b3bf3785a3ace69688b322fc35a83f017b2a31b1fee0aaaffed6d165d29ed943e6fdd4edc7049152d1364612ab607e02f6646363fdb1555ffdada2cba53db287cdfba9db8e0922a5a26c8c2556c0fc05ecc8c6c7fb62aabffb5b45974a7b650f9bf753b71c12454b44d9184aad81f80bd9918d8ff6c5557ff6b68b2e94f6ca1f37eea76e38248a9689b230955b03f017b3231b1fed836c25783a7c85556a60a0ef5cb4beeff3d952d3346144f617e02f6656363fdaf6d84af074f90aaad4c141deb9697ddfe7b2a5a668c289ec2fc05eccac6c7fb5e671bb6bb7583d81264ee63cf238de3f7a29710ca1852e186f80bd9968d8ff6bb5a49c623c16a32dc96a2ef963d79efe9f1707d9130a7670ef017b32e1b1fed7540a5e4f45936e870fa0c0724715207ce8f23571f6150721ee02f665d363fdae90d5e229588d05399c0de3640d9023797ca890a3bc2a2883ec05eccbb6c7fb5d11abc452b11a0a73381bc6c81b2046f2f951214778545107d80bd9976d8ff6ba235788a5623414e670378d9036408de5f2a2428ef0a8a20fb017b32edb1fed7446af114ac46829cce06f1b206c811bcbe544851de151441f602f665db63fdae8861f482056367bc53daa98c058681a17754d2ffb92a2a27ed05eccbb7c7fb5d0f4ffb5cb79d31fb5f8219400303616ae955e85b6f5455f3db0bd997708ff6ba1d2c09121c10c67976d0f8a7fdfd20fdcd581312dba8ad8bb717b32ee21fed743958122438218cf2eda1f14ffbfa41fb9ab02625b7515b176e2f665dc43fdae8723c36a11d197c689310a8c7efeae21f300c8ea76ba2b7d2dd5eccbb897fb5d0e3047f9ae7095b53ddee17b7d7cc22665ac55faad4457149bbbd997713ff6ba1c508ff35ce12b6a7bbdc2f6faf9844ccb58abf55a88ae293777b32ee27fed7438a11fe6b9c256d4f77b85edf5f3089996b157eab5115c526eef665dc4ffdae871423fcd7384ada9eef70bdbebe611332d62afd56a22b8a4dddeccbb89ffb5d0e2847f9ae7095b53ddee17b7d7cc22665ac55faad4457149bbbd997713ff6ba1c501c05b58e01ccfe758fbd22f17aaaf3535837b685ae2adb78b32ee280ed74389f380b6b1c0399fceb1f7a45e2f555e6a6b06f6d0b5c55b6f1665dc501dae8713e7016d6380733f9d63ef48bc5eaabcd4d60deda16b8ab6de2ccbb8a03b5d0e27c6c40051ce4ca76644aaf3f83cbb5c2956e00102a71587fc6997714086ba1c4f7649262e69ff76f806224a6ff8dc9ad2588427c51e2b2a38e32ee2811d74389ed55371e7a165161b8910f75f711f18245bcc754a0c566eb1d65dc5024ae8713d9368095a103054628eee513e61a412c8625d1053e8acf7a3bcbb8a04a5d0e27b16d012b42060a8c51ddca27cc3482590c4ba20a7d159ef47797714094ba1c4f626614af30e2779b5b885a77905f62da13438670f72b3f8cf02ee2812a74389ec3583bb70e9b51b96edd7b1718b523dc21334f3deb5680bde15dc50255e8713d853c89c6ca0d05f59587bc562960a5e03d12e0d7d3ad031fc3bb8a04acd0e27b090525e640f06e6de2dc3ed44ab7a9e874d2040ba45a07e3887714095aa1c4f6110a4bcc81e0dcdbc5b87da8956f53d0e9a4081748b40fc710ee2812b54389ec2214979903c1b9b78b70fb512adea7a1d348102e91681f8e21dc50256a8713d844292f320783736f16e1f6a255bd4f43a690205d22d03f1c43b8a04ad50e27b088525e640f06e6de2dc3ed44ab7a9e874d2040ba45a07e3887714095aa1c4f611030cf20cae4303f1354a0b14eeb9b3694ecc3d08840fe150fe2812b55389ec21f619e4195c8607e26a941629dd7366d29d987a11081fc2a1fc50256aa713d843e4f4edbd867237f051f48ed33a4cb024e5f519e1e03f9f8408a04ad55e27b087b2ab0105da4a980c20b58025f3ff42c976ae5983907f5948214095aacc4f610f5556020bb4953018416b004be7fe8592ed5cb30720feb29042812b55989ec21ea36d29a23690885bffa263174f62eda5857d8bce11fd7f60950256ab413d843d36da53446d2110b7ff44c62e9ec5db4b0afb179c23fafec12a04ad56827b087a6675cc13a7a8499b7b55eedcbcf19915c0ba54f817f617c264095aad14f610f4b5acbdb21cb6bb6273784038f94914ab2c38cfafffec49c4d812b55a39ec21e9541aa0ef06d39ef063bce2f171f80bd60335c51fcfd8adc9c0256ab483d843d290f66768db0d660c444628626355fa2bb12fafff6fb175d3904ad56917b087a511ecced1b61acc18888c50c4c6abf457625f5ffedf62eba72095aad22f610f4a23d99da36c3598311118a1898d57e8aec4bebffdbec5d74e412b55a45ec21e94407460d1a5d1588d9efda5929a15b3dd3441a5bb4d8bc8dc9256ab48cd843d2870e8c1a34ba2b11b3dfb4b25342b67ba68834b769b1791b924ad56919b087a50e1d18346974562367bf6964a6856cf74d10696ed362f2372495aad233610f4a1c3a3068d2e8ac46cf7ed2c94d0ad9ee9a20d2dda6c5e46e492b55a466c21e943800732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f00e654a54f7620ad94d7752418240a5ddbd02e9517950126ad56919d087a50de01cca94a9eec415b29aeea48304814bbb7a05d2a2f2a024d5aad233a10f4a1bc039952953dd882b6535dd490609029776f40ba545e54049ab55a467421e943780732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f00e654a54f7620ad94d7752418240a5ddbd02e9517950126ad56919d087a50de01cca94a9eec415b29aeea48304814bbb7a05d2a2f2a024d5aad233a10f4a1bc039952953dd882b6535dd490609029776f40ba545e54049ab55a467421e943780732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f007266fdfc4c83304ca43b4c101a6885d67c70f1149502caae56919d097a50ddff70e054a56f68e351153cc0182b2f33a7a5243e262a07395dad233a13f4a1bbfd6dd301f7b5344959f73fa8284cbc8f49f68ad849541016bc5a467428e94377f967b85c9c40cb156bbb4578488fd7468e99580c8fa821d179b48ce852d286eff15b8311e557f8ad8f43511889160cb517def2751c504546f46919d0a6a50ddfe143187c778653ddd65368590a2277922a6a274635a08c31e9d233a14e4a1bbfc11243519be30a3e647396da0c3b4d4c4f8090e868411a07d4a467429d94377f812486a337c6147cc8e72db418769a989f0121d0d082340fa948ce853b286eff02490d466f8c28f991ce5b6830ed35313e0243a1a104681f52919d0a7650ddfe041e2ce58beeb475db697cf859d0c88a76b0c99f3f08d1e2a6233a14eda1bbfc073c59cb17dd68ebb6d2f9f0b3a19114ed61933e7e11a3c54c467429db4377f80e04c5eedc91345a2572ba095f398051d56f68d8f923492e998ce853b786eff01b098bddb92268b44ae57412be7300a3aaded1b1f246925d3319d0a76f0ddfe0361317bb7244d16895cae8257ce6014755bda363e48d24ba6633a14ede1bbfc06c262f76e489a2d12b95d04af9cc028eab7b46c7c91a4974cc67429dbc377f80d84c5eedc91345a2572ba095f398051d56f68d8f923492e998ce853b786eff01b024d0343efcedc766240753df266862a8995d7b21692777329d0a76f1ddfe035f49a0687df9db8ecc480ea7be4cd0c55132baf642d24eee653a14ede3bbfc06be1f5329a8ca19a0505ce377748fffb29d11b84882a49f80cb7429dbc877f80d7b3ea65351943340a0b9c6eee91fff653a23709105493f0196e853b790eff01af6095eff4ffec903f9405405ca365cf26ef3237e07927fa72ed0a76f22dfe035eb12bdfe9ffd9207f280a80b946cb9e4dde646fc0f24ff4e5da14ede45bfc06bd6257bfd3ffb240fe501501728d973c9bbcc8df81e49fe9cbb429dbc8b7f80d7ac4af7fa7ff6481fca02a02e51b2e79377991bf03c93fd3976853b7916ff01af5822024dacc2f2c24bd206849b5c2d4ee9de7a3c7627fc16ee0a76f22efe035eaf44049b5985e58497a40d0936b85a9dd3bcf478ec4ff82ddc14ede45dfc06bd5e141b8f5fe22d8be714e03a65671363a2262b4dd59ff1ffb929dbc8bcf80d7abb28371ebfc45b17ce29c074cace26c7444c569bab3fe3ff7253b79179f01af576506e3d7f88b62f9c5380e9959c4d8e8898ad37567fc7fee4a76f22f3e035eaec2ceed3abe7cee1f073c7fb232ef9450bdd9ccaa9ff91a1ca4ede45e8c06bd5d759dda757cf9dc3e0e78ff6465df28a17bb399553ff2343949dbc8bd180d7abae3fcda75c759e0a799be61484b2433c2a22b586a4fe482b2a3b7917a401af575b0bada765c19e97ab049251015ae4a04ef1ad6946fc91fa5576f22f49035eaeb5175b4ecb833d2f560924a202b5c9409de35ad28df923f4aaede45e9206bd5d6a2eb69d97067a5eac124944056b92813bc6b5a51bf247e955dbc8bd240d7abad45d6d3b2e0cf4bd582492880ad72502778d6b4a37e48fd2abb7917a481af575a846eccf08f04bfd6815eb380da4a82ce9c718f06cc92149586f22f49135eaeb4f19ebf6beb6fa7d87f89c98133fae81ce3a743cd6924436b1de45e9236bd5d69d33d7ed7d6df4fb0ff13930267f5d039c74e879ad24886d63bc8bd246d7abad3a67afdafadbe9f61fe272604cfeba0738e9d0f35a4910dac77917a48daf575a745b720ea28e366ef791aae891f3d2366c7fe442b19223598ff22f491c5eaeb4e742f675f1f2cf60a6f01bf91bde0294d3ac0ae16024485720e45e9239bd5d69cd11ff4490bc014405acfe1a2fb26351a204581ebd48925242c8bd24747abad39923fe89217802880b59fc345f64c6a34408b03d7a9124a485917a48e8f575a73247fd1242f0051016b3f868bec98d468811607af52249490b22f491d1eaeb4e641c0c7d32b66ca2e534b6f9758978b50acf0351e74494361745e923a4d5d69cc73818fa656cd945ca696df2eb12f16a159e06a3ce89286c2e8bd24749abad398e7031f4cad9b28b94d2dbe5d625e2d42b3c0d479d1250d85d17a48e93575a731c6c76424289c799e1727df3a44223d051245ceb3724a354bb2f491d27aeb4e63764fedd31e9f1b67ab1c20f407aa5c89cf4fc326b49484d775e923a505d69cc6d56101310aa45efad304a4678eba9b934963ac0d392923eefbd2474a1bad398d938327ece2aee62122d5ab4e9cdb19a63d8b7dda4252621e07a48e94475a731b17064fd9c55dcc4245ab569d39b6334c7b16fbb484a4c43c0f491d288eb4e63626cdc53e5821c0b008230fb9f2d24918a0f21d28d949a2b82e923a512d69cc6c365cb0077da9a98b8d1281f3650a74b0eca8601182935fb06d2474a26ad398d8557a8599c8b97b4296f16666497acbe18414e5e2d526d9a0ea48e944e5a731b093b630be5ed91eb0aaaf2f4c125b7a42b2edf1857a4dcd81e491d289db4e6361102d87078b18658cd22ac117a41cd70510a008cac49bb543d923a513c69cc6c2105b0e0f1630cb19a455822f4839ae0a2140119589376a87b2474a278d398d8420b61c1e2c61963348ab045e90735c144280232b126ed50f648e944f1a731b08416c383c58c32c66915608bd20e6b8288500465624ddaa1ec91d289e34e6361082d87078b18658cd22ac117a41cd70510a008cac49bb543d923a513c69cc6c2105b0e0f1630cb19a455822f4839ae0a2140119589376a87b2474a278d398d8420422e76d937f8b60077ca868869ba3c3d2c65870f6ed6b3658e944f1b731b083f106f465f4653eeb8bc5b3508c9d2a075050d6a1bddaf0acc1d289e37e636107d20de8cbe8ca7dd7178b66a1193a540ea0a1ad437bb5e15983a513c6fcc6c20fa41bd197d194fbae2f16cd423274a81d41435a86f76bc2b3074a278df98d841f40f8c8ba70901f87daf9fd03e44f32ba2d4adacdbed79fa61e944f1c031b083e71f19174e1203f0fb5f3fa07c89e65745a95b59b7daf3f4c3d289e380636107ce3e322e9c2407e1f6be7f40f913ccae8b52b6b36fb5e7e987a513c700c6c20f9c0876b5e51e7246a549c4a9ea1df7851151afc2dc6bd177104a278e028d841f3710ed6bca3ce48d4a938953d43bef0a22a35f85b8d7a2ee20944f1c051b083e6e21dad79479c91a952712a7a877de144546bf0b71af45dc41289e380a36107cdc43b5af28f392352a4e254f50efbc288a8d7e16e35e8bb882513c70146c20f9b8137db6febd86ed0c6910c699d5d6790fc73e89c3bd191505a278e029d841f36f26fb6dfd7b0dda18d2218d33abacf21f8e7d13877a322a0b44f1c053b083e6de4df6dbfaf61bb431a4431a675759e43f1cfa270ef464541689e380a76107cdbc280010a2c299eb1b154c5cc6a511f078e636aa1ae8ca4c2e13c7014fc20f9b77500021458533d6362a98b98d4a23e0f1cc6d5435d194985c278e029f841f36ee2c129b37e0ca2f2421f79b128aa5e9de451d0468a32ad4b94f1c0540083e6ddb5825366fc1945e4843ef3625154bd3bc8a3a08d14655a9729e380a80107cdbb63c5cc58c598b3f4854a4944220f5cf73c0b66d9f8cacf6e63c70150120f9b76b04cbe3c589790148760f507c3849c6e22daf373c195b91cd78e02a0341f36ed50997c78b12f20290ec1ea0f870938dc45b5e6e7832b7239af1c0540683e6ddaa132f8f1625e40521d83d41f0e1271b88b6bcdcf0656e4735e380a80d07cdbb54265f1e2c4bc80a43b07a83e1c24e37116d79b9e0cadc8e6bc701501a0f9b76a84cbe3c589790148760f507c3849c6e22daf373c195b91cd78e02a0341f36ed50258ed15e0582abc68eb0377eff970440622943802b73ddb01c0540693e6dda9f4b1da2bc0b05578d1d606efdff2e0880c452870056e7bb60380a80d27cdbb53e224d9e24ec6d31d2078705f3f4ba38fc34e769fdadd11ac1701501a5f9b76a7b449b3c49d8da63a40f0e0be7e97471f869ced3fb5ba23582e02a034bf36ed4f61548d140881749ffeae23fc7c9470beb7fe003f3b7460f06c0540698e6dda9eb2a91a281102e93ffd5c47f8f928e17d6ffc007e76e8c1e0d80a80d31cdbb53d655234502205d27ffab88ff1f251c2fadff800fcedd183c1b01501a639b76a7ac3658e2b1171cd2b723d8263640968756ab427b9aba321c3702a034c836ed4f576cb1c5622e39a56e47b04c6c812d0ead5684f7357464386e054069906dda9eae6575e37132d5cd945c26c0d0f8b84555594c4a67e8ca14dd0a80d321dbb53d5b56fe1f8f3c0e1de08513a999e7ceb2a55edaf0ccd195cdbb1501a644b76a7ab53a0e97cb4e7ebe78d6ed7b2bc5fb8d4569f83d96a32d3f772a034c8a6ed4f569002f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a200be210dcd7ffea5ea84793e09550a1600cb5ca919708bbd501a645776a7ab44017c421b9afffd4bd508f27c12aa142c0196b95232e1177aa034c8aeed4f568802f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a200be210dcd7ffea5ea84793e09550a1600cb5ca919708bbd501a645776a7ab44017c421b9afffd4bd508f27c12aa142c0196b95232e1177aa034c8aeed4f568802f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a2004a33667a566128a2513f66014b683dfb779f0516708d61511a645777a7ab43ff207925a18324d3fc6f44f3fa8d2ea3f19b806629e11c66a334c8aef04f5687fd40f24b430649a7f8de89e7f51a5d47e33700cc53c238cd4669915de09ead0ffa0df6ef32e2f5d2a989d9f7e22b18b7c11a43f4a484733e8dd322bbc23d5a1ff31bedde65c5eba55313b3efc456316f823487e94908e67d1ba64577847ab43fe637dbbccb8bd74aa62767df88ac62df04690fd29211ccfa374c8aef08f5687fcc6fb7799717ae954c4ecfbf1158c5be08d21fa5242399f46e9915de11ead0ff986b814bdb05bfad506a65a61aa7e9a40c5081a64547358cde322bbc24d5a1ff2f6314f062e1e1dd58a191742d463170134d45a8878e6cbdbd6457784aab43fe5d523c39729a263d690fe9105282c1082146cdad0c1cdb1f7bc8aef0965687fcb9308acb920aaefd89ec98489cfbe0383d39ddb61539b7e2f8915de12dad0ff97161159724155dfb13d9309139f7c0707a73bb6c2a736fc5f122bbc25b5a1ff2e24e3d86f5011e78df7f274a6be5df08ef93b93451e6e12fe3457784b7b43fe5c3288d6696d89f7476cb14bccfc21c39d9d3b4c4a0cdc403c78aef0970687fcb85511acd2db13ee8ed9629799f843873b3a76989419b88078f15de12e0d0ff970a2e47f30838e05492f9191b36fecf0f61fb156e803711b31f2bbc25c2a1ff2e135c8fe61071c0a925f232366dfd9e1ec3f62add006e23663e57784b8543fe5c26453224cdb9e3d503b12a94d3f19a6582989815fddc48707daef0970b87fcb84b1676a2484a2a2cbf2f1b519fd992f2ffdd7287f8b89284fc5de12e180ff970952ced44909454597e5e36a33fb325e5ffbae50ff1712509f8bbc25c301ff2e12a59da892128a8b2fcbc6d467f664bcbff75ca1fe2e24a13f17784b8603fe5c2543fc76aef27b3e8b145a0b4f6c2f5bff997d69bc2c495cbe3ef0970c17fcb84a70ba12e8b25ca541a580791e57c49a7eddbef9382892d3bc8de12e183ff97094d17425d164b94a834b00f23caf8934fdbb7df2705125a7791bc25c307ff2e129a2e84ba2c97295069601e4795f1269fb76fbe4e0a24b4ef23784b860ffe5c25345d0974592e52a0d2c03c8f2be24d3f6edf7c9c144969de46f0970c1ffcb84a684625415f3307c45d4d3f464fbaf8a6d86b3b942592d5608ee12e1840f97094cf185cdb6b3c720b726744b4976c4f75ab82b9844825ac651ec25c3082f2e1299d30b9b6d678e416e4ce89692ed89eeb57057308904b58ca3d84b86105e5c2533a61736dacf1c82dc99d12d25db13dd6ae0ae6112096b1947b0970c20bcb84a6744ef93406b9f2de4b06ebccb358d9d556c20e7e3e2d64ccf712e1841897094ce72a04c0ba4a483f4dda9dc15ea811d2a8305f58795acb3def25c308322e1299cd5409817494907e9bb53b82bd5023a55060beb0f2b5967bde4b8610645c25339a34255b95ff837fef373d2d7296a5729b6dbfbde26b2e9bbd970c20c9b84a6733684ab72bff06ffde6e7a5ae52d4ae536db7f7bc4d65d377b2e1841937094ce665ca7c704d4708274a9baddc250f3f26863415386acbc12f75c308327e1299ccb4561e6b67f4387a1203be37c98460ccb72c5030a5979c9efb8610650c253399516d62619d4e991fa0d3deef126ea419191cc6211b2f537e070c20ca284a673292dac4c33a9d323f41a7bdde24dd483232398c42365ea6fc0e1841945094ce6525b58986753a647e834f7bbc49ba9064647318846cbd4df81c308328a1299cca442c3897b7daf128836b59f812db034873aa56c8a97ab6304861065152533994711996ba3d1c0a7c83a3166fa51be9109218d35122f586a0a0c20ca2b4a67328d2332d747a3814f907462cdf4a37d2212431a6a245eb0d4141841945694ce651a4665ae8f47029f20e8c59be946fa44248634d448bd61a828308328ad299cca3418ddb5cb6467c0f99e515fca8452b043b8ac048e7ac4f4516106515b5339946731bb6b96c8cf81f33ca2bf9508a560877158091cf589e8a2c20ca2b6a67328ce6376d72d919f03e679457f2a114ac10ee2b01239eb13d1458419456d4ce6519c53000707f9a08a84bf51264c18f3aa1871a28070d629468c08328adb99cca337321266bcc9a397c14b68749028457c2b8f875cdeac543119106515b83399466d6424cd7993472f8296d0e920508af8571f0eb9bd58a8623220ca2b7067328cda545bf39ffcf0e1bcfa67fa38977418a8ea5fcf77b1526865419456e1ce6519b334ca3fecd0444631c1961c692546594c8101faec62a674cb8328adc49cca336569947fd9a0888c63832c38d24a8cb2990203f5d8c54ce99706515b89399466ca5f3b586017739b7ed31e999c8b778d2cb04a47ae8a9b772f0ca2b7137328cd934a89096d0549b9b573035b310d4d42540cd6eb5a1538925f19456e27e6519b2521246b86e0f5f622b2ccde5a10f8aca2c5f032b12a72c8bf328adc50cca336494248d70dc1ebec456599bcb421f159458be0656254e5917e6515b8a199466c9210a406c85a3a5b4297f9a1603a40da85c40326c1a9ccc6fdca2b7144328cd92321480d90b474b6852ff342c07481b50b88064d8353998dfb9456e2886519b24642901b2168e96d0a5fe68580e9036a17100c9b06a7331bf728adc510ca33648c11328eefa8355ccc8c9332f9c864fc28cc5b920a4e67dbef515b8a229466c91722651ddf506ab999192665f390c9f85198b724149ccfb7dea2b7144528cd922e44ca3bbea0d57332324ccbe72193f0a3316e4829399f6fbd456e288a519b245c15a6d02a180d691c315fbfc6398609410f1eec4f7340837b8adc5115a33648b72b4da054301ad23862bf7f8c730c12821e3dd89ee68106f715b8a22b466c916e569b40a86035a470c57eff18e61825043c7bb13dcd020dee2b7144568cd922dc3948d9fd96cdcb9957c42629c28e72032539be789a05bfdd56e288ae19b245b77291b3fb2d9b9732af884c53851ce4064a737cf1340b7fbaadc5115c33648b6e7135c0a33199b11d2bd6c09f0097f007412955df6818a3765b8a22b966c916db6e7dd9f33995e4f22473a935f78e08092e9507bbd032eaedb7144573cd922db5690e0c93498e4c9c15ad7a63e57a380d096c6b74a06779dc6e288ae89b245b695e2e71d3697f1beff8211cbfc1529814bf1b32e640d097b9dc5115d23648b6d1486f3c53a960ba97bd086177790358242a78c1c981a2d374b8a22ba56c916da11cf0d1542923f7e746d6eae6e864d8430133df9003474aea7144574bd922db4139e1a2a85247efce8dadd5cdd0c9b0860267bf20068e95d4e288ae97b245b68273c34550a48fdf9d1b5bab9ba193610c04cf7e400d1d2ba9c5115d2f648b6d047398e34e1f8241f2037d7f2f3984ea12b5e1587d1a3bfb548a22ba5fc916da0773441f491567069bd3c126566967fc2018050cf734799aaa144574c0922db40d729a973f01308fef744874a4c92e203adc4c75eb68f4d955288ae982245b68197147872ad8c3a296b557114188ba687064db47d3d1eb56ab5115d30548b6d0316ea1670287e9c7e537744a7b07d2f8db75f8eba4a3d85157a22ba60b916da061695526b1e63612823baebcee060419b19834334647b246b044574c1822db40c15ebca610a2cea7bc4423a1d402665b5ddcaac2898f66316188ae983145b68181498ba4ce1bffd230550d6b9ffb2adeb66597e1101ece06c4115d30638b6d03011f29a2490e62271876e0ff37ecb3e56777721e1d3d9db18922ba60c816da06013e5344921cc44e30edc1fe6fd967caceeee43c3a7b3b63124574c1902db40c0208b8e1d10feb1f19a84a24d7a92dbd988a0ad471f6786a258ae983215b6818031171c3a21fd63e33509449af525b7b311415a8e3ecf0d44b15d30642b6d0300622e387443fac7c66a128935ea4b6f662282b51c7d9e1a8962ba60c856da0600c45c70e887f58f8cd425126bd496decc45056a38fb3c3512c574c190adb40c01817a075bdd514745251687572893a01834cefa31c67884659ae983216b681802f2f40eb7baa28e8a4a2d0eae51274030699df4638cf108cb35d30642d6d03005e5e81d6f75451d14945a1d5ca24e8060d33be8c719e211966ba60c85ada0600bc4916069b7f06254a5809d38c402e341513bf74e03c43d6ce74c190b6b40c01771e3e65e3d46ecd4c7cd9cf1076ba9024d3c145bd7889519de983216e681802ed3c7ccbc7a8dd9a98f9b39e20ed752049a7828b7af112a33bd30642dcd03005da050bf03c281db7e9c02d6439d148688dfb4772f2e226ea78a60c85baa0600bb30a17e078503b6fd3805ac873a290d11bf68ee5e5c44dd4f14c190b7540c01766142fc0f0a076dfa700b590e74521a237ed1dcbcb889ba9e2983216ea81802ecc285f81e140edbf4e016b21ce8a43446fda3b9797113753c530642dd503005d9850bf03c281db7e9c02d6439d148688dfb4772f2e226ea78a60c85baa0600bb302d906031da197fefd272af321f6b39ba1530ba5944def315c190b7550c01765f5b20c063b432ffdfa4e55e643ed673742a6174b289bde62b83216eaa1802ecbe4253d9743ec882771690e4c0740b0ee301054562137d70580642dd553005d97b10ba0b9553f387a5f9e7f178de7445c0ae4ce6c126fc84b10c85baab600bb2f52174172aa7e70f4bf3cfe2f1bce88b815c99cd824df90962190b7556c01765ea42e82e554fce1e97e79fc5e379d11702b9339b049bf212c43216eaad802ecbd411e2b55775febfe79c05b3beea0056001ea9920637e5c989642dd55c005d97a723c56aaeebfd7fcf380b677dd400ac003d53240c6fcb9312c85baab800bb2f4e478ad55dd7faff9e7016cefba80158007aa64818df97262590b7557001765e9c1b280368865881f4acf3c5ef4660d7fba18eec2ebf2ff04c216eaae102ecbd37365006d10cb103e959e78bde8cc1aff7431dd85d7e5fe09842dd55c205d97a6e6ca00da2196207d2b3cf17bd19835fee863bb0bafcbfc13085baab840bb2f4dc655273f10926925d346457722964e7d7b8b9bd72f98126620b7557091765e9b756b7408ee8afa772358ed6dc4927f7aa1db5d6e2f303f0c516eaae132ecbd36d3980d9caa7c1d19c37e3d5b088ae174ee7ae09c2e609858b2dd55c275d97a6d97301b3954f83a3386fc7ab61115c2e9dcf5c1385cc130b165baab84ebb2f4db27215bfd77569c928ac557eba191685364afa83089827ba2db755709e765e9b63703dd85bc13615092571256c288b32674237620e3051185c6eaae13decbd36c56c8e096458ceacca17a872d047748cc930b1201960a3d4b9dd55c27cd97a6d89652e6b7587ffdc4bfc170d988547418d0da49c2fc1494d74baab84fab2f4db11566f2f97e6623b4fc4f4432900ecab14c78b945c82943eea755709f665e9b62138f0b7dca326f95756aeae49f8377e243b5984b6052a21d5eaae13edcbd36c4171e16fb9464df2aead5d5c93f06efc4876b3096c0a5443abd55c27db97a6d8826fd5381f62fe68152780e11fd73c208b99a86ed514aa2b58aab84fb82f4db1036bbcc8eb9c5f52e21bc7ea37a4d66911df9339a72955fab255709f715e9b6205638bea840f21287c0455fc67400afa1e6b68cf4b52ad9965aae13ee3bd36c409532a2db4f4a4d3afd57220c676741c378313fa93a55cd6cc55c27dc87a6d88113266b416bfac2a1777aa6984e3466069b26a51244abb5199ab84fb91f4db102164cd682d7f58542eef54d309c68cc0d364d4a2489576a3335709f723e9b6204255ad2907d5132b15ab6fce0b8377a9a175eba08e2aeeea67ae13ee48d36c4083376caabc8088d8e323a5c40efd4d7b3d98199d1955df78d05c27dc92a6d881056ed955790111b1c6474b881dfa9af67b30333a32abbef1a0b84fb9254db1020a69c5039ed885e6445b5d3833eb9414f10ca8d062577f8742709f724b9b6204135f9c5fea876e4f408380985fcd8651dcc593fcc1af00b285e13ee49836c408254b4b1881e53f2138d3c758b7916acbb4376a55805e03090cc27dc9316d88104922a889b0a0e0c5297454d9671933bf631b1706fdbc07b61a84fb9263db1020914551136141c18a52e8a9b2ce32677ec6362e0dfb780f6c3509f724c7b620412216b47f6f59e5975d9e198d945b2d2587189e77f3f0207c6b13ee49906c4082432d68fedeb3cb2ebb3c331b28b65a4b0e313cefe7e040f8d627dc9320d88104865ad1fdbd67965d76786636516cb4961c6279dfcfc081f1ac4fb92641b102090c41b65427a58f3da4bd92949acfc7543371361b9c810587599f724c84620412170f7f00fc2180fe0147eb512d95ecd0618eae9336020cb2b43ee49909c408242d1efe01f84301fc028fd6a25b2bd9a0c31d5d266c041965687dc932138810485a3dfc03f08603f8051fad44b657b341863aba4cd80832cad0fb926427102090b4080a608de26a72c20c20b164a5c4ab0721b6f5ad106739a2f724c84f204121671014c11bc4d4e584184162c94b89560e436deb5a20ce7345ee49909e408242ce2029823789a9cb083082c5929712ac1c86dbd6b4419ce68bdc93213c8104859c4053046f1353961061058b252e2558390db7ad688339cd17b926427902090b380cb8618afd09aed88ed13e4252a8d86cc7b1b6ce06753e30724c84f30412166f1970c315fa135db11da27c84a551b0d98f636d9c0cea7c60e49909e608242cde32e1862bf426bb623b44f9094aa361b31ec6db3819d4f8c1c93213cc104859bc65c30c57e84d76c47689f2129546c3663d8db67033a9f183926427982090b3785798715ca6fd7040b9da0c1d20ebaec7275dc8dd6755870824c84f31412166ef3b433b66245d6339407a403238358588fafdedb7ceacb21149909e638242cddd0298cf791f1d492a4dbaa85c66c9330ca23e376c9d5b082393213cc804859bb905319ef23e3a92549b7550b8cd926619447c6ed93ab6104726427990090b37720a633de47c7524a936eaa1719b24cc3288f8ddb2756c208e4c84f32012166ee414c67bc8f8ea49526dd542e33649986511f1bb64ead8411c9909e640242cddc8298cf791f1d492a4dbaa85c66c9330ca23e376c9d5b082393213cc804859bb905319ef23e3a92549b7550b8cd926619447c6ed93ab6104726427990090b37720324636f49db4cd4b3b703f11a8aaeb233bd0372456c3ace5c84f32022166ee3f648c6de93b699a9676e07e235155d64677a06e48ad8759cb909e640442cddc7e552b347f4d35b7e4ba87243e9909d4879b83388e5b105798213cc809859bb8fb3668c1ab70cdf28141d470752871d109e348cd19b6225331427990140b3771f56cd18356e19be50283a8e0ea50e3a213c6919a336c44a66284f32028166ee3ea65b55f5a999a4cbcd417e9cc98256c2239659063d88af0c609e640512cddc7d3577d176209971c3174f5fb9126a9003f1f0d7cc4b117858d13cc80a359bb8fa53b0c8770e990bb1ab6b21f1a43b02878ea5d55866230af1b27990147b3771f49022b678ea983f8ed3a2a662c7dbe78ec80fd0709c46302374f32029066ee3e910456cf1d5307f1da7454cc58fb7cf1d901fa0e1388c6046e9e640520cddc7d2208ad9e3aa60fe3b4e8a998b1f6f9e3b203f41c27118c08dd3cc80a419bb8fa44115b3c754c1fc769d1533163edf3c76407e8384e231811ba799014833771f48822b678ea983f8ed3a2a662c7dbe78ec80fd0709c46302374f32029066ee3e910456cf1d5307f1da7454cc58fb7cf1d901fa0e1388c6046e9e640520cddc7d22016ec3c573760be06575fb31765fc631aeb841e6e18c231d4cc80a41abb8fa43f2dd878ae6ec17c0caebf662ecbf8c635d7083cdc318463a999014835771f487e5bb0f15cdd82f8195d7ecc5d97f18c6bae1079b86308c7533202906aee3e90fc43743b66916872ea87c3c0b3264140d208634f6dc61332a7640520d6dc7d21f712facf79f933688cdc4da95e42e0a99ebd08fad88c28094fc80a41aeb8fa43ed25f59ef3f266d119b89b52bc85c1533d7a11f5b11850129f9014835d71f487da4beb3de7e4cda2337136a5790b82a67af423eb6230a0253f202906bae3e90fb423e8d47c9ffdc71eaf3372ea0d6374f0948a32c16141ee7f40520d76c7d21f6747d1a8f93ffb8e3d5e66e5d41ac6e9e129146582c283dcfe80a41aed8fa43ece1bb5aa9f56599f328993f3a02bebfbbcfe6b270285095dfe014835dc1f487d9b376b553eacb33e651327e74057d7f779fcd64e050a12bbfc02906bb83e90fb366ed6aa7d59667cca264fce80afafeef3f9ac9c0a142577f80520d7707d21f66c69bfada7892f7c4c1965c4f955be05e29f9b9411284c93f10a41aee1fa43ecd75f91b3fbe8c17b4fff91b1eaa1da33bfeb79841f509acbe314835dc4f487d9ad4b35c0a4a7e57957cbe98bcd3a128f7a8335643ba1373bc72906bb8ae90fb359227dd9f6262d756764993f926a8346efb2ad247442701b8f520d7716d21f66b144fbb3ec4c5aeacec9327f24d5068ddf655a48e884e0371ea41aee2da43ecd621609c0856f1858555f2b2641a06b43b976f6edce09c2123e4835dc5c487d9ac32c13810ade30b0aabe564c8340d68772ededdb9c1384247c906bb8b890fb358658270215bc6161557cac990681ad0ee5dbdbb738270848f920d7717121f66b0c3c605cd84f254562c61f5a04f9b845c663f9ca6d4e1235f341aee2e343ecd61704d3125d74ad0d7d5904dc01e9ceb3877435f0d79c260fe7835dc5c787d9ac2d09a624bae95a1afab209b803d39d670ee86be1af384c1fcf06bb8b8f0fb3585a134c4975d2b435f564137007a73ace1dd0d7c35e70983f9e0d77171e1f66b0b4269892eba5686beac826e00f4e759c3ba1af86bce1307f3c1aee2e3c3ecd61684d3125d74ad0d7d5904dc01e9ceb3877435f0d79c260fe7835dc5c787d9ac2d02674a45b6c043262ed61a835303498e9330076f084c3a0f16bb8b8f1fb35859f4ce948b6d80864c5dac3506a606931d26600ede1098741e2d77171e3f66b0b3e25e4ea1a86734c43824cc8ccb7308b9f784437bf131027c6aee2e3c8ecd6167b4bc9d4350ce69887049991996e61173ef0886f7e26204f8d5dc5c791d9ac2cf623a60116f02fb3c5d5f94b2ad32056788d533af94c42431bbb8b8f24b35859eb474c022de05f678babf29655a640acf11aa675f29884863777171e4966b0b3d61aaa5d08972151cf24ab54a342df81dce18f47e2310ab06fee2e3c93cd6167ab3554ba112e42a39e4956a94685bf03b9c31e8fc4621560dfdc5c79279ac2cf566aa974225c85473c92ad528d0b7e0773863d1f88c42ac1bfb8b8f24f35859eac616540f18f6d1130f220cd120d5a36e1b8bc9b0e885727807171e49f6b0b3d574edcda8ff53ca519b107c21c111295be1dbb921a10aff301e2e3c93fd6167aad29cc0dccc0dbcceb2ed5ac3018835376e7b9803121618a04c5c79280ac2cf55953981b9981b799d65dab58603106a6edcf73006242c314098b8f25015859eab233428fdfd9d1b664881cd8b8586b75d64b285cc18587cc14171e4a03b0b3d56366851fbfb3a36cc91039b170b0d6ebac9650b9830b0f98282e3c94076167aac6591c982c3da95c49ed398ad9580bff53d8e3cf031620d4515c79280fc2cf558b3e4b890551b53b4ba7393daaa67626a25e09fa032c434ca3b8f25020859eab1508a96ab779ccf94f1b38a34d434a753f6856500358883d4871e4a0420b3d56291152d56ef399f29e3671469a8694ea7ed0aca006b1107a90e3c94084167aac5222a5aadde733e53c6ce28d350d29d4fda159400d6220f521c79281082cf558a4454b55bbce67ca78d9c51a6a1a53a9fb42b2801ac441ea438f25021059eab14816a90424733217a980505ccc2b057bf131a75c32888578881e4a0421b3d5628f2d520848e6642f5300a0b998560af7e2634eb865110af1103c94084367aac51e5aa41091ccc85ea601417330ac15efc4c69d70ca2215e22079281086cf558a3c415a79d06ff34003cf490e594e8a0784397d3d91442d6841f250210e9eab14770ec74c4db64902bf6b5844aa937237031f3cd71f885c7484e4a0421e3d5628ed1d8e989b6c92057ed6b0895526e46e063e79ae3f10b8e909c940843c7aac51da3b1d3136d9240afdad6112aa4dc8dc0c7cf35c7e2171d21392810878f558a3b4024cbb1a88aa98b327884d4c91efe013a62914f942e54828250210f2eab1476704997635115531664f109a9923dfc0274c5229f285ca90504a0421e5d5628ece0932ec6a22aa62cc9e21353247bf804e98a453e50b9520a0940843cbaac51d9c1265d8d44554c5993c426a648f7f009d3148a7ca172a414128108797558a3b3824cbb1a88aa98b327884d4c91efe013a62914f942e54828250210f2eab1476704997635115531664f109a9923dfc0274c5229f285ca90504a0421e5d5628ece01f411f4f0108af81aed97b1c72562ce436879a4db953ae0a40843cbbac51d9bf3e823e9e02115f035db2f638e4ac59c86d0f349b72a75c148108797758a3b37e0916d5e8da8540be882c1469bfb6db8b8660c533e5505c2a0210f2efb14766fb122dabd1b50a817d105828d37f6db7170cc18a67caa0b8540421e5df628ecdf6245b57a36a1502fa20b051a6fedb6e2e198314cf954170a80843cbbec51d9bec48b6af46d42a05f44160a34dfdb6dc5c3306299f2a82e1501087977d8a3b37d81d7fb73a7eb68ea04f876e93f1cbe0b3124eaf3b550766a1210f2efc14766faf3aff6e74fd6d1d409f0edd27e397c166249d5e76aa0ecd42421e5df828ecdf5e02113596d13cbd390ae3e247bd8daac6f57d18ea541f3e85843cbbf151d9bebb04226b2da2797a7215c7c48f7b1b558deafa31d4a83e7d0b087977e2a3b37d760844d65b44f2f4e42b8f891ef636ab1bd5f463a9507cfa1610f2efc54766faec1089acb689e5e9c8571f123dec6d5637abe8c752a0f9f42c21e5df8a8ecdf5d82113596d13cbd390ae3e247bd8daac6f57d18ea541f3e85843cbbf151d9bebb04226b2da2797a7215c7c48f7b1b558deafa31d4a83e7d0b087977e2a3b37d760105fbe612591d0fa85beb9e759c8d9b80b88969207d145620f2efc55766faebf20bf7cc24b23a1f50b7d73ceb391b37017112d240fa28ac41e5df8aaecdf5d7e417ef984964743ea16fae79d672366e02e225a481f4515883cbbf155d9bebafc0f104bb602f10a8bfabbf732c4a4f5bb0887108d3e8bcf117977e2acb37d75f71e20976c05e21517f577ee658949eb76110e211a7d179e22f2efc55966faebee3c412ed80bc42a2feaefdccb1293d6ec221c4234fa2f3c45e5df8ab2cdf5d7dc0494b65cedead717a2a5e18e1b85d5d2f07ae066f4601c8ccbbf15669bebafb709296cb9dbd5ae2f454bc31c370baba5e0f5c0cde8c03919977e2acd37d75f6e1252d973b7ab5c5e8a9786386e17574bc1eb819bd18072332efc559a6faebedc24a5b2e76f56b8bd152f0c70dc2eae9783d70337a300e4665df8ab34df5d7db8494b65cedead717a2a5e18e1b85d5d2f07ae066f4601c8ccbbf15669bebafb701ea9244a93bd65ac218259bb6718e258bb9e68db8c05359a77e2acd47d75f6df3d524895277acb584304b376ce31c4b1773cd1b7180a6b34efc559a8faebedbe06b6e9d72558196852cf8ee592c1b15d9abbff6b30167a6adf8ab352f5d7db7b0d6dd3ae4ab032d0a59f1dcb258362bb3577fed6602cf4d5bf1566a5ebafb6f61adba75c956065a14b3e3b964b06c5766aeffdacc059e9ab7e2acd4bd75f6dec35b74eb92ac0cb42967c772c960d8aecd5dffb5980b3d356fc559a97aebedbd86b6e9d72558196852cf8ee592c1b15d9abbff6b30167a6adf8ab352f5d7db7b062ef93918165afc226b804aa4e9453ae03c2496302d0f15cf1566a5fbafb6f5f51f17fcfd92de23c1a36314c9386cf56b3c6eec305a386bae2acd4c075f6debd2ff5584c88be473001328a911d6bc6a813d039830b48b176c559a981ebedbd795feab099117c8e60026515223ad78d5027a07306169162ed8ab35303d7db7af24be7b9def95b9f77d190523c6c0d429afb8342092d2469dc1566a608afb6f5e323e1cc6ac919c1a76fe6cc70ce78ad30a348e00f5a4a77b92acd4c125f6debc547c398d59233834edfcd98e19cf15a614691c01eb494ef72559a9824bedbd78a1b998a57fac989558c6159bb3040dcbd3965dc3a692b82e5ab35304a7db7af13373314aff59312ab18c2b3766081b97a72cbb874d25705cb566a6094fb6f5e266e66295feb262556318566ecc10372f4e59770e9a4ae0b96acd4c129f6debc4c68deab6cacaecd642fd0f5d178650de477713dd0495dbb2e59a98254edbd78975dcfaf862fc01d802c68139ae72843c39b24d79d92bd1a5db35304aadb7af12d47b1b7b935e2bdb825964f2dc4aeaf81e28c0b38257bd8bc66a60956b6f5e2591b75c81f4227fe2817f2c6537fbb86fe715a726d4af95579cd4c12ae6debc4b136eb903e844ffc502fe58ca6ff770dfce2b4e4da95f2aaf39a98255cdbd789626dd7207d089ff8a05fcb194dfeee1bf9c569c9b52be555e735304ab9b7af12c467c099a6e7a273f88c5c5a93f43a5fee3715ef6757cc4fcf6a6095746f5e25875b938bfaa5a76aa8e57edd1fded2e7d71a6e3acbaf9a439fd4c12ae9debc4b0d433970a221b1580997c3e237b403f7a8e11ed1945f362b40a98255d4bd789619128539f119c532cafc4dec675e66174c6e7fff25be6dfa825304abaa7af12c31250a73e2338a6595f89bd8cebccc2e98dcfffe4b7cdbf504a6095754f5e258624a14e7c46714cb2bf137b19d79985d31b9fffc96f9b7ea094c12aea9ebc4b0c4203c2835a48c190faf358b32e98ee25e2042552af371781398255d54d78961874078506b4918321f5e6b1665d31dc4bc4084aa55e6e2f027304abaa9af12c30e0d02f9836892e6f6899c54c39c99b1732d4bb0a8cdc7844f609575545e25861b1a05f306d125cded1338a987393362e65a9761519b8f089ec12aeaa8bc4b0c36340be60da24b9bda2671530e7266c5ccb52ec2a3371e113d8255d5517896186c6817cc1b449737b44ce2a61ce4cd8b996a5d85466e3c227b04abaaa2f12c30d85c41f0e35f90f220668b7431bff93f2d80fd6689dc79e8f709575546e25861af44963a73958466f899dd105b7650a655ae3d2910b8f575ef12aeaa8ec4b0c35d153ecd94016b50a9008048aee2ff74a608bcae1e71ec8fdf255d551e896186b92a7d9b2802d6a1520100915dc5fee94c11795c3ce3d91fbe4abaaa3d12c30d7254fb365005ad42a4020122bb8bfdd29822f2b879c7b23f7c9575547a25861ae43608c54ce1bd07ffd0c86d6f0e59cd2af227ccf08f6622fa2aeaa8f54b0c35c76c118a99c37a0fffa190dade1cb39a55e44f99e11ecc45f455d551ea96186b8e64356de05d56a2b70fe7ddb42fc55ca674e18fbf3d9a2fe9abaaa3d62c30d71b547d346d910fc825ec95e36055e8e14796057b7b7b3603d4575547ad5861ae35350cc187f8821303a5f1eeb8a22fea89d84d52f3f66daba9aeaa8f5bb0c35c696a19830ff10426074be3dd71445fd513b09aa5e7ecdb57535d551eb76186b8d260455eccb86acec6648de2da7f1dd2220d77a7ccd9b852a7baaa3d6fc30d71a34c9d16464738204495e1edacf499cc3ec731ab96b372495075547ae0861ae345254c853964d2c340f88a0351df91c0783aa5b32a66e636a1eaa8f5c20c35c6894a990a72c9a58681f11406a3bf2380f0754b6654cdcc6d43d551eb84186b8d1221446d9269ad8fbbaeee353f74a529db96d928a69b9a7e88aaa3d70930d71a234288db24d35b1f775ddc6a7ee94a53b72db2514d3734fd115547ae1261ae344611240ef67d18c1a6887efcf5c8f2cf6907a6fe976e6b9e23aa8f5c25c35c688b22481decfa31834d10fdf9eb91e59ed20f4dfd2edcd73c47551eb84b86b8d11644903bd9f463069a21fbf3d723cb3da41e9bfa5db9ae788eaa3d70970d71a22c1532d060bf288fec10be0fa63df4a342e97a50b8735e951e547ae12f1ae344572a65a0c17e511fd8217c1f4c7be94685d2f4a170e6bd2a3ca8f5c25e35c688ae54cb4182fca23fb042f83e98f7d28d0ba5e942e1cd7a547951eb84bc6b8d115c35a8dbb2cfa7021852b6a529e6034211f814e1c09af64cf3a3d70979d71a22b76b51b7659f4e0430a56d4a53cc068423f029c38135ec99e747ae12f3ae34456e62b5c77814fe8b1917a0bc9f8e6b30428c95e2ff6bdad7cf8f5c25e85c688adb517de79d005f98e9fc07a1371334887fc56e21fbd7b753a01eb84bd1b8d115b52f0e27e6d721b48bc4d56a661cc738fa371e9ff4af704b413d7097a471a22b695e1c4fcdae43691789aad4cc398e71f46e3d3fe95ee096827ae12f48e34456d2484af84832e954e6e01bd190697b0be388bcdbcfbdc2d105f5c25e92c688ada31ca8493d3c352c858cfdcb18c9543fc1bdbc139c7b87460ceb84bd268d115b453950927a786a590b19fb963192a87f837b782738f70e8c19d7097a4d1a22b68a72a124f4f0d4b21633f72c632550ff06f6f04e71ee1d1833ae12f49a34456d147154a296b80be6e434b480be410026089a22f8e0dc3bd4685c25e935688ada276ebb9dda467a5080362f2974785e740be0884dbeb8794cd1b84bd26bd115b44d69899461635723b839247ae0e71b10126d52f77a70f43da47097a4d8a22b68995f25816f9d10ca283f0f1db9c494481f86e84af1e1ea1f49e12f49b24456d1314a5d5b8c108417084ae4636b7f86b839ba12f1e0c3d5e294c25e936588ada26120cd0fc4f76ab0c8628eeecef56b986e20683fbe87ad692a84bd26cc115b44c1419a1f89eed56190c51ddd9dead730dc40d07f7d0f5ad255097a4d9822b689820f4697c0b40d45d95701e333cc0c89b32de35af71eb748ab12f49b31456d13031e8d2f81681a8bb2ae03c667981913665bc6b5ee3d6e915625e936628ada26063d1a5f02d03517655c078ccf303226ccb78d6bdc7add22ac4bd26cc515b44c0c064716b276ccb18284d5419656c275941b5d33b5f5bbe95997a4d98b2b6898170c8e2d64ed99630509aa832cad84eb2836ba676beb77d2b32f49b31656d1302e191c5ac9db32c60a135506595b09d6506d74ced7d6efa5665e93662cada2605c3238b593b6658c1426aa0cb2b613aca0dae99dafaddf4accbd26cc595b44c0b864716b276ccb18284d5419656c275941b5d33b5f5bbe95997a4d98b2b689817054f52efbaff8b308676e5ac2ceacda7e17e8d2bbb77ecf33f49b31666d1302df35fcb6a43653e8c89ba2dd7d93b7dcf6dc1401746eff4268e93662cdda2605bd6bf96d486ca7d1913745bafb276fb9edb82802e8ddfe84d1d26cc59bb44c0b7a6405333dafb225da3b519dee453d9bd61c9261cebbfeada4a4d98b38689816f3541cbf2835c6ce6c436963d480d95fa6e5671f9a77feff4a49b31671d1302de5344bd6fd41f01f905398efa0f810e74877109b31efffa29593662ce4a2605bc96897adfa83e03f20a731df41f021ce90ee213663dfff452b26cc59c944c0b7925d41b4a1de2300f91b29e67bd6a1c51c8884c8c4c0002e574d98b39389816f234695c1f092a884aa0319f4efa3a1b233bd4bed86800200af9b3167281302de45193ddc8dfbb38c0bd2fa11d73da18c6226da370a0005a5603662ce512605bc89327bb91bf7671817a5f423ae7b4318c44db46e14000b4ac06cc59ca24c0b791264f77237eece302f4be8475cf68631889b68dc2800169580d98b39449816f22456013d1cb3fee3166496b6b1e36a8b0be314144d002ecf02b316728a302de4473814d2e63e6048e495f3955bbd333e12726a8497005f4206662ce515605bc88d7029a5cc7cc091c92be72ab77a667c24e4d5092e00be840ccc59ca2ac0b7911a6c65a445cfe3a64a24947d66eb2b204475ec6e59017eac1a98b39456816f223364dda1387629cf4c15ef22c5ccb46883981b38af02fefc36316728ae02de446555cd9b1dc2b6214ff8a46d838fc6f901dc78cd5b05ff9c6d62ce515d05bc88c937ad8ee85bcec557be0f02ff15ec19fe6533f6b30c00dcdbc59ca2bb0b7911916f5b1dd0b79d8aaf7c1e05fe2bd833fcca67ed661801b9b78b39457616f223226ac8944e459d9816c50233f44e0e8ff4411236c93005177016728aed2de4464361a38149619db2e556ca8fe0927b47e32e66c98f600bd2e12ce515db5bc88c854f595b3f999de8827a5b47b91b54b7c1090fef1bc01949c359ca2bb7b79119092ac50f2c099e53bcc17cb76a2d07977cbe623a3480343787b39457706f223211558a1e58133ca77982f96ed45a0f2ef97cc4746900686f0f6728aee0de4464223726955cfcdbd1aad2b905a0aa7c85eda5cb44cf00d2821fce515dc2bc88c8436e4d2ab9f9b7a355a5720b4154f90bdb4b96899e01a5043f9ca2bb857911908668acae20c9d1c96317aa3e7aa0503fb1436f6f39034bac803945770bf223210b5d6bb4ee6a06157dfc1aa4ed36fea75d33213a6f0698fd01728aee18e446421546e9c289aa6eadb3c4fb71d2645b76b51284d0db0d339e03e515dc32c88c842919e5ddc02b3fde1f56bd0b9cbf151564d14bfdb31a68e008ca2bb8669119085133cbbb80567fbc3ead7a17397e2a2ac9a297fb6634d1c011945770cd223210a267977700acff787d5af42e72fc545593452ff6cc69a3802328aee19a446421445b4146ae306173b282ae84ddef06d32136a24995d348a447515dc33588c842874294e60937256a1cd22331b3d46bce3d1986ef28a692ec8fa2bb866c1190850d113c24bf44ad56f1710c8b5f9f35c474df503a4e4d277d2045770cd923210a192278497e895aade2e21916bf3e6b88e9bea0749c9a4efa408aee19b24642143244f092fd12b55bc5c4322d7e7cd711d37d40e939349df48115dc33648c84286415f37ea6fbcd3a43552a82f4f00c4ba1a6c42e6f693d8d032bb866ca190850c72be6fd4df79a7486aa5505e9e01897434d885cded27b1a065770cd943210a18e57cdfa9bef34e90d54aa0bd3c0312e869b10b9bda4f6340caee19b286421431c3bae4de4b4cc54d2761a3f9f76c08507e263cf7849ee0c1a5dc33651c8428637036ef4763ffb2c5cb8faa736e3df320a7109faed93ddbc35bb866ca490850c6d06dde8ec7ff658b971f54e6dc7be6414e213f5db27bb786b770cd949210a18da0dbbd1d8ffecb172e3ea9cdb8f7cc829c427ebb64f76f0d6ee19b292421431b41b77a3b1ffd962e5c7d539b71ef99053884fd76c9eede1addc3365248428636836ef4763ffb2c5cb8faa736e3df320a7109faed93ddbc35bb866ca490850c6d06dde8ec7ff658b971f54e6dc7be6414e213f5db27bb786b770cd949210a18da067cf763cd52d99e60b6ff5b0ee2aaa96eec11761f770b16fe19b292521431b3f5bb1452680bdb683e3a61359d2b37d2889c48ac0eee306e0c336524b4286367d4374e2f9d7ddefbf94124eab9bc5224bbfcb717eddc7b1c2866ca497850c6cf912fc1ea0861e6236f4eac54f2de86c922bd93efabb9107860cd949300a18d9f125f83d410c3cc46de9d58a9e5bd0d92457b27df577220f0c19b292601431b3e24bf07a82187988dbd3ab153cb7a1b248af64fbeaee441e18336524c0286367c423f34db10755946f741c527165a18c8c0b0c53d2dc89e03166ca498150c6cf8747e69b620eab28dee838a4e2cb4319181618a7a5b913c062cd949302a18d9f0e1bdf8f70f3b8d4759d3771bd8ce45a2ad873ab48722924c69b292606431b3e1b37bf1ee1e771a8eb3a6ee37b19c8b455b0e75690e452498d36524c0c86367c366f7e3dc3cee351d674ddc6f6339168ab61cead21c8a4931a6ca498190c6cf86c6b0ed43474292664b681b5e45d80f9516fdfb640914aca35d949303318d9f0d762300115beb4cf8139c993c0b1601a9d8c01c87e2297386cb292606731b3e1ad50725ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c3592cf70e5d7dfac62c4d78c6eaa89ae26634ce35ef8a61cdb5ca49819fc6cf86b159ee1cbafbf58c589af18dd55135c4cc699c6bdf14c39b6b9493033f8d9f0d623fee9222ce4d9b6902a943a298c9b1937f7b33bb2988dad8292606801b3e1ac30bef7cf272fdb989d218af3d27f18b21ab38c373531359b1524c0d01367c358517def9e4e5fb7313a4315e7a4fe31643567186e6a626b362a4981a026cf86b0a2fbdf3c9cbf6e6274862bcf49fc62c86ace30dcd4c4d66c549303404d9f0d6145f7be79397edcc4e90c579e93f8c590d59c61b9a989acd8a92606809b3e1ac284b0a27d4063e1b54ee511bca7576da155fce933231373f1624c0d01467c3584f2226a854e2deb961a9685f8ce14bdc256bdf82616270222d4981a029cf86b09d444d50a9c5bd72c352d0bf19c297b84ad7bf04c2c4e0445a930340539f0d613a14acfa0061dd683e7267a62b7b8d98905bc0658289c22cb6260680a83e1ac273"
]
- }
- ```
-
-
+ },
+ "shouldOverrideBuilder": false,
+ "executionRequests": [
+ "0x0096a96086cff07df17668f35f7418ef8798079167e3f4f9b72ecde17b28226137cf454ab1dd20ef5d924786ab3483c2f9003f5102dabe0a27b1746098d1dc17a5d3fbd478759fea9287e4e419b3c3cef20100000000000000b1acdb2c4d3df3f1b8d3bfd33421660df358d84d78d16c4603551935f4b67643373e7eb63dcb16ec359be0ec41fee33b03a16e80745f2374ff1d3c352508ac5d857c6476d3c3bcf7e6ca37427c9209f17be3af5264c0e2132b3dd1156c28b4e9f000000000000000a5c85a60ba2905c215f6a12872e62b1ee037051364244043a5f639aa81b04a204c55e7cc851f29c7c183be253ea1510b001db70c485b6264692f26b8aeaab5b0c384180df8e2184a21a808a3ec8e86ca01000000000000009561731785b48cf1886412234531e4940064584463e96ac63a1a154320227e333fb51addc4a89b7e0d3f862d7c1fd4ea03bd8eb3d8806f1e7daf591cbbbb92b0beb74d13c01617f22c5026b4f9f9f294a8a7c32db895de3b01bee0132c9209e1f100000000000000",
+ "0x01a94f5374fce5edbc8e2a8697c15331677e6ebf0b85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d0000000000000000000000000000000000000000000000000000010f698daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a75530100000000000000",
+ "0x02a94f5374fce5edbc8e2a8697c15331677e6ebf0b85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d098daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a7553"
+ ]
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/engine_newPayloadV1.mdx b/packages/example-site/docs/api-reference/methods/engine_newPayloadV1.mdx
index dd7fe7a..305c752 100644
--- a/packages/example-site/docs/api-reference/methods/engine_newPayloadV1.mdx
+++ b/packages/example-site/docs/api-reference/methods/engine_newPayloadV1.mdx
@@ -5,283 +5,279 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
- # engine\_newPayloadV1
-
-
+ # engine\_newPayloadV1
- Runs execution payload validation
-
- ## Parameters (by position)
- **Execution payload** `object` *required*
+ Runs execution payload validation
- Execution payload object V1
+ ## Parameters (by position)
- ***
+ **Execution payload** `object` *required*
-
-
-
- Show `Execution payload` object
-
+ Execution payload object V1
- #### `Execution payload` fields
+ ***
- * **parentHash** `string`
-
- Parent block hash
+
+
+
+ Show `Execution payload` object
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ #### `Execution payload` fields
- ***
+ * **parentHash** `string`
- * **feeRecipient** `string`
+ Parent block hash
- Recipient of transaction priority fees
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **feeRecipient** `string`
- * **stateRoot** `string`
+ Recipient of transaction priority fees
- State root
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **stateRoot** `string`
- * **receiptsRoot** `string`
+ State root
- Receipts root
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **receiptsRoot** `string`
- * **logsBloom** `string`
+ Receipts root
- Bloom filter
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ ***
- ***
+ * **logsBloom** `string`
- * **prevRandao** `string`
+ Bloom filter
- Previous randao value
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **prevRandao** `string`
- * **blockNumber** `string`
+ Previous randao value
- Block number
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ ***
- ***
+ * **blockNumber** `string`
- * **gasLimit** `string`
+ Block number
- Gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ ***
- ***
+ * **gasLimit** `string`
- * **gasUsed** `string`
+ Gas limit
- Gas used
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ ***
- ***
+ * **gasUsed** `string`
- * **timestamp** `string`
+ Gas used
- Timestamp
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ ***
- ***
+ * **timestamp** `string`
- * **extraData** `string`
+ Timestamp
- Extra data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- *Match pattern:* `^0x[0-9a-f]{0,64}$`
+ ***
- ***
+ * **extraData** `string`
- * **baseFeePerGas** `string`
+ Extra data
- Base fee per gas
+ *Match pattern:* `^0x[0-9a-f]{0,64}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ ***
- ***
+ * **baseFeePerGas** `string`
- * **blockHash** `string`
+ Base fee per gas
- Block hash
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **blockHash** `string`
- * **transactions** `array`
+ Block hash
- hex encoded bytes
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **transactions** `array`
- * **additionalProperties** `true`
+ hex encoded bytes
- ***
-
-
-
+ *Match pattern:* `^0x[0-9a-f]*$`
-
- ## Result
+ ***
- **Payload status** `object`
+ * **additionalProperties** `true`
- Payload status object V1
+ ***
+
+
- ***
+ ## Result
-
-
-
- Show `Payload status` object
-
+ **Payload status** `object`
- #### `Payload status` fields
+ Payload status object V1
- * **status** `string` *required*
+ ***
- Payload validation status
+
+
+
+ Show `Payload status` object
+
- *Allowed values:* `VALID` `INVALID` `SYNCING` `ACCEPTED` `INVALID_BLOCK_HASH`
+ #### `Payload status` fields
- ***
+ * **status** `string` *required*
- * **latestValidHash** `string`
+ Payload validation status
- The hash of the most recent valid block
+ *Allowed values:* `VALID` `INVALID` `SYNCING` `ACCEPTED` `INVALID_BLOCK_HASH`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **latestValidHash** `string`
- * **validationError** `string`
+ The hash of the most recent valid block
- Validation error message
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `true`
+ * **validationError** `string`
- ***
-
-
-
+ Validation error message
-
- ## Examples
+ ***
-
-
- engine\_newPayloadV1 example
-
+ * **additionalProperties** `true`
- #### Request
+ ***
+
+
- ```json
- {
- "params": [
- {
- "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
- "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
- "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "blockNumber": "0x1",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0x0",
- "timestamp": "0x5",
- "extraData": "0x",
- "baseFeePerGas": "0x7",
- "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "transactions": []
- }
- ]
- }
- ```
+ ## Examples
- #### Response
+
+
+
+ engine\_newPayloadV1 example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
+ "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
+ "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "blockNumber": "0x1",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0x0",
+ "timestamp": "0x5",
+ "extraData": "0x",
+ "baseFeePerGas": "0x7",
+ "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "transactions": []
+ }
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "status": "VALID",
+ "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "validationError": null
+ }
+ ```
+
+
- ```json
- {
- "status": "VALID",
- "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "validationError": null
- }
- ```
-
-
-
-
- engine\_newPayloadV1 invalid example
-
-
- #### Request
-
- ```json
- {
- "params": [
- {
- "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
- "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
- "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "blockNumber": "0x1",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0x0",
- "timestamp": "0x5",
- "extraData": "0x",
- "baseFeePerGas": "0x7",
- "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "transactions": []
- }
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "status": "INVALID",
- "latestValidHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "validationError": "New payload is invalid"
- }
- ```
-
-
+
+
+
+ engine\_newPayloadV1 invalid example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
+ "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
+ "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "blockNumber": "0x1",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0x0",
+ "timestamp": "0x5",
+ "extraData": "0x",
+ "baseFeePerGas": "0x7",
+ "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "transactions": []
+ }
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "status": "INVALID",
+ "latestValidHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "validationError": "New payload is invalid"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/engine_newPayloadV2.mdx b/packages/example-site/docs/api-reference/methods/engine_newPayloadV2.mdx
index 394ec20..6fbad4d 100644
--- a/packages/example-site/docs/api-reference/methods/engine_newPayloadV2.mdx
+++ b/packages/example-site/docs/api-reference/methods/engine_newPayloadV2.mdx
@@ -5,483 +5,477 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # engine\_newPayloadV2
+ # engine\_newPayloadV2
- Runs execution payload validation
+ Runs execution payload validation
-
- ## Parameters (by position)
+ ## Parameters (by position)
-
- **Execution payload** `object or object` *required*
+ **Execution payload** `object or object` *required*
- ***
+ ***
+
+
+
+
+ Show Option 1 `Execution payload object V1` object
+
+
+ #### `Execution payload object V1` fields
+ **Execution payload** `object` *required*
+
+ Execution payload object V1
+
+ ***
+
+
- Show Option 1 `Execution payload object V1` object
+ Show `Execution payload` object
- #### `Execution payload object V1` fields
+ #### `Execution payload` fields
- **Execution payload** `object` *required*
+ * **parentHash** `string` *required*
- Execution payload object V1
+ Parent block hash
- ***
+ *Match pattern:* `^0x[0-9a-f]{64}$`
-
-
-
- Show `Execution payload` object
-
+ ***
- #### `Execution payload` fields
+ * **feeRecipient** `string` *required*
- * **parentHash** `string` *required*
+ Recipient of transaction priority fees
- Parent block hash
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **stateRoot** `string` *required*
- * **feeRecipient** `string` *required*
+ State root
- Recipient of transaction priority fees
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **receiptsRoot** `string` *required*
- * **stateRoot** `string` *required*
+ Receipts root
- State root
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **logsBloom** `string` *required*
- * **receiptsRoot** `string` *required*
+ Bloom filter
- Receipts root
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **prevRandao** `string` *required*
- * **logsBloom** `string` *required*
+ Previous randao value
- Bloom filter
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ ***
- ***
+ * **blockNumber** `string` *required*
- * **prevRandao** `string` *required*
+ Block number
- Previous randao value
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **gasLimit** `string` *required*
- * **blockNumber** `string` *required*
+ Gas limit
- Block number
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ ***
- ***
+ * **gasUsed** `string` *required*
- * **gasLimit** `string` *required*
+ Gas used
- Gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ ***
- ***
+ * **timestamp** `string` *required*
- * **gasUsed** `string` *required*
+ Timestamp
- Gas used
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ ***
- ***
+ * **extraData** `string` *required*
- * **timestamp** `string` *required*
+ Extra data
- Timestamp
+ *Match pattern:* `^0x[0-9a-f]{0,64}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ ***
- ***
+ * **baseFeePerGas** `string` *required*
- * **extraData** `string` *required*
+ Base fee per gas
- Extra data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- *Match pattern:* `^0x[0-9a-f]{0,64}$`
+ ***
- ***
+ * **blockHash** `string` *required*
- * **baseFeePerGas** `string` *required*
+ Block hash
- Base fee per gas
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ ***
- ***
+ * **transactions** `array` *required*
- * **blockHash** `string` *required*
+ hex encoded bytes
- Block hash
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **additionalProperties** `true`
- * **transactions** `array` *required*
+ ***
+
+
+
+
- hex encoded bytes
+
+
+
+ Show Option 2 `Execution payload object V2` object
+
- *Match pattern:* `^0x[0-9a-f]*$`
+ #### `Execution payload object V2` fields
- ***
+ **Execution payload** `object` *required*
- * **additionalProperties** `true`
+ Execution payload object V2
- ***
-
-
-
+ ***
+
- Show Option 2 `Execution payload object V2` object
+ Show `Execution payload` object
- #### `Execution payload object V2` fields
+ #### `Execution payload` fields
- **Execution payload** `object` *required*
+ * **parentHash** `string` *required*
- Execution payload object V2
+ Parent block hash
- ***
+ *Match pattern:* `^0x[0-9a-f]{64}$`
+
+ ***
-
-
-
- Show `Execution payload` object
-
+ * **feeRecipient** `string` *required*
- #### `Execution payload` fields
+ Recipient of transaction priority fees
- * **parentHash** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+
+ ***
- Parent block hash
+ * **stateRoot** `string` *required*
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ State root
- ***
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- * **feeRecipient** `string` *required*
+ ***
- Recipient of transaction priority fees
+ * **receiptsRoot** `string` *required*
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ Receipts root
- ***
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- * **stateRoot** `string` *required*
+ ***
- State root
+ * **logsBloom** `string` *required*
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ Bloom filter
- ***
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- * **receiptsRoot** `string` *required*
+ ***
- Receipts root
+ * **prevRandao** `string` *required*
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ Previous randao value
- ***
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- * **logsBloom** `string` *required*
+ ***
- Bloom filter
+ * **blockNumber** `string` *required*
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ Block number
- ***
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- * **prevRandao** `string` *required*
+ ***
- Previous randao value
+ * **gasLimit** `string` *required*
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ Gas limit
- ***
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- * **blockNumber** `string` *required*
+ ***
- Block number
+ * **gasUsed** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ Gas used
- ***
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- * **gasLimit** `string` *required*
+ ***
- Gas limit
+ * **timestamp** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ Timestamp
- ***
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- * **gasUsed** `string` *required*
+ ***
- Gas used
+ * **extraData** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ Extra data
- ***
+ *Match pattern:* `^0x[0-9a-f]{0,64}$`
- * **timestamp** `string` *required*
+ ***
- Timestamp
+ * **baseFeePerGas** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ Base fee per gas
- ***
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- * **extraData** `string` *required*
+ ***
- Extra data
+ * **blockHash** `string` *required*
- *Match pattern:* `^0x[0-9a-f]{0,64}$`
+ Block hash
- ***
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- * **baseFeePerGas** `string` *required*
+ ***
- Base fee per gas
+ * **transactions** `array` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ hex encoded bytes
- ***
+ *Match pattern:* `^0x[0-9a-f]*$`
- * **blockHash** `string` *required*
+ ***
- Block hash
+ * **withdrawals** `array` *required*
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ Withdrawal object V1
- ***
+ ***
- * **transactions** `array` *required*
+
+
+
+ Show `withdrawals` object
+
- hex encoded bytes
+ #### `withdrawals` fields
- *Match pattern:* `^0x[0-9a-f]*$`
+ * **index** `string` *required*
- ***
+ Withdrawal index
- * **withdrawals** `array` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Withdrawal object V1
+ ***
- ***
+ * **validatorIndex** `string` *required*
-
-
-
- Show `withdrawals` object
-
+ Validator index
- #### `withdrawals` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- * **index** `string` *required*
+ ***
- Withdrawal index
+ * **address** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ Withdrawal address
- ***
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- * **validatorIndex** `string` *required*
+ ***
- Validator index
+ * **amount** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ Withdrawal amount
- ***
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- * **address** `string` *required*
+ ***
- Withdrawal address
+ * **additionalProperties** `true`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
+
+
- ***
+ * **additionalProperties** `true`
- * **amount** `string` *required*
+ ***
+
+
+
+
- Withdrawal amount
+ ## Result
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ **Payload status** `object`
- ***
+ Payload status object deprecating INVALID\_BLOCK\_HASH status
- * **additionalProperties** `true`
+ ***
- ***
-
-
+
+
+
+ Show `Payload status` object
+
- * **additionalProperties** `true`
+ #### `Payload status` fields
- ***
-
-
-
-
-
+ * **status** `string` *required*
-
- ## Result
+ Payload validation status
- **Payload status** `object`
+ *Allowed values:* `VALID` `INVALID` `SYNCING` `ACCEPTED`
- Payload status object deprecating INVALID\_BLOCK\_HASH status
+ ***
- ***
+ * **latestValidHash** `string`
-
-
-
- Show `Payload status` object
-
+ The hash of the most recent valid block
- #### `Payload status` fields
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- * **status** `string` *required*
+ ***
- Payload validation status
+ * **validationError** `string`
- *Allowed values:* `VALID` `INVALID` `SYNCING` `ACCEPTED`
+ Validation error message
- ***
+ ***
- * **latestValidHash** `string`
+ * **additionalProperties** `true`
- The hash of the most recent valid block
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ## Errors
- ***
+
+
+ Error code: -32602
+
- * **validationError** `string`
+ * **code**
- Validation error message
+ -32602
+ * **message**
- ***
+ Invalid params
+
- * **additionalProperties** `true`
+ ## Examples
- ***
-
-
-
-
-
- ## Errors
-
-
-
- Error code: -32602
-
-
- * **code**
-
- -32602
- * **message**
-
- Invalid params
-
-
-
-
- ## Examples
-
-
-
- engine\_newPayloadV2 example
-
-
- #### Request
-
- ```json
- {
- "params": [
- {
- "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
- "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
- "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14",
- "blockNumber": "0x112720f",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0xbad2e8",
- "timestamp": "0x64e7785b",
- "extraData": "0x",
- "baseFeePerGas": "0x7",
- "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "transactions": [
- "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90",
- "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee",
- "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d"
- ],
- "withdrawals": [
- {
- "index": "0xf0",
- "validatorIndex": "0xf0",
- "address": "0x00000000000000000000000000000000000010f0",
- "amount": "0x1"
- },
- {
- "index": "0xf1",
- "validatorIndex": "0xf1",
- "address": "0x00000000000000000000000000000000000010f1",
- "amount": "0x1"
- }
- ]
- }
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "status": "VALID",
- "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "validationError": null
- }
- ```
-
-
+
+
+
+ engine\_newPayloadV2 example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
+ "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
+ "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14",
+ "blockNumber": "0x112720f",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0xbad2e8",
+ "timestamp": "0x64e7785b",
+ "extraData": "0x",
+ "baseFeePerGas": "0x7",
+ "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "transactions": [
+ "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90",
+ "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee",
+ "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d"
+ ],
+ "withdrawals": [
+ {
+ "index": "0xf0",
+ "validatorIndex": "0xf0",
+ "address": "0x00000000000000000000000000000000000010f0",
+ "amount": "0x1"
+ },
+ {
+ "index": "0xf1",
+ "validatorIndex": "0xf1",
+ "address": "0x00000000000000000000000000000000000010f1",
+ "amount": "0x1"
+ }
+ ]
+ }
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "status": "VALID",
+ "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "validationError": null
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/engine_newPayloadV3.mdx b/packages/example-site/docs/api-reference/methods/engine_newPayloadV3.mdx
index 055e8df..9159589 100644
--- a/packages/example-site/docs/api-reference/methods/engine_newPayloadV3.mdx
+++ b/packages/example-site/docs/api-reference/methods/engine_newPayloadV3.mdx
@@ -5,376 +5,368 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # engine\_newPayloadV3
-
-
+ # engine\_newPayloadV3
- Runs execution payload validation
-
- ## Parameters (by position)
- **Execution payload** `object` *required*
+ Runs execution payload validation
- Execution payload object V3
+ ## Parameters (by position)
- ***
+ **Execution payload** `object` *required*
-
-
-
- Show `Execution payload` object
-
+ Execution payload object V3
- #### `Execution payload` fields
+ ***
- * **parentHash** `string`
+
+
+
+ Show `Execution payload` object
+
- Parent block hash
+ #### `Execution payload` fields
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **parentHash** `string`
- ***
+ Parent block hash
- * **feeRecipient** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Recipient of transaction priority fees
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **feeRecipient** `string`
- ***
+ Recipient of transaction priority fees
- * **stateRoot** `string`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- State root
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **stateRoot** `string`
- ***
+ State root
- * **receiptsRoot** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Receipts root
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **receiptsRoot** `string`
- ***
+ Receipts root
- * **logsBloom** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Bloom filter
+ ***
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ * **logsBloom** `string`
- ***
+ Bloom filter
- * **prevRandao** `string`
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- Previous randao value
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **prevRandao** `string`
- ***
+ Previous randao value
- * **blockNumber** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Block number
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **blockNumber** `string`
- ***
+ Block number
- * **gasLimit** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Gas limit
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **gasLimit** `string`
- ***
+ Gas limit
- * **gasUsed** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Gas used
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **gasUsed** `string`
- ***
+ Gas used
- * **timestamp** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Timestamp
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **timestamp** `string`
- ***
+ Timestamp
- * **extraData** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Extra data
+ ***
- *Match pattern:* `^0x[0-9a-f]{0,64}$`
+ * **extraData** `string`
- ***
+ Extra data
- * **baseFeePerGas** `string`
+ *Match pattern:* `^0x[0-9a-f]{0,64}$`
- Base fee per gas
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **baseFeePerGas** `string`
- ***
+ Base fee per gas
- * **blockHash** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- Block hash
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blockHash** `string`
- ***
+ Block hash
- * **transactions** `array`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- hex encoded bytes
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ * **transactions** `array`
- ***
+ hex encoded bytes
- * **withdrawals** `array`
+ *Match pattern:* `^0x[0-9a-f]*$`
- Withdrawal object V1
+ ***
- ***
+ * **withdrawals** `array`
-
-
-
- Show `withdrawals` object
-
+ Withdrawal object V1
- #### `withdrawals` fields
+ ***
- * **index** `string` *required*
+
+
+
+ Show `withdrawals` object
+
- Withdrawal index
+ #### `withdrawals` fields
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **index** `string` *required*
- ***
+ Withdrawal index
- * **validatorIndex** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Validator index
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **validatorIndex** `string` *required*
- ***
+ Validator index
- * **address** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Withdrawal address
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **address** `string` *required*
- ***
+ Withdrawal address
- * **amount** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- Withdrawal amount
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **amount** `string` *required*
- ***
+ Withdrawal amount
- * **additionalProperties** `true`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
-
-
+ ***
- * **blobGasUsed** `string`
+ * **additionalProperties** `true`
- Blob gas used
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **blobGasUsed** `string`
- ***
+ Blob gas used
- * **excessBlobGas** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Excess blob gas
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **excessBlobGas** `string`
- ***
+ Excess blob gas
- * **additionalProperties** `true`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
-
-
+ ***
- **Expected blob versioned hashes** `array` *required*
+ * **additionalProperties** `true`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ **Expected blob versioned hashes** `array
` *required*
- ***
+ 32 byte hex value
- **Root of the parent beacon block** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
+ ***
-
- ## Result
+ **Root of the parent beacon block** `string` *required*
- **Payload status** `object`
+ ***
- Payload status object deprecating INVALID\_BLOCK\_HASH status
+ ## Result
- ***
+ **Payload status** `object`
-
-
-
- Show `Payload status` object
-
+ Payload status object deprecating INVALID\_BLOCK\_HASH status
- #### `Payload status` fields
+ ***
- * **status** `string` *required*
+
+
+
+ Show `Payload status` object
+
- Payload validation status
+ #### `Payload status` fields
- *Allowed values:* `VALID` `INVALID` `SYNCING` `ACCEPTED`
+ * **status** `string` *required*
- ***
+ Payload validation status
- * **latestValidHash** `string`
+ *Allowed values:* `VALID` `INVALID` `SYNCING` `ACCEPTED`
- The hash of the most recent valid block
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **latestValidHash** `string`
- ***
+ The hash of the most recent valid block
- * **validationError** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Validation error message
+ ***
- ***
+ * **validationError** `string`
- * **additionalProperties** `true`
+ Validation error message
- ***
-
-
-
+ ***
-
- ## Errors
+ * **additionalProperties** `true`
-
-
- Error code: -32602
-
+ ***
+
+
- * **code**
+ ## Errors
- -32602
- * **message**
+
+
+ Error code: -32602
+
- Invalid params
-
+ * **code**
-
-
- Error code: -38005
-
+ -32602
+ * **message**
- * **code**
+ Invalid params
+
- -38005
- * **message**
+
+
+ Error code: -38005
+
- Unsupported fork
-
-
+ * **code**
-
- ## Examples
+ -38005
+ * **message**
-
-
- engine\_newPayloadV3 example
-
+ Unsupported fork
+
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- {
- "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
- "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
- "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14",
- "blockNumber": "0x112720f",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0xbad2e8",
- "timestamp": "0x64e7785b",
- "extraData": "0x",
- "baseFeePerGas": "0x7",
- "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "transactions": [
- "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90",
- "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee",
- "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d"
- ],
- "withdrawals": [
- {
- "index": "0xf0",
- "validatorIndex": "0xf0",
- "address": "0x00000000000000000000000000000000000010f0",
- "amount": "0x1"
- },
- {
- "index": "0xf1",
- "validatorIndex": "0xf1",
- "address": "0x00000000000000000000000000000000000010f1",
- "amount": "0x1"
- }
- ],
- "blobGasUsed": "0x0",
- "excessBlobGas": "0x0"
- },
- [
- "0x000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+
+
+
+ engine\_newPayloadV3 example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
+ "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
+ "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14",
+ "blockNumber": "0x112720f",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0xbad2e8",
+ "timestamp": "0x64e7785b",
+ "extraData": "0x",
+ "baseFeePerGas": "0x7",
+ "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "transactions": [
+ "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90",
+ "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee",
+ "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d"
+ ],
+ "withdrawals": [
+ {
+ "index": "0xf0",
+ "validatorIndex": "0xf0",
+ "address": "0x00000000000000000000000000000000000010f0",
+ "amount": "0x1"
+ },
+ {
+ "index": "0xf1",
+ "validatorIndex": "0xf1",
+ "address": "0x00000000000000000000000000000000000010f1",
+ "amount": "0x1"
+ }
],
- "0x169630f535b4a41330164c6e5c92b1224c0c407f582d407d0ac3d206cd32fd52"
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "status": "VALID",
- "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "validationError": null
- }
- ```
-
-
+ "blobGasUsed": "0x0",
+ "excessBlobGas": "0x0"
+ },
+ [
+ "0x000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "0x169630f535b4a41330164c6e5c92b1224c0c407f582d407d0ac3d206cd32fd52"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "status": "VALID",
+ "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "validationError": null
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/engine_newPayloadV4.mdx b/packages/example-site/docs/api-reference/methods/engine_newPayloadV4.mdx
index 166496e..3189d84 100644
--- a/packages/example-site/docs/api-reference/methods/engine_newPayloadV4.mdx
+++ b/packages/example-site/docs/api-reference/methods/engine_newPayloadV4.mdx
@@ -5,389 +5,381 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # engine\_newPayloadV4
-
-
+ # engine\_newPayloadV4
- Runs execution payload validation
-
- ## Parameters (by position)
- **Execution payload** `object` *required*
+ Runs execution payload validation
- Execution payload object V3
+ ## Parameters (by position)
- ***
+ **Execution payload** `object` *required*
-
-
-
- Show `Execution payload` object
-
+ Execution payload object V3
- #### `Execution payload` fields
+ ***
- * **parentHash** `string`
+
+
+
+ Show `Execution payload` object
+
- Parent block hash
+ #### `Execution payload` fields
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **parentHash** `string`
- ***
+ Parent block hash
- * **feeRecipient** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Recipient of transaction priority fees
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **feeRecipient** `string`
- ***
+ Recipient of transaction priority fees
- * **stateRoot** `string`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- State root
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **stateRoot** `string`
- ***
+ State root
- * **receiptsRoot** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Receipts root
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **receiptsRoot** `string`
- ***
+ Receipts root
- * **logsBloom** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Bloom filter
+ ***
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ * **logsBloom** `string`
- ***
+ Bloom filter
- * **prevRandao** `string`
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- Previous randao value
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **prevRandao** `string`
- ***
+ Previous randao value
- * **blockNumber** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Block number
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **blockNumber** `string`
- ***
+ Block number
- * **gasLimit** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Gas limit
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **gasLimit** `string`
- ***
+ Gas limit
- * **gasUsed** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Gas used
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **gasUsed** `string`
- ***
+ Gas used
- * **timestamp** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Timestamp
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **timestamp** `string`
- ***
+ Timestamp
- * **extraData** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Extra data
+ ***
- *Match pattern:* `^0x[0-9a-f]{0,64}$`
+ * **extraData** `string`
- ***
+ Extra data
- * **baseFeePerGas** `string`
+ *Match pattern:* `^0x[0-9a-f]{0,64}$`
- Base fee per gas
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **baseFeePerGas** `string`
- ***
+ Base fee per gas
- * **blockHash** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- Block hash
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blockHash** `string`
- ***
+ Block hash
- * **transactions** `array`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- hex encoded bytes
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ * **transactions** `array`
- ***
+ hex encoded bytes
- * **withdrawals** `array`
+ *Match pattern:* `^0x[0-9a-f]*$`
- Withdrawal object V1
+ ***
- ***
+ * **withdrawals** `array`
-
-
-
- Show `withdrawals` object
-
+ Withdrawal object V1
- #### `withdrawals` fields
+ ***
- * **index** `string` *required*
+
+
+
+ Show `withdrawals` object
+
- Withdrawal index
+ #### `withdrawals` fields
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **index** `string` *required*
- ***
+ Withdrawal index
- * **validatorIndex** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Validator index
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **validatorIndex** `string` *required*
- ***
+ Validator index
- * **address** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Withdrawal address
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **address** `string` *required*
- ***
+ Withdrawal address
- * **amount** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- Withdrawal amount
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **amount** `string` *required*
- ***
+ Withdrawal amount
- * **additionalProperties** `true`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
-
-
+ ***
- * **blobGasUsed** `string`
+ * **additionalProperties** `true`
- Blob gas used
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **blobGasUsed** `string`
- ***
+ Blob gas used
- * **excessBlobGas** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Excess blob gas
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **excessBlobGas** `string`
- ***
+ Excess blob gas
- * **additionalProperties** `true`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
-
-
+ ***
- **Expected blob versioned hashes** `array` *required*
+ * **additionalProperties** `true`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ **Expected blob versioned hashes** `array
` *required*
- ***
+ 32 byte hex value
- **Root of the parent beacon block** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- **Execution requests** `array` *required*
+ **Root of the parent beacon block** `string` *required*
- hex encoded bytes
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ **Execution requests** `array` *required*
- ***
-
+ hex encoded bytes
-
- ## Result
+ *Match pattern:* `^0x[0-9a-f]*$`
- **Payload status** `object`
+ ***
- Payload status object deprecating INVALID\_BLOCK\_HASH status
+ ## Result
- ***
+ **Payload status** `object`
-
-
-
- Show `Payload status` object
-
+ Payload status object deprecating INVALID\_BLOCK\_HASH status
- #### `Payload status` fields
+ ***
- * **status** `string` *required*
+
+
+
+ Show `Payload status` object
+
- Payload validation status
+ #### `Payload status` fields
- *Allowed values:* `VALID` `INVALID` `SYNCING` `ACCEPTED`
+ * **status** `string` *required*
- ***
+ Payload validation status
- * **latestValidHash** `string`
+ *Allowed values:* `VALID` `INVALID` `SYNCING` `ACCEPTED`
- The hash of the most recent valid block
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **latestValidHash** `string`
- ***
+ The hash of the most recent valid block
- * **validationError** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Validation error message
+ ***
- ***
+ * **validationError** `string`
- * **additionalProperties** `true`
+ Validation error message
- ***
-
-
-
+ ***
-
- ## Errors
+ * **additionalProperties** `true`
-
-
- Error code: -32602
-
+ ***
+
+
- * **code**
+ ## Errors
- -32602
- * **message**
+
+
+ Error code: -32602
+
- Invalid params
-
+ * **code**
-
-
- Error code: -38005
-
+ -32602
+ * **message**
- * **code**
+ Invalid params
+
- -38005
- * **message**
+
+
+ Error code: -38005
+
- Unsupported fork
-
-
+ * **code**
-
- ## Examples
+ -38005
+ * **message**
-
-
- engine\_newPayloadV4 example
-
+ Unsupported fork
+
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- {
- "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
- "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
- "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
- "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14",
- "blockNumber": "0x112720f",
- "gasLimit": "0x1c9c380",
- "gasUsed": "0xbad2e8",
- "timestamp": "0x64e7785b",
- "extraData": "0x",
- "baseFeePerGas": "0x7",
- "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "transactions": [
- "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90",
- "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee",
- "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d"
- ],
- "withdrawals": [
- {
- "index": "0xf0",
- "validatorIndex": "0xf0",
- "address": "0x00000000000000000000000000000000000010f0",
- "amount": "0x1"
- },
- {
- "index": "0xf1",
- "validatorIndex": "0xf1",
- "address": "0x00000000000000000000000000000000000010f1",
- "amount": "0x1"
- }
- ],
- "blobGasUsed": "0x0",
- "excessBlobGas": "0x0"
- },
- [
- "0x000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+
+
+
+ engine\_newPayloadV4 example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "parentHash": "0x3b8fb240d288781d4aac94d3fd16809ee413bc99294a085798a589dae51ddd4a",
+ "feeRecipient": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "stateRoot": "0xca3149fa9e37db08d1cd49c9061db1002ef1cd58db2210f2115c8c989b2bdf45",
+ "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "prevRandao": "0xc130d5e63c61c935f6089e61140ca9136172677cf6aa5800dcc1cf0a02152a14",
+ "blockNumber": "0x112720f",
+ "gasLimit": "0x1c9c380",
+ "gasUsed": "0xbad2e8",
+ "timestamp": "0x64e7785b",
+ "extraData": "0x",
+ "baseFeePerGas": "0x7",
+ "blockHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "transactions": [
+ "0x03f88f0780843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0840650aa8f74d2b07f40067dc33b715078d73422f01da17abdbd11e02bbdfda9a04b2260f6022bf53eadb337b3e59514936f7317d872defb891a708ee279bdca90",
+ "0x03f88f0701843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001521d528ad0c760354a4f0496776cf14a92fe1fb5d50e959dcea1a489c7c83101a0a86c1fd8c2e74820686937f5c1bfe836e2fb622ac9fcbebdc4ab4357f2dbbc61a05c3b2b44ff8252f78d70aeb33f8ba09beaeadad1b376a57d34fa720bbc4a18ee",
+ "0x03f88f0702843b9aca008506fc23ac00830186a09400000000000000000000000000000000000001008080c001e1a001453362c360fdd8832e3539d463e6d64b2ee320ac6a08885df6083644a063e701a037a728aec08aefffa702a2ca620db89caf3e46ab7f25f7646fc951510991badca065d846f046357af39bb739b161233fce73ddfe0bb87f2d28ef60dfe6dbb0128d"
+ ],
+ "withdrawals": [
+ {
+ "index": "0xf0",
+ "validatorIndex": "0xf0",
+ "address": "0x00000000000000000000000000000000000010f0",
+ "amount": "0x1"
+ },
+ {
+ "index": "0xf1",
+ "validatorIndex": "0xf1",
+ "address": "0x00000000000000000000000000000000000010f1",
+ "amount": "0x1"
+ }
],
- "0x169630f535b4a41330164c6e5c92b1224c0c407f582d407d0ac3d206cd32fd52",
- [
- "0x96a96086cff07df17668f35f7418ef8798079167e3f4f9b72ecde17b28226137cf454ab1dd20ef5d924786ab3483c2f9003f5102dabe0a27b1746098d1dc17a5d3fbd478759fea9287e4e419b3c3cef20100000000000000b1acdb2c4d3df3f1b8d3bfd33421660df358d84d78d16c4603551935f4b67643373e7eb63dcb16ec359be0ec41fee33b03a16e80745f2374ff1d3c352508ac5d857c6476d3c3bcf7e6ca37427c9209f17be3af5264c0e2132b3dd1156c28b4e9f000000000000000a5c85a60ba2905c215f6a12872e62b1ee037051364244043a5f639aa81b04a204c55e7cc851f29c7c183be253ea1510b001db70c485b6264692f26b8aeaab5b0c384180df8e2184a21a808a3ec8e86ca01000000000000009561731785b48cf1886412234531e4940064584463e96ac63a1a154320227e333fb51addc4a89b7e0d3f862d7c1fd4ea03bd8eb3d8806f1e7daf591cbbbb92b0beb74d13c01617f22c5026b4f9f9f294a8a7c32db895de3b01bee0132c9209e1f100000000000000",
- "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d0000000000000000000000000000000000000000000000000000010f698daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a75530100000000000000",
- "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d098daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a7553"
- ]
+ "blobGasUsed": "0x0",
+ "excessBlobGas": "0x0"
+ },
+ [
+ "0x000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "0x169630f535b4a41330164c6e5c92b1224c0c407f582d407d0ac3d206cd32fd52",
+ [
+ "0x96a96086cff07df17668f35f7418ef8798079167e3f4f9b72ecde17b28226137cf454ab1dd20ef5d924786ab3483c2f9003f5102dabe0a27b1746098d1dc17a5d3fbd478759fea9287e4e419b3c3cef20100000000000000b1acdb2c4d3df3f1b8d3bfd33421660df358d84d78d16c4603551935f4b67643373e7eb63dcb16ec359be0ec41fee33b03a16e80745f2374ff1d3c352508ac5d857c6476d3c3bcf7e6ca37427c9209f17be3af5264c0e2132b3dd1156c28b4e9f000000000000000a5c85a60ba2905c215f6a12872e62b1ee037051364244043a5f639aa81b04a204c55e7cc851f29c7c183be253ea1510b001db70c485b6264692f26b8aeaab5b0c384180df8e2184a21a808a3ec8e86ca01000000000000009561731785b48cf1886412234531e4940064584463e96ac63a1a154320227e333fb51addc4a89b7e0d3f862d7c1fd4ea03bd8eb3d8806f1e7daf591cbbbb92b0beb74d13c01617f22c5026b4f9f9f294a8a7c32db895de3b01bee0132c9209e1f100000000000000",
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d0000000000000000000000000000000000000000000000000000010f698daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a75530100000000000000",
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b85103a5617937691dfeeb89b86a80d5dc9e3c9d3a1a0e7ce311e26e0bb732eabaa47ffa288f0d54de28209a62a7d29d098daeed734da114470da559bd4b4c7259e1f7952555241dcbc90cf194a2ef676fc6005f3672fada2a3645edb297a7553"
]
- }
- ```
-
- #### Response
-
- ```json
- {
- "status": "VALID",
- "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
- "validationError": null
- }
- ```
-
-
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "status": "VALID",
+ "latestValidHash": "0x3559e851470f6e7bbed1db474980683e8c315bfce99b2a6ef47c057c04de7858",
+ "validationError": null
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_accounts.mdx b/packages/example-site/docs/api-reference/methods/eth_accounts.mdx
index a6ce0a4..93c2281 100644
--- a/packages/example-site/docs/api-reference/methods/eth_accounts.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_accounts.mdx
@@ -5,59 +5,53 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_accounts
-
-
+ # eth\_accounts
- Returns a list of addresses owned by client.
-
- ## Parameters (by position)
- This method does not accept any parameters.
-
+ Returns a list of addresses owned by client.
-
- ## Result
+ ## Parameters (by position)
- **Accounts** `array`
+ This method does not accept any parameters.
- hex encoded address
+ ## Result
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ **Accounts** `array`
- ***
-
+ hex encoded address
-
- ## Examples
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
-
-
- eth\_accounts example
-
+ ***
- #### Request
+ ## Examples
- ```json
- {
- "params": []
- }
- ```
-
- #### Response
-
- ```json
- [
- "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0"
- ]
- ```
-
-
+
+
+
+ eth\_accounts example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": []
+ }
+ ```
+
+ #### Response
+
+ ```json
+ [
+ "0xd1f5279be4b4dd94133a23dee1b23f5bfc0db1d0"
+ ]
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_blobBaseFee.mdx b/packages/example-site/docs/api-reference/methods/eth_blobBaseFee.mdx
index fb718cd..cbddd4a 100644
--- a/packages/example-site/docs/api-reference/methods/eth_blobBaseFee.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_blobBaseFee.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_blobBaseFee
+ # eth\_blobBaseFee
- Returns the base fee per blob gas in wei.
+ Returns the base fee per blob gas in wei.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
- **Blob gas base fee** `string`
+ **Blob gas base fee** `string`
- Blob gas base fee
+ Blob gas base fee
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
-
- ## Examples
+ ## Examples
-
-
- eth\_blobBaseFee example
-
+
+
+
+ eth\_blobBaseFee example
+
- #### Request
+ #### Request
- ```json
- {
- "params": []
- }
- ```
+ ```json
+ {
+ "params": []
+ }
+ ```
- #### Response
+ #### Response
- ```json
- "0x3f5694c1f"
- ```
-
-
+ ```json
+ "0x3f5694c1f"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_blockNumber.mdx b/packages/example-site/docs/api-reference/methods/eth_blockNumber.mdx
index d841311..fe1bfa6 100644
--- a/packages/example-site/docs/api-reference/methods/eth_blockNumber.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_blockNumber.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_blockNumber
+ # eth\_blockNumber
- Returns the number of most recent block.
+ Returns the number of most recent block.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
- **Block number** `string`
+ **Block number** `string`
- hex encoded unsigned integer
+ hex encoded unsigned integer
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
-
- ## Examples
+ ## Examples
-
-
- eth\_blockNumber example
-
+
+
+
+ eth\_blockNumber example
+
- #### Request
+ #### Request
- ```json
- {
- "params": []
- }
- ```
+ ```json
+ {
+ "params": []
+ }
+ ```
- #### Response
+ #### Response
- ```json
- "0x2377"
- ```
-
-
+ ```json
+ "0x2377"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_call.mdx b/packages/example-site/docs/api-reference/methods/eth_call.mdx
index 84db52b..035af76 100644
--- a/packages/example-site/docs/api-reference/methods/eth_call.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_call.mdx
@@ -5,385 +5,385 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_call
+ # eth\_call
- Executes a new message call immediately without creating a transaction on the block chain.
+ Executes a new message call immediately without creating a transaction on the block chain.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Transaction** `object` *required*
+ **Transaction** `object` *required*
- Transaction object generic to all types
+ Transaction object generic to all types
- ***
+ ***
-
-
-
- Show `Transaction` object
-
+
+
+
+ Show `Transaction` object
+
- #### `Transaction` fields
+ #### `Transaction` fields
- * **type** `string`
+ * **type** `string`
- type
+ type
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **nonce** `string`
+ * **nonce** `string`
- nonce
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **to** `null or string`
+ * **to** `null or string`
- ***
+ ***
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- #### `Contract Creation (null)` fields
+ #### `Contract Creation (null)` fields
- **to** `null`
+ **to** `null`
- Contract Creation (null)
+ Contract Creation (null)
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Address` string
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Address` fields
+ #### `Address` fields
- **to** `string`
+ **to** `string`
- Address
+ Address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- * **from** `string`
+ * **from** `string`
- from address
+ from address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **gas** `string`
+ * **gas** `string`
- gas limit
+ gas limit
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string`
+ * **value** `string`
- value
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **input** `string`
+ * **input** `string`
- input data
+ input data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **gasPrice** `string`
+ * **gasPrice** `string`
- The gas price willing to be paid by the sender in wei
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string`
+ * **maxPriorityFeePerGas** `string`
- Maximum fee per gas the sender is willing to pay to miners in wei
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string`
+ * **maxFeePerGas** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string`
+ * **maxFeePerBlobGas** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **accessList** `array`
+ * **accessList** `array`
- EIP-2930 access list
+ EIP-2930 access list
- ***
+ ***
+
+
+
+
+ Show `accessList` object
+
-
-
-
- Show `accessList` object
-
+ #### `accessList` fields
+
+ EIP-2930 access list
- #### `accessList` fields
+ * **address** `string` *required*
- EIP-2930 access list
+ hex encoded address
- * **address** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- hex encoded address
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **storageKeys** `array` *required*
- ***
+ 32 byte hex value
- * **storageKeys** `array` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- 32 byte hex value
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **additionalProperties** `false`
- ***
+ ***
+
+
- * **additionalProperties** `false`
+ * **blobVersionedHashes** `array`
- ***
-
-
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
- * **blobVersionedHashes** `array`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blobs** `array`
- ***
+ Raw blob data.
- * **blobs** `array`
+ *Match pattern:* `^0x[0-9a-f]*$`
- Raw blob data.
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ * **chainId** `string`
- ***
+ Chain ID that this transaction is valid on.
- * **chainId** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Chain ID that this transaction is valid on.
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **authorizationList** `array`
- ***
+ EIP-7702 authorization list
- * **authorizationList** `array`
+ ***
- EIP-7702 authorization list
+
+
+
+ Show `authorizationList` object
+
- ***
+ #### `authorizationList` fields
-
-
-
- Show `authorizationList` object
-
+ EIP-7702 authorization list
- #### `authorizationList` fields
+ * **chainId** `string` *required*
- EIP-7702 authorization list
+ Chain ID on which this transaction is valid
- * **chainId** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Chain ID on which this transaction is valid
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **nonce** `string` *required*
- ***
+ nonce
- * **nonce** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **address** `string` *required*
- ***
+ hex encoded address
- * **address** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- hex encoded address
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **yParity** `string` *required*
- ***
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- * **yParity** `string` *required*
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ ***
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ * **r** `string` *required*
- ***
+ r
- * **r** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- r
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **s** `string` *required*
- ***
+ s
- * **s** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- s
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **additionalProperties** `true`
- ***
+ ***
+
+
- * **additionalProperties** `true`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **additionalProperties** `false`
+ **Block** `string or string or string`
- ***
-
-
+ ***
-
- **Block** `string or string or string`
+
+
+
+ Show Option 1 `Block number` string
+
- ***
+ #### `Block number` fields
-
-
- Show Option 1 `Block number` string
-
+ **Block** `string`
- #### `Block number` fields
+ Block number
- **Block** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Block number
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Block tag` string
+
- ***
-
+ #### `Block tag` fields
-
-
- Show Option 2 `Block tag` string
-
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- #### `Block tag` fields
+ **Block** `string`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ ***
+
+
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+
+
+
+ Show Option 3 `Block hash` string
+
- ***
-
+ #### `Block hash` fields
-
-
- Show Option 3 `Block hash` string
-
+ **Block** `string`
- #### `Block hash` fields
+ Block hash
- **Block** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Block hash
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ## Result
- ***
-
-
-
+ **Return data** `string`
-
- ## Result
+ hex encoded bytes
- **Return data** `string`
+ *Match pattern:* `^0x[0-9a-f]*$`
- hex encoded bytes
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ ## Examples
- ***
-
-
-
- ## Examples
-
-
-
- eth\_call example
-
-
- #### Request
-
- ```json
- {
- "params": [
- {
- "to": "0x69498dd54bd25aa0c886cf1f8b8ae0856d55ff13",
- "value": "0x1"
- },
- "latest"
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0x"
- ```
-
-
+
+
+
+ eth\_call example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "to": "0x69498dd54bd25aa0c886cf1f8b8ae0856d55ff13",
+ "value": "0x1"
+ },
+ "latest"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_chainId.mdx b/packages/example-site/docs/api-reference/methods/eth_chainId.mdx
index 8992992..7615cca 100644
--- a/packages/example-site/docs/api-reference/methods/eth_chainId.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_chainId.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_chainId
+ # eth\_chainId
- Returns the chain ID of the current network.
+ Returns the chain ID of the current network.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
- **Chain ID** `string`
+ **Chain ID** `string`
- hex encoded unsigned integer
+ hex encoded unsigned integer
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
-
- ## Examples
+ ## Examples
-
-
- eth\_chainId example
-
+
+
+
+ eth\_chainId example
+
- #### Request
+ #### Request
- ```json
- {
- "params": []
- }
- ```
+ ```json
+ {
+ "params": []
+ }
+ ```
- #### Response
+ #### Response
- ```json
- "0x1"
- ```
-
-
+ ```json
+ "0x1"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_coinbase.mdx b/packages/example-site/docs/api-reference/methods/eth_coinbase.mdx
index e24550e..d1b28ff 100644
--- a/packages/example-site/docs/api-reference/methods/eth_coinbase.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_coinbase.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_coinbase
+ # eth\_coinbase
- Returns the client coinbase address.
+ Returns the client coinbase address.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
- **Coinbase address** `string`
+ **Coinbase address** `string`
- hex encoded address
+ hex encoded address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
+ ***
-
- ## Examples
+ ## Examples
-
-
- eth\_coinbase example
-
+
+
+
+ eth\_coinbase example
+
- #### Request
+ #### Request
- ```json
- {
- "params": []
- }
- ```
+ ```json
+ {
+ "params": []
+ }
+ ```
- #### Response
+ #### Response
- ```json
- "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
- ```
-
-
+ ```json
+ "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_createAccessList.mdx b/packages/example-site/docs/api-reference/methods/eth_createAccessList.mdx
index fe09e80..03bf0f8 100644
--- a/packages/example-site/docs/api-reference/methods/eth_createAccessList.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_createAccessList.mdx
@@ -5,441 +5,439 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_createAccessList
+ # eth\_createAccessList
- Generates an access list for a transaction.
+ Generates an access list for a transaction.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Transaction** `object` *required*
+ **Transaction** `object` *required*
- Transaction object generic to all types
+ Transaction object generic to all types
- ***
+ ***
-
-
-
- Show `Transaction` object
-
+
+
+
+ Show `Transaction` object
+
- #### `Transaction` fields
+ #### `Transaction` fields
- * **type** `string`
+ * **type** `string`
- type
+ type
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **nonce** `string`
+ * **nonce** `string`
- nonce
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **to** `null or string`
+ * **to** `null or string`
- ***
+ ***
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- #### `Contract Creation (null)` fields
+ #### `Contract Creation (null)` fields
- **to** `null`
+ **to** `null`
- Contract Creation (null)
+ Contract Creation (null)
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Address` string
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Address` fields
+ #### `Address` fields
- **to** `string`
+ **to** `string`
- Address
+ Address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- * **from** `string`
+ * **from** `string`
- from address
+ from address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **gas** `string`
+ * **gas** `string`
- gas limit
+ gas limit
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string`
+ * **value** `string`
- value
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **input** `string`
+ * **input** `string`
- input data
+ input data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **gasPrice** `string`
+ * **gasPrice** `string`
- The gas price willing to be paid by the sender in wei
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string`
+ * **maxPriorityFeePerGas** `string`
- Maximum fee per gas the sender is willing to pay to miners in wei
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string`
+ * **maxFeePerGas** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string`
+ * **maxFeePerBlobGas** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **accessList** `array`
+ * **accessList** `array`
- EIP-2930 access list
+ EIP-2930 access list
- ***
+ ***
-
-
-
- Show `accessList` object
-
+
+
+
+ Show `accessList` object
+
- #### `accessList` fields
+ #### `accessList` fields
- EIP-2930 access list
+ EIP-2930 access list
- * **address** `string` *required*
+ * **address** `string` *required*
- hex encoded address
+ hex encoded address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **storageKeys** `array` *required*
- 32 byte hex value
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **blobVersionedHashes** `array`
+ * **blobVersionedHashes** `array`
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blobs** `array`
+ * **blobs** `array`
- Raw blob data.
+ Raw blob data.
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **chainId** `string`
+ * **chainId** `string`
- Chain ID that this transaction is valid on.
+ Chain ID that this transaction is valid on.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **authorizationList** `array`
+ * **authorizationList** `array`
- EIP-7702 authorization list
+ EIP-7702 authorization list
- ***
+ ***
-
-
-
- Show `authorizationList` object
-
+
+
+
+ Show `authorizationList` object
+
- #### `authorizationList` fields
+ #### `authorizationList` fields
- EIP-7702 authorization list
+ EIP-7702 authorization list
+
+ * **chainId** `string` *required*
- * **chainId** `string` *required*
+ Chain ID on which this transaction is valid
- Chain ID on which this transaction is valid
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **nonce** `string` *required*
- * **nonce** `string` *required*
+ nonce
- nonce
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **address** `string` *required*
- ***
+ hex encoded address
- * **address** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- hex encoded address
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **yParity** `string` *required*
- ***
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- * **yParity** `string` *required*
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ ***
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ * **r** `string` *required*
- ***
+ r
- * **r** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- r
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **s** `string` *required*
- ***
+ s
- * **s** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- s
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **additionalProperties** `true`
- ***
+ ***
+
+
- * **additionalProperties** `true`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **additionalProperties** `false`
+ **Block** `string or string`
- ***
-
-
+ ***
-
- **Block** `string or string`
+
+
+
+ Show Option 1 `Block number` string
+
- ***
+ #### `Block number` fields
-
-
- Show Option 1 `Block number` string
-
+ **Block** `string`
- #### `Block number` fields
+ Block number
- **Block** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Block number
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Block tag` string
+
- ***
-
+ #### `Block tag` fields
-
-
- Show Option 2 `Block tag` string
-
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- #### `Block tag` fields
+ **Block** `string`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ ***
+
+
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ ## Result
- ***
-
-
-
+ **Gas used** `object`
-
- ## Result
+ Access list result
- **Gas used** `object`
+ ***
- Access list result
+
+
+
+ Show `Gas used` object
+
- ***
+ #### `Gas used` fields
-
-
-
- Show `Gas used` object
-
+ * **accessList** `array`
- #### `Gas used` fields
+ Access list entry
- * **accessList** `array`
+ ***
- Access list entry
+
+
+
+ Show `accessList` object
+
- ***
+ #### `accessList` fields
-
-
-
- Show `accessList` object
-
+ * **address** `string` *required*
- #### `accessList` fields
+ hex encoded address
- * **address** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- hex encoded address
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **storageKeys** `array` *required*
- ***
+ 32 byte hex value
- * **storageKeys** `array` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- 32 byte hex value
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **additionalProperties** `false`
- ***
+ ***
+
+
- * **additionalProperties** `false`
+ * **error** `string`
- ***
-
-
+ error
- * **error** `string`
+ ***
- error
+ * **gasUsed** `string`
- ***
+ Gas used
- * **gasUsed** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Gas used
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **additionalProperties** `false`
- ***
+ ***
+
+
- * **additionalProperties** `false`
+ ## Examples
- ***
-
-
-
-
-
- ## Examples
-
-
-
- eth\_createAccessList example
-
-
- #### Request
-
- ```json
- {
- "params": [
- {
- "from": "0xaea8f8f781326bfe6a7683c2bd48dd6aa4d3ba63",
- "data": "0x608060806080608155"
- },
- "latest"
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "accessList": [
- {
- "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
- "storageKeys": [
- "0x0000000000000000000000000000000000000000000000000000000000000081"
- ]
- }
- ],
- "gasUsed": "0x125f8"
- }
- ```
-
-
+
+
+
+ eth\_createAccessList example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "from": "0xaea8f8f781326bfe6a7683c2bd48dd6aa4d3ba63",
+ "data": "0x608060806080608155"
+ },
+ "latest"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "accessList": [
+ {
+ "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
+ "storageKeys": [
+ "0x0000000000000000000000000000000000000000000000000000000000000081"
+ ]
+ }
+ ],
+ "gasUsed": "0x125f8"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_estimateGas.mdx b/packages/example-site/docs/api-reference/methods/eth_estimateGas.mdx
index e5bf860..2dc8ce0 100644
--- a/packages/example-site/docs/api-reference/methods/eth_estimateGas.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_estimateGas.mdx
@@ -5,369 +5,367 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_estimateGas
+ # eth\_estimateGas
- Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.
+ Generates and returns an estimate of how much gas is necessary to allow the transaction to complete.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Transaction** `object` *required*
+ **Transaction** `object` *required*
- Transaction object generic to all types
+ Transaction object generic to all types
- ***
+ ***
-
-
-
- Show `Transaction` object
-
+
+
+
+ Show `Transaction` object
+
- #### `Transaction` fields
+ #### `Transaction` fields
- * **type** `string`
+ * **type** `string`
- type
+ type
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **nonce** `string`
+ * **nonce** `string`
- nonce
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **to** `null or string`
+ * **to** `null or string`
- ***
+ ***
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- #### `Contract Creation (null)` fields
+ #### `Contract Creation (null)` fields
- **to** `null`
+ **to** `null`
- Contract Creation (null)
+ Contract Creation (null)
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Address` string
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Address` fields
+ #### `Address` fields
- **to** `string`
+ **to** `string`
- Address
+ Address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- * **from** `string`
+ * **from** `string`
- from address
+ from address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **gas** `string`
+ * **gas** `string`
- gas limit
+ gas limit
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string`
+ * **value** `string`
- value
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **input** `string`
+ * **input** `string`
- input data
+ input data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **gasPrice** `string`
+ * **gasPrice** `string`
- The gas price willing to be paid by the sender in wei
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string`
+ * **maxPriorityFeePerGas** `string`
- Maximum fee per gas the sender is willing to pay to miners in wei
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string`
+ * **maxFeePerGas** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string`
+ * **maxFeePerBlobGas** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **accessList** `array`
+ * **accessList** `array`
- EIP-2930 access list
+ EIP-2930 access list
- ***
+ ***
-
-
-
- Show `accessList` object
-
+
+
+
+ Show `accessList` object
+
- #### `accessList` fields
+ #### `accessList` fields
- EIP-2930 access list
+ EIP-2930 access list
- * **address** `string` *required*
+ * **address** `string` *required*
- hex encoded address
+ hex encoded address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **storageKeys** `array` *required*
- 32 byte hex value
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **blobVersionedHashes** `array`
+ * **blobVersionedHashes** `array`
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blobs** `array`
+ * **blobs** `array`
- Raw blob data.
+ Raw blob data.
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **chainId** `string`
+ * **chainId** `string`
- Chain ID that this transaction is valid on.
+ Chain ID that this transaction is valid on.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **authorizationList** `array`
+ * **authorizationList** `array`
- EIP-7702 authorization list
+ EIP-7702 authorization list
- ***
+ ***
+
+
+
+
+ Show `authorizationList` object
+
-
-
-
- Show `authorizationList` object
-
+ #### `authorizationList` fields
+
+ EIP-7702 authorization list
- #### `authorizationList` fields
+ * **chainId** `string` *required*
- EIP-7702 authorization list
+ Chain ID on which this transaction is valid
- * **chainId** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Chain ID on which this transaction is valid
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **nonce** `string` *required*
- ***
+ nonce
- * **nonce** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **address** `string` *required*
- ***
+ hex encoded address
- * **address** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- hex encoded address
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **yParity** `string` *required*
- ***
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- * **yParity** `string` *required*
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ ***
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ * **r** `string` *required*
- ***
+ r
- * **r** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- r
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **s** `string` *required*
- ***
+ s
- * **s** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- s
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **additionalProperties** `true`
- ***
+ ***
+
+
- * **additionalProperties** `true`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **additionalProperties** `false`
+ **Block** `string or string`
- ***
-
-
+ ***
-
- **Block** `string or string`
+
+
+
+ Show Option 1 `Block number` string
+
- ***
+ #### `Block number` fields
-
-
- Show Option 1 `Block number` string
-
+ **Block** `string`
- #### `Block number` fields
+ Block number
- **Block** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Block number
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Block tag` string
+
- ***
-
+ #### `Block tag` fields
-
-
- Show Option 2 `Block tag` string
-
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- #### `Block tag` fields
+ **Block** `string`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ ***
+
+
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ ## Result
- ***
-
-
-
+ **Gas used** `string`
-
- ## Result
+ hex encoded unsigned integer
- **Gas used** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- hex encoded unsigned integer
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ## Examples
- ***
-
-
-
- ## Examples
-
-
-
- eth\_estimateGas example
-
-
- #### Request
-
- ```json
- {
- "params": [
- {
- "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
- "to": "0x44aa93095d6749a706051658b970b941c72c1d53",
- "value": "0x1"
- }
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0x5208"
- ```
-
-
+
+
+
+ eth\_estimateGas example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
+ "to": "0x44aa93095d6749a706051658b970b941c72c1d53",
+ "value": "0x1"
+ }
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x5208"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_feeHistory.mdx b/packages/example-site/docs/api-reference/methods/eth_feeHistory.mdx
index 847c8d3..65842d6 100644
--- a/packages/example-site/docs/api-reference/methods/eth_feeHistory.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_feeHistory.mdx
@@ -5,234 +5,230 @@ hide_table_of_contents: true
description: "Returns transaction base fee per gas and effective priority fee per gas for the requested/supported block range."
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_feeHistory
-
- Returns transaction base fee per gas and effective priority fee per gas for the requested/supported block range.
+ # eth\_feeHistory
- Transaction fee history
+ Returns transaction base fee per gas and effective priority fee per gas for the requested/supported block range.
-
- ## Parameters (by position)
+ Transaction fee history
- **blockCount** `string` *required*
+ ## Parameters (by position)
- Requested range of blocks. Clients will return less than the requested range if not all blocks are available.
+ **blockCount** `string` *required*
- ***
+ Requested range of blocks. Clients will return less than the requested range if not all blocks are available.
-
- **newestBlock** `string or string` *required*
+ ***
- Highest block of the requested range.
+ **newestBlock** `string or string` *required*
- ***
+ Highest block of the requested range.
-
-
- Show Option 1 `Block number` string
-
+ ***
- #### `Block number` fields
-
- Highest block of the requested range.
-
- **newestBlock** `string` *required*
+
+
+
+ Show Option 1 `Block number` string
+
- Highest block of the requested range.
+ #### `Block number` fields
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ Highest block of the requested range.
- ***
-
+ **newestBlock** `string` *required*
-
-
- Show Option 2 `Block tag` string
-
+ Highest block of the requested range.
- #### `Block tag` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ ***
+
+
- **newestBlock** `string` *required*
+
+
+
+ Show Option 2 `Block tag` string
+
- Highest block of the requested range.
+ #### `Block tag` fields
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- ***
-
-
+ **newestBlock** `string` *required*
- **rewardPercentiles** `array` *required*
+ Highest block of the requested range.
- A monotonically increasing list of percentile values. For each block in the requested range, the transactions will be sorted in ascending order by effective tip per gas and the corresponding effective tip for the percentile will be determined, accounting for gas consumed.
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
***
-
+
+
-
- ## Result
+ **rewardPercentiles** `array
` *required*
- **Fee history result** `object`
+ A monotonically increasing list of percentile values. For each block in the requested range, the transactions will be sorted in ascending order by effective tip per gas and the corresponding effective tip for the percentile will be determined, accounting for gas consumed.
- Fee history for the returned block range. This can be a subsection of the requested range if not all blocks are available.
+ ***
- ***
+ ## Result
-
-
-
- Show `Fee history result` object
-
+ **Fee history result** `object`
- #### `Fee history result` fields
+ Fee history for the returned block range. This can be a subsection of the requested range if not all blocks are available.
- Fee history for the returned block range. This can be a subsection of the requested range if not all blocks are available.
+ ***
- * **oldestBlock** `string` *required*
+
+
+
+ Show `Fee history result` object
+
+
+ #### `Fee history result` fields
- Lowest number block of returned range.
+ Fee history for the returned block range. This can be a subsection of the requested range if not all blocks are available.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **oldestBlock** `string` *required*
- ***
+ Lowest number block of returned range.
- * **baseFeePerGas** `array` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- An array of block base fees per gas. This includes the next block after the newest of the returned range, because this value can be derived from the newest block. Zeroes are returned for pre-EIP-1559 blocks.
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **baseFeePerGas** `array` *required*
- ***
+ An array of block base fees per gas. This includes the next block after the newest of the returned range, because this value can be derived from the newest block. Zeroes are returned for pre-EIP-1559 blocks.
- * **baseFeePerBlobGas** `array`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- An array of block base fees per blob gas. This includes the next block after the newest of the returned range, because this value can be derived from the newest block. Zeroes are returned for pre-EIP-4844 blocks.
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **baseFeePerBlobGas** `array`
- ***
+ An array of block base fees per blob gas. This includes the next block after the newest of the returned range, because this value can be derived from the newest block. Zeroes are returned for pre-EIP-4844 blocks.
- * **gasUsedRatio** `array` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- An array of block gas used ratios. These are calculated as the ratio of gasUsed and gasLimit.
+ ***
- Range: `>= 0 and <= 1`
+ * **gasUsedRatio** `array` *required*
- ***
+ An array of block gas used ratios. These are calculated as the ratio of gasUsed and gasLimit.
- * **blobGasUsedRatio** `array`
+ Range: `>= 0 and <= 1`
- An array of block blob gas used ratios. These are calculated as the ratio of blobGasUsed and the max blob gas per block.
+ ***
- Range: `>= 0 and <= 1`
+ * **blobGasUsedRatio** `array`
- ***
+ An array of block blob gas used ratios. These are calculated as the ratio of blobGasUsed and the max blob gas per block.
- * **reward** `array`
+ Range: `>= 0 and <= 1`
- A two-dimensional array of effective priority fees per gas at the requested block percentiles.
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **reward** `array`
- ***
+ A two-dimensional array of effective priority fees per gas at the requested block percentiles.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
-
+ ***
-
- ## Examples
+ * **additionalProperties** `false`
-
-
- eth\_feeHistory example
-
+ ***
+
+
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- "0x5",
- "latest",
- [
- 20,
- 30
- ]
+
+
+
+ eth\_feeHistory example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0x5",
+ "latest",
+ [
+ 20,
+ 30
]
- }
- ```
-
- #### Response
-
- ```json
- {
- "oldestblock": "0x10b52f",
- "baseFeePerGas": [
- "0x3fa63a3f",
- "0x37f999ee",
- "0x3e36f20a",
- "0x4099f79a",
- "0x430d532d",
- "0x46fcd4a4"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "oldestblock": "0x10b52f",
+ "baseFeePerGas": [
+ "0x3fa63a3f",
+ "0x37f999ee",
+ "0x3e36f20a",
+ "0x4099f79a",
+ "0x430d532d",
+ "0x46fcd4a4"
+ ],
+ "baseFeePerBlobGas": [
+ "0x7b7609c19",
+ "0x6dbe41789",
+ "0x7223341d4",
+ "0x6574a002c",
+ "0x7223341d4",
+ "0x6574a002c"
+ ],
+ "gasUsedRatio": [
+ 0.017712333333333333,
+ 0.9458865666666667,
+ 0.6534561,
+ 0.6517375666666667,
+ 0.7347769666666667
+ ],
+ "blobGasUsedRatio": [
+ 0,
+ 0.6666666666666666,
+ 0,
+ 1,
+ 0
+ ],
+ "reward": [
+ [
+ "0x3b9aca00",
+ "0x59682f00"
],
- "baseFeePerBlobGas": [
- "0x7b7609c19",
- "0x6dbe41789",
- "0x7223341d4",
- "0x6574a002c",
- "0x7223341d4",
- "0x6574a002c"
+ [
+ "0x3a13012",
+ "0x3a13012"
],
- "gasUsedRatio": [
- 0.017712333333333333,
- 0.9458865666666667,
- 0.6534561,
- 0.6517375666666667,
- 0.7347769666666667
+ [
+ "0x3a13012",
+ "0x3a13012"
],
- "blobGasUsedRatio": [
- 0,
- 0.6666666666666666,
- 0,
- 1,
- 0
+ [
+ "0xf4240",
+ "0xf4240"
],
- "reward": [
- [
- "0x3b9aca00",
- "0x59682f00"
- ],
- [
- "0x3a13012",
- "0x3a13012"
- ],
- [
- "0x3a13012",
- "0x3a13012"
- ],
- [
- "0xf4240",
- "0xf4240"
- ],
- [
- "0xf4240",
- "0xf4240"
- ]
+ [
+ "0xf4240",
+ "0xf4240"
]
- }
- ```
-
-
+ ]
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_gasPrice.mdx b/packages/example-site/docs/api-reference/methods/eth_gasPrice.mdx
index 225a0cc..032cdb7 100644
--- a/packages/example-site/docs/api-reference/methods/eth_gasPrice.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_gasPrice.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_gasPrice
+ # eth\_gasPrice
- Returns the current price per gas in wei.
+ Returns the current price per gas in wei.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
- **Gas price** `string`
+ **Gas price** `string`
- Gas price
+ Gas price
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
-
- ## Examples
+ ## Examples
-
-
- eth\_gasPrice example
-
+
+
+
+ eth\_gasPrice example
+
- #### Request
+ #### Request
- ```json
- {
- "params": []
- }
- ```
+ ```json
+ {
+ "params": []
+ }
+ ```
- #### Response
+ #### Response
- ```json
- "0x3e8"
- ```
-
-
+ ```json
+ "0x3e8"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getBalance.mdx b/packages/example-site/docs/api-reference/methods/eth_getBalance.mdx
index ea96f65..cac8894 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getBalance.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getBalance.mdx
@@ -5,118 +5,116 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getBalance
+ # eth\_getBalance
- Returns the balance of the account of given address.
+ Returns the balance of the account of given address.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Address** `string` *required*
+ **Address** `string` *required*
- ***
+ ***
-
- **Block** `string or string or string` *required*
+ **Block** `string or string or string` *required*
- ***
+ ***
-
-
- Show Option 1 `Block number` string
-
+
+
+
+ Show Option 1 `Block number` string
+
- #### `Block number` fields
+ #### `Block number` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block number
+ Block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Block tag` string
-
+
+
+
+ Show Option 2 `Block tag` string
+
- #### `Block tag` fields
+ #### `Block tag` fields
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string` *required*
+ **Block** `string` *required*
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- ***
-
+ ***
+
+
-
-
- Show Option 3 `Block hash` string
-
+
+
+
+ Show Option 3 `Block hash` string
+
- #### `Block hash` fields
+ #### `Block hash` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block hash
+ Block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
-
+ ***
+
+
-
- ## Result
+ ## Result
- **Balance** `string`
+ **Balance** `string`
- hex encoded unsigned integer
+ hex encoded unsigned integer
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
-
- ## Examples
-
-
-
- eth\_getBalance example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
- "latest"
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0x1cfe56f3795885980000"
- ```
-
-
+ ***
+
+ ## Examples
+
+
+
+
+ eth\_getBalance example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
+ "latest"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x1cfe56f3795885980000"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getBlockByHash.mdx b/packages/example-site/docs/api-reference/methods/eth_getBlockByHash.mdx
index 9fefd59..6b8d7a1 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getBlockByHash.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getBlockByHash.mdx
@@ -5,1405 +5,1417 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getBlockByHash
+ # eth\_getBlockByHash
- Returns information about a block by hash.
+ Returns information about a block by hash.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Block hash** `string` *required*
+ **Block hash** `string` *required*
- ***
+ ***
- **Hydrated transactions** `boolean` *required*
+ **Hydrated transactions** `boolean` *required*
- ***
-
+ ***
-
- ## Result
+ ## Result
-
- **Block information** `null or object`
+ **Block information** `null or object`
- ***
+ ***
-
-
- Show Option 1 `Not Found (null)` null
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
- #### `Not Found (null)` fields
+ #### `Not Found (null)` fields
- **Block information** `null`
+ **Block information** `null`
- Not Found (null)
+ Not Found (null)
- ***
-
+ ***
+
+
+
+
+
+
+ Show Option 2 `Block object` object
+
+
+ #### `Block object` fields
+
+ **Block information** `object`
+
+ Block object
+ ***
+
+
- Show Option 2 `Block object` object
+ Show `Block information` object
- #### `Block object` fields
+ #### `Block information` fields
- **Block information** `object`
+ * **hash** `string` *required*
- Block object
+ Hash
- ***
+ *Match pattern:* `^0x[0-9a-f]{64}$`
-
-
-
- Show `Block information` object
-
+ ***
- #### `Block information` fields
+ * **parentHash** `string` *required*
- * **hash** `string` *required*
+ Parent block hash
- Hash
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **sha3Uncles** `string` *required*
- * **parentHash** `string` *required*
+ Ommers hash
- Parent block hash
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **miner** `string` *required*
- * **sha3Uncles** `string` *required*
+ Coinbase
- Ommers hash
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **stateRoot** `string` *required*
- * **miner** `string` *required*
+ State root
- Coinbase
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **transactionsRoot** `string` *required*
- * **stateRoot** `string` *required*
+ Transactions root
- State root
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **receiptsRoot** `string` *required*
- * **transactionsRoot** `string` *required*
+ Receipts root
- Transactions root
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **logsBloom** `string` *required*
- * **receiptsRoot** `string` *required*
+ Bloom filter
- Receipts root
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **difficulty** `string`
- * **logsBloom** `string` *required*
+ Difficulty
- Bloom filter
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ ***
- ***
+ * **number** `string` *required*
- * **difficulty** `string`
+ Number
- Difficulty
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasLimit** `string` *required*
- * **number** `string` *required*
+ Gas limit
- Number
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasUsed** `string` *required*
- * **gasLimit** `string` *required*
+ Gas used
- Gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **timestamp** `string` *required*
- * **gasUsed** `string` *required*
+ Timestamp
- Gas used
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **extraData** `string` *required*
- * **timestamp** `string` *required*
+ Extra data
- Timestamp
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **mixHash** `string` *required*
- * **extraData** `string` *required*
+ Mix hash
- Extra data
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **nonce** `string` *required*
- * **mixHash** `string` *required*
+ Nonce
- Mix hash
+ *Match pattern:* `^0x[0-9a-f]{16}$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **baseFeePerGas** `string`
- * **nonce** `string` *required*
+ Base fee per gas
- Nonce
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]{16}$`
+ ***
- ***
+ * **withdrawalsRoot** `string`
- * **baseFeePerGas** `string`
+ Withdrawals root
- Base fee per gas
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **blobGasUsed** `string`
- * **withdrawalsRoot** `string`
+ Blob gas used
- Withdrawals root
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
+ * **excessBlobGas** `string`
- * **blobGasUsed** `string`
+ Excess blob gas
- Blob gas used
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **parentBeaconBlockRoot** `string`
- * **excessBlobGas** `string`
+ Parent Beacon Block Root
- Excess blob gas
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **size** `string` *required*
- * **parentBeaconBlockRoot** `string`
+ Block size
- Parent Beacon Block Root
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
- ***
-
- * **size** `string` *required*
+ * **transactions** `array or array` *required*
- Block size
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Transaction hashes` array
+
- ***
+ #### `Transaction hashes` fields
- *
- **transactions** `array or array` *required*
+ **transactions** `array` *required*
- ***
+ 32 byte hex value
-
-
- Show Option 1 `Transaction hashes` array
-
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- #### `Transaction hashes` fields
+ ***
+
+
- **transactions** `array` *required*
+
+
+
+ Show Option 2 `Full transactions` array
+
- 32 byte hex value
+ #### `Full transactions` fields
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ **transactions** `object or object or object or object or object` *required*
- ***
-
+ ***
+
- Show Option 2 `Full transactions` array
+ Show Option 1 `Signed 7702 Transaction` object
- #### `Full transactions` fields
+ #### `Signed 7702 Transaction` fields
-
- **transactions** `object or object or object or object or object` *required*
+ **transactions** `array
` *required*
- ***
+ Signed 7702 Transaction
+ ***
+
+
- Show Option 1 `Signed 7702 Transaction` object
+ Show `transactions` object
- #### `Signed 7702 Transaction` fields
-
- **transactions** `array` *required*
+ #### `transactions` fields
- Signed 7702 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `transactions` object
-
+ *Match pattern:* `^0x4$`
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x4$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `string` *required*
- nonce
+ to address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **to** `string` *required*
+ * **gas** `string` *required*
- to address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access lists
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access lists
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access lists
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **authorizationList** `array` *required*
- Chain ID that this transaction is valid on
+ List of authorizations for the transaction
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `authorizationList` object
+
- * **authorizationList** `array` *required*
+ #### `authorizationList` fields
List of authorizations for the transaction
- ***
+ * **chainId** `string` *required*
-
-
-
- Show `authorizationList` object
-
+ Chain ID on which this transaction is valid
- #### `authorizationList` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- List of authorizations for the transaction
+ ***
- * **chainId** `string` *required*
+ * **nonce** `string` *required*
- Chain ID on which this transaction is valid
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **address** `string` *required*
- nonce
+ hex encoded address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **address** `string` *required*
+ * **yParity** `string` *required*
- hex encoded address
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **r** `string` *required*
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **yParity** `string` *required*
- ***
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- * **additionalProperties** `true`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
-
-
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Signed 4844 Transaction` object
+
- ***
+ #### `Signed 4844 Transaction` fields
- * **additionalProperties** `true`
+ **transactions** `array` *required*
- ***
-
-
-
+ Signed 4844 Transaction
+
+ ***
+
- Show Option 2 `Signed 4844 Transaction` object
+ Show `transactions` object
- #### `Signed 4844 Transaction` fields
+ #### `transactions` fields
- **transactions** `array` *required*
+ * **type** `string` *required*
- Signed 4844 Transaction
+ type
- ***
+ *Match pattern:* `^0x3$`
-
-
-
- Show `transactions` object
-
+ ***
- #### `transactions` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x3$`
+ ***
- ***
+ * **to** `string` *required*
- * **nonce** `string` *required*
+ to address
- nonce
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gas** `string` *required*
- * **to** `string` *required*
+ gas limit
- to address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
-
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **maxFeePerBlobGas** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blobVersionedHashes** `array` *required*
- ***
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
- * **additionalProperties** `false`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
- * **blobVersionedHashes** `array` *required*
+ * **chainId** `string` *required*
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
+ Chain ID that this transaction is valid on
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
+
+ ***
+
+
+
+
- s
+
+
+
+ Show Option 3 `Signed 1559 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 1559 Transaction` fields
- ***
+ **transactions** `array` *required*
- * **additionalProperties** `true`
+ Signed 1559 Transaction
- ***
-
-
-
+ ***
+
- Show Option 3 `Signed 1559 Transaction` object
+ Show `transactions` object
- #### `Signed 1559 Transaction` fields
+ #### `transactions` fields
- **transactions** `array` *required*
+ * **type** `string` *required*
- Signed 1559 Transaction
+ type
- ***
+ *Match pattern:* `^0x2$`
-
-
-
- Show `transactions` object
-
+ ***
- #### `transactions` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x2$`
+ ***
- ***
-
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 4 `Signed 2930 Transaction` object
+
- ***
+ #### `Signed 2930 Transaction` fields
- * **additionalProperties** `true`
+ **transactions** `array` *required*
- ***
-
-
-
+ Signed 2930 Transaction
+ ***
+
+
- Show Option 4 `Signed 2930 Transaction` object
+ Show `transactions` object
- #### `Signed 2930 Transaction` fields
-
- **transactions** `array` *required*
+ #### `transactions` fields
- Signed 2930 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `transactions` object
-
+ *Match pattern:* `^0x1$`
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x1$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **gasPrice** `string` *required*
- input data
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The gas price willing to be paid by the sender in wei
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 5 `Signed Legacy Transaction` object
+
- ***
+ #### `Signed Legacy Transaction` fields
- * **additionalProperties** `true`
+ **transactions** `array` *required*
- ***
-
-
-
+ Signed Legacy Transaction
+
+ ***
+
- Show Option 5 `Signed Legacy Transaction` object
+ Show `transactions` object
- #### `Signed Legacy Transaction` fields
+ #### `transactions` fields
- **transactions** `array` *required*
+ * **type** `string` *required*
- Signed Legacy Transaction
+ type
- ***
+ *Match pattern:* `^0x0$`
-
-
-
- Show `transactions` object
-
+ ***
- #### `transactions` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x0$`
+ ***
- ***
+ * **to** `null or string`
- * **nonce** `string` *required*
+ ***
- nonce
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Contract Creation (null)` fields
- ***
+ **to** `null`
- *
- **to** `null or string`
+ Contract Creation (null)
- ***
+ ***
+
+
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Contract Creation (null)` fields
+ #### `Address` fields
- **to** `null`
+ **to** `string`
- Contract Creation (null)
+ Address
- ***
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
-
-
- Show Option 2 `Address` string
-
+ ***
+
+
- #### `Address` fields
+ * **gas** `string` *required*
- **to** `string`
+ gas limit
- Address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
-
-
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasPrice** `string` *required*
- * **input** `string` *required*
+ The gas price willing to be paid by the sender in wei
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **chainId** `string`
- * **gasPrice** `string` *required*
+ Chain ID that this transaction is valid on.
- The gas price willing to be paid by the sender in wei
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **v** `string` *required*
- * **chainId** `string`
+ v
- Chain ID that this transaction is valid on.
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **r** `string` *required*
- * **v** `string` *required*
+ r
- v
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
-
- * **r** `string` *required*
-
- r
-
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **s** `string` *required*
- ***
-
- * **s** `string` *required*
+ s
- s
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
-
- ***
+ ***
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
+ ***
+
+
- * **withdrawals** `array
`
+ * **withdrawals** `array`
- Validator withdrawal
+ Validator withdrawal
- ***
+ ***
-
-
-
- Show `withdrawals` object
-
+
+
+
+ Show `withdrawals` object
+
- #### `withdrawals` fields
+ #### `withdrawals` fields
- * **index** `string` *required*
+ * **index** `string` *required*
- index of withdrawal
+ index of withdrawal
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
+ ***
- * **validatorIndex** `string` *required*
+ * **validatorIndex** `string` *required*
- index of validator that generated withdrawal
+ index of validator that generated withdrawal
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
+ ***
- * **address** `string` *required*
+ * **address** `string` *required*
- recipient address for withdrawal value
+ recipient address for withdrawal value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **amount** `string` *required*
+ * **amount** `string` *required*
- value contained in withdrawal
+ value contained in withdrawal
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **uncles** `array` *required*
+ * **uncles** `array` *required*
- 32 byte hex value
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **requestsHash** `string`
+ * **requestsHash** `string`
- EIP-7685 requests hash
+ EIP-7685 requests hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
+ ***
-
-
-
- ## Examples
-
-
-
- eth\_getBlockByHash example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0xd5f1812548be429cbdc6376b29611fc49e06f1359758c4ceaaa3b393e2239f9c",
- false
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "number": "0x68b3",
- "hash": "0xd5f1812548be429cbdc6376b29611fc49e06f1359758c4ceaaa3b393e2239f9c",
- "mixHash": "0x24900fb3da77674a861c428429dce0762707ecb6052325bbd9b3c64e74b5af9d",
- "parentHash": "0x1f68ac259155e2f38211ddad0f0a15394d55417b185a93923e2abe71bb7a4d6d",
- "nonce": "0x378da40ff335b070",
- "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
- "logsBloom": "0x00000000000000100000004080000000000500000000000000020000100000000800001000000004000001000000000000000800040010000020100000000400000010000000000000000040000000000000040000000000000000000000000000000400002400000000000000000000000000000004000004000000000000840000000800000080010004000000001000000800000000000000000000000000000000000800000000000040000000020000000000000000000800000400000000000000000000000600000400000000002000000000000000000000004000000000000000100000000000000000000000000000000000040000900010000000",
- "transactionsRoot": "0x4d0c8e91e16bdff538c03211c5c73632ed054d00a7e210c0eb25146c20048126",
- "stateRoot": "0x91309efa7e42c1f137f31fe9edbe88ae087e6620d0d59031324da3e2f4f93233",
- "receiptsRoot": "0x68461ab700003503a305083630a8fb8d14927238f0bc8b6b3d246c0c64f21f4a",
- "miner": "0xb42b6c4a95406c78ff892d270ad20b22642e102d",
- "difficulty": "0x66e619a",
- "totalDifficulty": "0x1e875d746ae",
- "extraData": "0xd583010502846765746885676f312e37856c696e7578",
- "size": "0x334",
- "gasLimit": "0x47e7c4",
- "gasUsed": "0x37993",
- "timestamp": "0x5835c54d",
- "uncles": [],
- "transactions": [
- "0xa0807e117a8dd124ab949f460f08c36c72b710188f01609595223b325e58e0fc",
- "0xeae6d797af50cb62a596ec3939114d63967c374fa57de9bc0f4e2b576ed6639d"
- ],
- "baseFeePerGas": "0x7",
- "withdrawalsRoot": "0x7a4ecf19774d15cf9c15adf0dd8e8a250c128b26c9e2ab2a08d6c9c8ffbd104f",
- "withdrawals": [
- {
- "index": "0x0",
- "validatorIndex": "0x9d8c0",
- "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f",
- "amount": "0x11a33e3760"
- }
- ],
- "blobGasUsed": "0x0",
- "excessBlobGas": "0x0",
- "parentBeaconBlockRoot": "0x95c4dbd5b19f6fe3cbc3183be85ff4e85ebe75c5b4fc911f1c91e5b7a554a685"
- }
- ```
-
-
+
+
+
+ ## Examples
+
+
+
+
+ eth\_getBlockByHash example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xd5f1812548be429cbdc6376b29611fc49e06f1359758c4ceaaa3b393e2239f9c",
+ false
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "number": "0x68b3",
+ "hash": "0xd5f1812548be429cbdc6376b29611fc49e06f1359758c4ceaaa3b393e2239f9c",
+ "mixHash": "0x24900fb3da77674a861c428429dce0762707ecb6052325bbd9b3c64e74b5af9d",
+ "parentHash": "0x1f68ac259155e2f38211ddad0f0a15394d55417b185a93923e2abe71bb7a4d6d",
+ "nonce": "0x378da40ff335b070",
+ "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "logsBloom": "0x00000000000000100000004080000000000500000000000000020000100000000800001000000004000001000000000000000800040010000020100000000400000010000000000000000040000000000000040000000000000000000000000000000400002400000000000000000000000000000004000004000000000000840000000800000080010004000000001000000800000000000000000000000000000000000800000000000040000000020000000000000000000800000400000000000000000000000600000400000000002000000000000000000000004000000000000000100000000000000000000000000000000000040000900010000000",
+ "transactionsRoot": "0x4d0c8e91e16bdff538c03211c5c73632ed054d00a7e210c0eb25146c20048126",
+ "stateRoot": "0x91309efa7e42c1f137f31fe9edbe88ae087e6620d0d59031324da3e2f4f93233",
+ "receiptsRoot": "0x68461ab700003503a305083630a8fb8d14927238f0bc8b6b3d246c0c64f21f4a",
+ "miner": "0xb42b6c4a95406c78ff892d270ad20b22642e102d",
+ "difficulty": "0x66e619a",
+ "totalDifficulty": "0x1e875d746ae",
+ "extraData": "0xd583010502846765746885676f312e37856c696e7578",
+ "size": "0x334",
+ "gasLimit": "0x47e7c4",
+ "gasUsed": "0x37993",
+ "timestamp": "0x5835c54d",
+ "uncles": [],
+ "transactions": [
+ "0xa0807e117a8dd124ab949f460f08c36c72b710188f01609595223b325e58e0fc",
+ "0xeae6d797af50cb62a596ec3939114d63967c374fa57de9bc0f4e2b576ed6639d"
+ ],
+ "baseFeePerGas": "0x7",
+ "withdrawalsRoot": "0x7a4ecf19774d15cf9c15adf0dd8e8a250c128b26c9e2ab2a08d6c9c8ffbd104f",
+ "withdrawals": [
+ {
+ "index": "0x0",
+ "validatorIndex": "0x9d8c0",
+ "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f",
+ "amount": "0x11a33e3760"
+ }
+ ],
+ "blobGasUsed": "0x0",
+ "excessBlobGas": "0x0",
+ "parentBeaconBlockRoot": "0x95c4dbd5b19f6fe3cbc3183be85ff4e85ebe75c5b4fc911f1c91e5b7a554a685"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getBlockByNumber.mdx b/packages/example-site/docs/api-reference/methods/eth_getBlockByNumber.mdx
index 34c7117..6137c68 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getBlockByNumber.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getBlockByNumber.mdx
@@ -5,1441 +5,1455 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
+ # eth\_getBlockByNumber
+
+
+
+ Returns information about a block by number.
+
+ ## Parameters (by position)
+
+ **Block** `string or string` *required*
+
+ ***
+
- # eth\_getBlockByNumber
+
+
+ Show Option 1 `Block number` string
+
+ #### `Block number` fields
+ **Block** `string` *required*
- Returns information about a block by number.
+ Block number
-
- ## Parameters (by position)
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
-
- **Block** `string or string` *required*
+ ***
+
+
- ***
+
+
+
+ Show Option 2 `Block tag` string
+
-
-
- Show Option 1 `Block number` string
-
+ #### `Block tag` fields
- #### `Block number` fields
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string` *required*
+ **Block** `string` *required*
- Block number
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Block tag` string
-
+ **Hydrated transactions** `boolean` *required*
- #### `Block tag` fields
+ ***
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ ## Result
- **Block** `string` *required*
+ **Block information** `null or object`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ ***
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+
+
+
+ Show Option 1 `Not Found (null)` null
+
- ***
-
-
+ #### `Not Found (null)` fields
+
+ **Block information** `null`
- **Hydrated transactions** `boolean` *required*
+ Not Found (null)
***
-
+
+
-
- ## Result
+
+
+
+ Show Option 2 `Block object` object
+
-
- **Block information** `null or object`
+ #### `Block object` fields
+
+ **Block information** `object`
- ***
+ Block object
+
+ ***
+
- Show Option 1 `Not Found (null)` null
+ Show `Block information` object
- #### `Not Found (null)` fields
+ #### `Block information` fields
- **Block information** `null`
+ * **hash** `string` *required*
- Not Found (null)
+ Hash
- ***
-
+ *Match pattern:* `^0x[0-9a-f]{64}$`
-
-
- Show Option 2 `Block object` object
-
+ ***
- #### `Block object` fields
+ * **parentHash** `string` *required*
- **Block information** `object`
+ Parent block hash
- Block object
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
-
-
-
- Show `Block information` object
-
+ * **sha3Uncles** `string` *required*
- #### `Block information` fields
+ Ommers hash
- * **hash** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Hash
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **miner** `string` *required*
- ***
+ Coinbase
- * **parentHash** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- Parent block hash
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **stateRoot** `string` *required*
- ***
+ State root
- * **sha3Uncles** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Ommers hash
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **transactionsRoot** `string` *required*
- ***
+ Transactions root
- * **miner** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Coinbase
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **receiptsRoot** `string` *required*
- ***
+ Receipts root
- * **stateRoot** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- State root
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **logsBloom** `string` *required*
- ***
+ Bloom filter
- * **transactionsRoot** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- Transactions root
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **difficulty** `string`
- ***
+ Difficulty
- * **receiptsRoot** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Receipts root
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **number** `string` *required*
- ***
+ Number
- * **logsBloom** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Bloom filter
+ ***
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ * **gasLimit** `string` *required*
- ***
+ Gas limit
- * **difficulty** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Difficulty
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **gasUsed** `string` *required*
- ***
+ Gas used
- * **number** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Number
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **timestamp** `string` *required*
- ***
+ Timestamp
- * **gasLimit** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Gas limit
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **extraData** `string` *required*
- ***
+ Extra data
- * **gasUsed** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]*$`
- Gas used
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **mixHash** `string` *required*
- ***
+ Mix hash
- * **timestamp** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Timestamp
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **nonce** `string` *required*
- ***
+ Nonce
- * **extraData** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{16}$`
- Extra data
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ * **baseFeePerGas** `string`
- ***
+ Base fee per gas
- * **mixHash** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Mix hash
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **withdrawalsRoot** `string`
- ***
+ Withdrawals root
- * **nonce** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Nonce
+ ***
- *Match pattern:* `^0x[0-9a-f]{16}$`
+ * **blobGasUsed** `string`
- ***
+ Blob gas used
- * **baseFeePerGas** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Base fee per gas
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **excessBlobGas** `string`
- ***
+ Excess blob gas
- * **withdrawalsRoot** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Withdrawals root
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **parentBeaconBlockRoot** `string`
- ***
+ Parent Beacon Block Root
- * **blobGasUsed** `string`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Blob gas used
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **size** `string` *required*
- ***
+ Block size
- * **excessBlobGas** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Excess blob gas
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **transactions** `array or array` *required*
- ***
+ ***
- * **parentBeaconBlockRoot** `string`
+
+
+
+ Show Option 1 `Transaction hashes` array
+
- Parent Beacon Block Root
+ #### `Transaction hashes` fields
+
+ **transactions** `array` *required*
+
+ 32 byte hex value
*Match pattern:* `^0x[0-9a-f]{64}$`
***
+
+
- * **size** `string` *required*
+
+
+
+ Show Option 2 `Full transactions` array
+
- Block size
+ #### `Full transactions` fields
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ **transactions** `object or object or object or object or object` *required*
***
- *
- **transactions** `array
or array` *required*
-
- ***
-
+
- Show Option 1 `Transaction hashes` array
+ Show Option 1 `Signed 7702 Transaction` object
- #### `Transaction hashes` fields
+ #### `Signed 7702 Transaction` fields
- **transactions** `array` *required*
+ **transactions** `array` *required*
- 32 byte hex value
-
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ Signed 7702 Transaction
***
-
-
-
-
- Show Option 2 `Full transactions` array
-
-
- #### `Full transactions` fields
- **transactions** `object or object or object or object or object` *required*
-
- ***
-
- Show Option 1 `Signed 7702 Transaction` object
+ Show `transactions` object
- #### `Signed 7702 Transaction` fields
+ #### `transactions` fields
- **transactions** `array` *required*
+ * **type** `string` *required*
- Signed 7702 Transaction
+ type
- ***
+ *Match pattern:* `^0x4$`
-
-
-
- Show `transactions` object
-
+ ***
- #### `transactions` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x4$`
+ ***
- ***
+ * **to** `string` *required*
- * **nonce** `string` *required*
+ to address
- nonce
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gas** `string` *required*
- * **to** `string` *required*
+ gas limit
- to address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
-
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access lists
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access lists
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access lists
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **authorizationList** `array` *required*
- Chain ID that this transaction is valid on
+ List of authorizations for the transaction
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `authorizationList` object
+
- * **authorizationList** `array` *required*
+ #### `authorizationList` fields
List of authorizations for the transaction
- ***
+ * **chainId** `string` *required*
-
-
-
- Show `authorizationList` object
-
+ Chain ID on which this transaction is valid
- #### `authorizationList` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- List of authorizations for the transaction
+ ***
+
+ * **nonce** `string` *required*
- * **chainId** `string` *required*
+ nonce
- Chain ID on which this transaction is valid
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **address** `string` *required*
- * **nonce** `string` *required*
+ hex encoded address
- nonce
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **yParity** `string` *required*
- * **address** `string` *required*
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- hex encoded address
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **r** `string` *required*
- * **yParity** `string` *required*
+ r
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ ***
- ***
+ * **s** `string` *required*
- * **r** `string` *required*
+ s
- r
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ ***
- ***
+ * **additionalProperties** `true`
- * **s** `string` *required*
+ ***
+
+
- s
+ * **yParity** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- ***
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- * **additionalProperties** `true`
+ ***
- ***
-
-
+ * **v** `string`
- * **yParity** `string` *required*
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ ***
- ***
+ * **r** `string` *required*
- * **v** `string`
+ r
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ ***
- ***
+ * **s** `string` *required*
- * **r** `string` *required*
+ s
- r
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **additionalProperties** `true`
- * **s** `string` *required*
+ ***
+
+
+
+
- s
+
+
+
+ Show Option 2 `Signed 4844 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 4844 Transaction` fields
- ***
+ **transactions** `array` *required*
- * **additionalProperties** `true`
+ Signed 4844 Transaction
- ***
-
-
-
+ ***
+
- Show Option 2 `Signed 4844 Transaction` object
+ Show `transactions` object
- #### `Signed 4844 Transaction` fields
-
- **transactions** `array` *required*
+ #### `transactions` fields
- Signed 4844 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `transactions` object
-
+ *Match pattern:* `^0x3$`
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x3$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `string` *required*
- nonce
+ to address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **to** `string` *required*
+ * **gas** `string` *required*
- to address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **maxFeePerBlobGas** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blobVersionedHashes** `array` *required*
- ***
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
- * **additionalProperties** `false`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
- * **blobVersionedHashes** `array` *required*
+ * **chainId** `string` *required*
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
+ Chain ID that this transaction is valid on
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 3 `Signed 1559 Transaction` object
+
- ***
+ #### `Signed 1559 Transaction` fields
- * **additionalProperties** `true`
+ **transactions** `array` *required*
- ***
-
-
-
+ Signed 1559 Transaction
+
+ ***
+
- Show Option 3 `Signed 1559 Transaction` object
+ Show `transactions` object
- #### `Signed 1559 Transaction` fields
-
- **transactions** `array` *required*
+ #### `transactions` fields
- Signed 1559 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `transactions` object
-
+ *Match pattern:* `^0x2$`
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x2$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 4 `Signed 2930 Transaction` object
+
- ***
+ #### `Signed 2930 Transaction` fields
- * **additionalProperties** `true`
+ **transactions** `array` *required*
- ***
-
-
-
+ Signed 2930 Transaction
+ ***
+
+
- Show Option 4 `Signed 2930 Transaction` object
+ Show `transactions` object
- #### `Signed 2930 Transaction` fields
-
- **transactions** `array` *required*
+ #### `transactions` fields
- Signed 2930 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `transactions` object
-
+ *Match pattern:* `^0x1$`
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x1$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **gasPrice** `string` *required*
- input data
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The gas price willing to be paid by the sender in wei
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 5 `Signed Legacy Transaction` object
+
- ***
+ #### `Signed Legacy Transaction` fields
- * **additionalProperties** `true`
+ **transactions** `array` *required*
- ***
-
-
-
+ Signed Legacy Transaction
+ ***
+
+
- Show Option 5 `Signed Legacy Transaction` object
+ Show `transactions` object
- #### `Signed Legacy Transaction` fields
-
- **transactions** `array` *required*
+ #### `transactions` fields
- Signed Legacy Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `transactions` object
-
+ *Match pattern:* `^0x0$`
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x0$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
- * **nonce** `string` *required*
-
- nonce
-
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
-
- *
- **to** `null or string`
+ * **to** `null or string`
- ***
+ ***
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- #### `Contract Creation (null)` fields
+ #### `Contract Creation (null)` fields
- **to** `null`
+ **to** `null`
- Contract Creation (null)
+ Contract Creation (null)
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Address` string
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Address` fields
+ #### `Address` fields
- **to** `string`
+ **to** `string`
- Address
+ Address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- * **gas** `string` *required*
+ * **gas** `string` *required*
- gas limit
+ gas limit
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **value** `string` *required*
- value
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **input** `string` *required*
+ * **input** `string` *required*
- input data
+ input data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **gasPrice** `string` *required*
- The gas price willing to be paid by the sender in wei
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string`
+ * **chainId** `string`
- Chain ID that this transaction is valid on.
+ Chain ID that this transaction is valid on.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **v** `string` *required*
+ * **v** `string` *required*
- v
+ v
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **r** `string` *required*
- r
+ r
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **s** `string` *required*
- s
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
+ ***
+
+
- * **withdrawals** `array`
+ * **withdrawals** `array`
- Validator withdrawal
+ Validator withdrawal
- ***
+ ***
-
-
-
- Show `withdrawals` object
-
+
+
+
+ Show `withdrawals` object
+
- #### `withdrawals` fields
+ #### `withdrawals` fields
- * **index** `string` *required*
+ * **index** `string` *required*
- index of withdrawal
+ index of withdrawal
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
+ ***
- * **validatorIndex** `string` *required*
+ * **validatorIndex** `string` *required*
- index of validator that generated withdrawal
+ index of validator that generated withdrawal
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
+ ***
- * **address** `string` *required*
+ * **address** `string` *required*
- recipient address for withdrawal value
+ recipient address for withdrawal value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **amount** `string` *required*
+ * **amount** `string` *required*
- value contained in withdrawal
+ value contained in withdrawal
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **uncles** `array` *required*
+ * **uncles** `array` *required*
- 32 byte hex value
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **requestsHash** `string`
+ * **requestsHash** `string`
- EIP-7685 requests hash
+ EIP-7685 requests hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
+ ***
-
-
-
- ## Examples
-
-
-
- eth\_getBlockByNumber example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0x68b3",
- false
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "number": "0x68b3",
- "hash": "0xd5f1812548be429cbdc6376b29611fc49e06f1359758c4ceaaa3b393e2239f9c",
- "mixHash": "0x24900fb3da77674a861c428429dce0762707ecb6052325bbd9b3c64e74b5af9d",
- "parentHash": "0x1f68ac259155e2f38211ddad0f0a15394d55417b185a93923e2abe71bb7a4d6d",
- "nonce": "0x378da40ff335b070",
- "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
- "logsBloom": "0x00000000000000100000004080000000000500000000000000020000100000000800001000000004000001000000000000000800040010000020100000000400000010000000000000000040000000000000040000000000000000000000000000000400002400000000000000000000000000000004000004000000000000840000000800000080010004000000001000000800000000000000000000000000000000000800000000000040000000020000000000000000000800000400000000000000000000000600000400000000002000000000000000000000004000000000000000100000000000000000000000000000000000040000900010000000",
- "transactionsRoot": "0x4d0c8e91e16bdff538c03211c5c73632ed054d00a7e210c0eb25146c20048126",
- "stateRoot": "0x91309efa7e42c1f137f31fe9edbe88ae087e6620d0d59031324da3e2f4f93233",
- "receiptsRoot": "0x68461ab700003503a305083630a8fb8d14927238f0bc8b6b3d246c0c64f21f4a",
- "miner": "0xb42b6c4a95406c78ff892d270ad20b22642e102d",
- "difficulty": "0x66e619a",
- "totalDifficulty": "0x1e875d746ae",
- "extraData": "0xd583010502846765746885676f312e37856c696e7578",
- "size": "0x334",
- "gasLimit": "0x47e7c4",
- "gasUsed": "0x37993",
- "timestamp": "0x5835c54d",
- "uncles": [],
- "transactions": [
- "0xa0807e117a8dd124ab949f460f08c36c72b710188f01609595223b325e58e0fc",
- "0xeae6d797af50cb62a596ec3939114d63967c374fa57de9bc0f4e2b576ed6639d"
- ],
- "baseFeePerGas": "0x7",
- "withdrawalsRoot": "0x7a4ecf19774d15cf9c15adf0dd8e8a250c128b26c9e2ab2a08d6c9c8ffbd104f",
- "withdrawals": [
- {
- "index": "0x0",
- "validatorIndex": "0x9d8c0",
- "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f",
- "amount": "0x11a33e3760"
- }
- ],
- "blobGasUsed": "0x0",
- "excessBlobGas": "0x0",
- "parentBeaconBlockRoot": "0x95c4dbd5b19f6fe3cbc3183be85ff4e85ebe75c5b4fc911f1c91e5b7a554a685"
- }
- ```
-
-
+
+
+
+ ## Examples
+
+
+
+
+ eth\_getBlockByNumber example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0x68b3",
+ false
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "number": "0x68b3",
+ "hash": "0xd5f1812548be429cbdc6376b29611fc49e06f1359758c4ceaaa3b393e2239f9c",
+ "mixHash": "0x24900fb3da77674a861c428429dce0762707ecb6052325bbd9b3c64e74b5af9d",
+ "parentHash": "0x1f68ac259155e2f38211ddad0f0a15394d55417b185a93923e2abe71bb7a4d6d",
+ "nonce": "0x378da40ff335b070",
+ "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "logsBloom": "0x00000000000000100000004080000000000500000000000000020000100000000800001000000004000001000000000000000800040010000020100000000400000010000000000000000040000000000000040000000000000000000000000000000400002400000000000000000000000000000004000004000000000000840000000800000080010004000000001000000800000000000000000000000000000000000800000000000040000000020000000000000000000800000400000000000000000000000600000400000000002000000000000000000000004000000000000000100000000000000000000000000000000000040000900010000000",
+ "transactionsRoot": "0x4d0c8e91e16bdff538c03211c5c73632ed054d00a7e210c0eb25146c20048126",
+ "stateRoot": "0x91309efa7e42c1f137f31fe9edbe88ae087e6620d0d59031324da3e2f4f93233",
+ "receiptsRoot": "0x68461ab700003503a305083630a8fb8d14927238f0bc8b6b3d246c0c64f21f4a",
+ "miner": "0xb42b6c4a95406c78ff892d270ad20b22642e102d",
+ "difficulty": "0x66e619a",
+ "totalDifficulty": "0x1e875d746ae",
+ "extraData": "0xd583010502846765746885676f312e37856c696e7578",
+ "size": "0x334",
+ "gasLimit": "0x47e7c4",
+ "gasUsed": "0x37993",
+ "timestamp": "0x5835c54d",
+ "uncles": [],
+ "transactions": [
+ "0xa0807e117a8dd124ab949f460f08c36c72b710188f01609595223b325e58e0fc",
+ "0xeae6d797af50cb62a596ec3939114d63967c374fa57de9bc0f4e2b576ed6639d"
+ ],
+ "baseFeePerGas": "0x7",
+ "withdrawalsRoot": "0x7a4ecf19774d15cf9c15adf0dd8e8a250c128b26c9e2ab2a08d6c9c8ffbd104f",
+ "withdrawals": [
+ {
+ "index": "0x0",
+ "validatorIndex": "0x9d8c0",
+ "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f",
+ "amount": "0x11a33e3760"
+ }
+ ],
+ "blobGasUsed": "0x0",
+ "excessBlobGas": "0x0",
+ "parentBeaconBlockRoot": "0x95c4dbd5b19f6fe3cbc3183be85ff4e85ebe75c5b4fc911f1c91e5b7a554a685"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getBlockReceipts.mdx b/packages/example-site/docs/api-reference/methods/eth_getBlockReceipts.mdx
index ba9c617..4233f4e 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getBlockReceipts.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getBlockReceipts.mdx
@@ -5,501 +5,505 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getBlockReceipts
+ # eth\_getBlockReceipts
- Returns the receipts of a block by number or hash.
+ Returns the receipts of a block by number or hash.
-
- ## Parameters (by position)
+ ## Parameters (by position)
-
- **Block** `string or string or string` *required*
+ **Block** `string or string or string` *required*
- ***
+ ***
-
-
- Show Option 1 `Block number` string
-
+
+
+
+ Show Option 1 `Block number` string
+
- #### `Block number` fields
+ #### `Block number` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block number
+ Block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Block tag` string
-
+
+
+
+ Show Option 2 `Block tag` string
+
- #### `Block tag` fields
+ #### `Block tag` fields
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string` *required*
+ **Block** `string` *required*
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- ***
-
+ ***
+
+
-
-
- Show Option 3 `Block hash` string
-
+
+
+
+ Show Option 3 `Block hash` string
+
- #### `Block hash` fields
+ #### `Block hash` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block hash
+ Block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
-
+ ***
+
+
-
- ## Result
+ ## Result
-
- **Receipts information** `null or array
`
+ **Receipts information** `null or array`
- ***
+ ***
-
-
- Show Option 1 `Not Found (null)` null
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
- #### `Not Found (null)` fields
+ #### `Not Found (null)` fields
- **Receipts information** `null`
+ **Receipts information** `null`
- Not Found (null)
+ Not Found (null)
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Receipts information` array
-
+
+
+
+ Show Option 2 `Receipts information` array
+
- #### `Receipts information` fields
+ #### `Receipts information` fields
- **Receipts information** `array`
+ **Receipts information** `array`
- Receipt information
+ Receipt information
- ***
+ ***
-
-
-
- Show `Receipts information` object
-
+
+
+
+ Show `Receipts information` object
+
- #### `Receipts information` fields
+ #### `Receipts information` fields
- * **type** `string`
+ * **type** `string`
- type
+ type
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **transactionHash** `string` *required*
+ * **transactionHash** `string` *required*
- transaction hash
+ transaction hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **transactionIndex** `string` *required*
+ * **transactionIndex** `string` *required*
- transaction index
+ transaction index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blockHash** `string` *required*
+ * **blockHash** `string` *required*
- block hash
+ block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockNumber** `string` *required*
+ * **blockNumber** `string` *required*
- block number
+ block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **from** `string` *required*
+ * **from** `string` *required*
- from
+ from
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- *
- **to** `null or string`
+ * **to** `null or string`
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- ***
+ ***
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- #### `Contract Creation (null)` fields
+ #### `Contract Creation (null)` fields
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- **to** `null`
+ **to** `null`
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Recipient Address` string
-
+
+
+
+ Show Option 2 `Recipient Address` string
+
- #### `Recipient Address` fields
+ #### `Recipient Address` fields
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- **to** `string`
+ **to** `string`
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- * **cumulativeGasUsed** `string` *required*
+ * **cumulativeGasUsed** `string` *required*
- The sum of gas used by this transaction and all preceding transactions in the same block.
+ The sum of gas used by this transaction and all preceding transactions in the same block.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasUsed** `string` *required*
+ * **gasUsed** `string` *required*
- The amount of gas used for this specific transaction alone.
+ The amount of gas used for this specific transaction alone.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blobGasUsed** `string`
+ * **blobGasUsed** `string`
- The amount of blob gas used for this specific transaction. Only specified for blob transactions as defined by EIP-4844.
+ The amount of blob gas used for this specific transaction. Only specified for blob transactions as defined by EIP-4844.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **contractAddress** `string or null`
+ * **contractAddress** `string or null`
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- ***
+ ***
-
-
- Show Option 1 `hex encoded address` string
-
+
+
+
+ Show Option 1 `hex encoded address` string
+
- #### `hex encoded address` fields
+ #### `hex encoded address` fields
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- **contractAddress** `string`
+ **contractAddress** `string`
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Null` null
-
+
+
+
+ Show Option 2 `Null` null
+
- #### `Null` fields
+ #### `Null` fields
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- **contractAddress** `null`
+ **contractAddress** `null`
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- ***
-
-
+ ***
+
+
- * **logs** `array` *required*
+ * **logs** `array` *required*
- log
+ log
- ***
+ ***
-
-
-
- Show `logs` object
-
+
+
+
+ Show `logs` object
+
- #### `logs` fields
+ #### `logs` fields
- * **removed** `boolean`
+ * **removed** `boolean`
- removed
+ removed
- ***
+ ***
- * **logIndex** `string`
+ * **logIndex** `string`
- log index
+ log index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionIndex** `string`
+ * **transactionIndex** `string`
- transaction index
+ transaction index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionHash** `string` *required*
+ * **transactionHash** `string` *required*
- transaction hash
+ transaction hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockHash** `string`
+ * **blockHash** `string`
- block hash
+ block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockNumber** `string`
+ * **blockNumber** `string`
- block number
+ block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blockTimestamp** `string`
+ * **blockTimestamp** `string`
- block timestamp
+ block timestamp
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **address** `string`
+ * **address** `string`
- address
+ address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **data** `string`
+ * **data** `string`
- data
+ data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **topics** `array`
+ * **topics** `array`
- 32 hex encoded bytes
+ 32 hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **logsBloom** `string` *required*
+ * **logsBloom** `string` *required*
- logs bloom
+ logs bloom
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- ***
+ ***
- * **root** `string`
+ * **root** `string`
- The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.
+ The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **status** `string`
+ * **status** `string`
- Either 1 (success) or 0 (failure). Only specified for transactions included after the Byzantium upgrade.
+ Either 1 (success) or 0 (failure). Only specified for transactions included after the Byzantium upgrade.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **effectiveGasPrice** `string` *required*
+ * **effectiveGasPrice** `string` *required*
- The actual value per gas deducted from the sender's account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).
+ The actual value per gas deducted from the sender's account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blobGasPrice** `string`
+ * **blobGasPrice** `string`
- The actual value per gas deducted from the sender's account for blob gas. Only specified for blob transactions as defined by EIP-4844.
+ The actual value per gas deducted from the sender's account for blob gas. Only specified for blob transactions as defined by EIP-4844.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
-
+
+
+
+ ## Examples
-
- ## Examples
+
+
+
+ eth\_getBlockReceipts example
+
+
+ #### Request
-
-
- eth\_getBlockReceipts example
-
+ ```json
+ {
+ "params": [
+ "latest"
+ ]
+ }
+ ```
- #### Request
+ #### Response
- ```json
+ ```json
+ [
{
- "params": [
- "latest"
- ]
+ "blockHash": "0x19514ce955c65e4dd2cd41f435a75a46a08535b8fc16bc660f8092b32590b182",
+ "blockNumber": "0x6f55",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x18c36",
+ "from": "0x22896bfc68814bfd855b1a167255ee497006e730",
+ "gasUsed": "0x18c36",
+ "blobGasUsed": "0x20000",
+ "effectiveGasPrice": "0x9502f907",
+ "blobGasPrice": "0x32",
+ "logs": [
+ {
+ "address": "0xfd584430cafa2f451b4e2ebcf3986a21fff04350",
+ "topics": [
+ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
+ "0x4be29e0e4eb91f98f709d98803cba271592782e293b84a625e025cbb40197ba8",
+ "0x000000000000000000000000835281a2563db4ebf1b626172e085dc406bfc7d2",
+ "0x00000000000000000000000022896bfc68814bfd855b1a167255ee497006e730"
+ ],
+ "data": "0x",
+ "blockNumber": "0x6f55",
+ "transactionHash": "0x4a481e4649da999d92db0585c36cba94c18a33747e95dc235330e6c737c6f975",
+ "transactionIndex": "0x0",
+ "blockHash": "0x19514ce955c65e4dd2cd41f435a75a46a08535b8fc16bc660f8092b32590b182",
+ "logIndex": "0x0",
+ "removed": false
+ }
+ ],
+ "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000080020000000000000200010000000000000000000001000000800000000000000000000000000000000000000000000000000000100100000000000000000000008000000000000000000000000000000002000000000000000000000",
+ "status": "0x1",
+ "to": "0xfd584430cafa2f451b4e2ebcf3986a21fff04350",
+ "transactionHash": "0x4a481e4649da999d92db0585c36cba94c18a33747e95dc235330e6c737c6f975",
+ "transactionIndex": "0x0",
+ "type": "0x0"
+ },
+ {
+ "blockHash": "0x19514ce955c65e4dd2cd41f435a75a46a08535b8fc16bc660f8092b32590b182",
+ "blockNumber": "0x6f55",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x1de3e",
+ "from": "0x712e3a792c974b3e3dbe41229ad4290791c75a82",
+ "gasUsed": "0x5208",
+ "blobGasUsed": "0x20000",
+ "effectiveGasPrice": "0x9502f907",
+ "blobGasPrice": "0x32",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "status": "0x1",
+ "to": "0xd42e2b1c14d02f1df5369a9827cb8e6f3f75f338",
+ "transactionHash": "0xefb83b4e3f1c317e8da0f8e2fbb2fe964f34ee184466032aeecac79f20eacaf6",
+ "transactionIndex": "0x1",
+ "type": "0x2"
}
- ```
-
- #### Response
-
- ```json
- [
- {
- "blockHash": "0x19514ce955c65e4dd2cd41f435a75a46a08535b8fc16bc660f8092b32590b182",
- "blockNumber": "0x6f55",
- "contractAddress": null,
- "cumulativeGasUsed": "0x18c36",
- "from": "0x22896bfc68814bfd855b1a167255ee497006e730",
- "gasUsed": "0x18c36",
- "blobGasUsed": "0x20000",
- "effectiveGasPrice": "0x9502f907",
- "blobGasPrice": "0x32",
- "logs": [
- {
- "address": "0xfd584430cafa2f451b4e2ebcf3986a21fff04350",
- "topics": [
- "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
- "0x4be29e0e4eb91f98f709d98803cba271592782e293b84a625e025cbb40197ba8",
- "0x000000000000000000000000835281a2563db4ebf1b626172e085dc406bfc7d2",
- "0x00000000000000000000000022896bfc68814bfd855b1a167255ee497006e730"
- ],
- "data": "0x",
- "blockNumber": "0x6f55",
- "transactionHash": "0x4a481e4649da999d92db0585c36cba94c18a33747e95dc235330e6c737c6f975",
- "transactionIndex": "0x0",
- "blockHash": "0x19514ce955c65e4dd2cd41f435a75a46a08535b8fc16bc660f8092b32590b182",
- "logIndex": "0x0",
- "removed": false
- }
- ],
- "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000080020000000000000200010000000000000000000001000000800000000000000000000000000000000000000000000000000000100100000000000000000000008000000000000000000000000000000002000000000000000000000",
- "status": "0x1",
- "to": "0xfd584430cafa2f451b4e2ebcf3986a21fff04350",
- "transactionHash": "0x4a481e4649da999d92db0585c36cba94c18a33747e95dc235330e6c737c6f975",
- "transactionIndex": "0x0",
- "type": "0x0"
- },
- {
- "blockHash": "0x19514ce955c65e4dd2cd41f435a75a46a08535b8fc16bc660f8092b32590b182",
- "blockNumber": "0x6f55",
- "contractAddress": null,
- "cumulativeGasUsed": "0x1de3e",
- "from": "0x712e3a792c974b3e3dbe41229ad4290791c75a82",
- "gasUsed": "0x5208",
- "blobGasUsed": "0x20000",
- "effectiveGasPrice": "0x9502f907",
- "blobGasPrice": "0x32",
- "logs": [],
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "status": "0x1",
- "to": "0xd42e2b1c14d02f1df5369a9827cb8e6f3f75f338",
- "transactionHash": "0xefb83b4e3f1c317e8da0f8e2fbb2fe964f34ee184466032aeecac79f20eacaf6",
- "transactionIndex": "0x1",
- "type": "0x2"
- }
- ]
- ```
-
-
+ ]
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getBlockTransactionCountByHash.mdx b/packages/example-site/docs/api-reference/methods/eth_getBlockTransactionCountByHash.mdx
index 43d1183..2c8ce27 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getBlockTransactionCountByHash.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getBlockTransactionCountByHash.mdx
@@ -5,89 +5,85 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getBlockTransactionCountByHash
-
+ # eth\_getBlockTransactionCountByHash
- Returns the number of transactions in a block from a block matching the given block hash.
-
- ## Parameters (by position)
+ Returns the number of transactions in a block from a block matching the given block hash.
- **Block hash** `string`
-
- ***
-
+ ## Parameters (by position)
-
- ## Result
+ **Block hash** `string`
-
- **Transaction count** `null or string`
+ ***
- ***
+ ## Result
-
-
- Show Option 1 `Not Found (null)` null
-
+ **Transaction count** `null or string`
- #### `Not Found (null)` fields
+ ***
- **Transaction count** `null`
-
- Not Found (null)
-
- ***
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
-
-
- Show Option 2 `Transaction count` string
-
+ #### `Not Found (null)` fields
- #### `Transaction count` fields
+ **Transaction count** `null`
- **Transaction count** `string`
+ Not Found (null)
- Transaction count
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Transaction count` string
+
- ***
-
-
-
+ #### `Transaction count` fields
-
- ## Examples
+ **Transaction count** `string`
-
-
- eth\_getBlockTransactionCountByHash example
-
+ Transaction count
- #### Request
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ```json
- {
- "params": [
- "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
- ]
- }
- ```
+ ***
+
+
- #### Response
+ ## Examples
- ```json
- "0x8"
- ```
-
-
+
+
+
+ eth\_getBlockTransactionCountByHash example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x8"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getBlockTransactionCountByNumber.mdx b/packages/example-site/docs/api-reference/methods/eth_getBlockTransactionCountByNumber.mdx
index f974a95..277a1e7 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getBlockTransactionCountByNumber.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getBlockTransactionCountByNumber.mdx
@@ -5,125 +5,123 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getBlockTransactionCountByNumber
-
-
-
- Returns the number of transactions in a block matching the given block number.
+ # eth\_getBlockTransactionCountByNumber
-
- ## Parameters (by position)
-
- **Block** `string or string`
- ***
+ Returns the number of transactions in a block matching the given block number.
-
-
- Show Option 1 `Block number` string
-
+ ## Parameters (by position)
- #### `Block number` fields
+ **Block** `string or string`
- **Block** `string`
+ ***
- Block number
-
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Block number` string
+
- ***
-
+ #### `Block number` fields
-
-
- Show Option 2 `Block tag` string
-
+ **Block** `string`
- #### `Block tag` fields
+ Block number
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- **Block** `string`
+ ***
+
+
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+
+
+
+ Show Option 2 `Block tag` string
+
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ #### `Block tag` fields
- ***
-
-
-
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
-
- ## Result
+ **Block** `string`
-
- **Transaction count** `null or string`
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- ***
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
-
-
- Show Option 1 `Not Found (null)` null
-
+ ***
+
+
- #### `Not Found (null)` fields
+ ## Result
- **Transaction count** `null`
+ **Transaction count** `null or string`
- Not Found (null)
+ ***
- ***
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
-
-
- Show Option 2 `Transaction count` string
-
+ #### `Not Found (null)` fields
- #### `Transaction count` fields
+ **Transaction count** `null`
- **Transaction count** `string`
+ Not Found (null)
- Transaction count
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Transaction count` string
+
- ***
-
-
-
+ #### `Transaction count` fields
-
- ## Examples
+ **Transaction count** `string`
-
-
- eth\_getBlockTransactionCountByNumber example
-
+ Transaction count
- #### Request
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ```json
- {
- "params": [
- "0xe8"
- ]
- }
- ```
+ ***
+
+
- #### Response
+ ## Examples
- ```json
- "0x8"
- ```
-
-
+
+
+
+ eth\_getBlockTransactionCountByNumber example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xe8"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x8"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getCode.mdx b/packages/example-site/docs/api-reference/methods/eth_getCode.mdx
index a29388c..3bed2ac 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getCode.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getCode.mdx
@@ -5,118 +5,116 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getCode
+ # eth\_getCode
- Returns code at a given address.
+ Returns code at a given address.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Address** `string` *required*
+ **Address** `string` *required*
- ***
+ ***
-
- **Block** `string or string or string` *required*
+ **Block** `string or string or string` *required*
- ***
+ ***
-
-
- Show Option 1 `Block number` string
-
+
+
+
+ Show Option 1 `Block number` string
+
- #### `Block number` fields
+ #### `Block number` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block number
+ Block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Block tag` string
-
+
+
+
+ Show Option 2 `Block tag` string
+
- #### `Block tag` fields
+ #### `Block tag` fields
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string` *required*
+ **Block** `string` *required*
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- ***
-
+ ***
+
+
-
-
- Show Option 3 `Block hash` string
-
+
+
+
+ Show Option 3 `Block hash` string
+
- #### `Block hash` fields
+ #### `Block hash` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block hash
+ Block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
-
+ ***
+
+
-
- ## Result
+ ## Result
- **Bytecode** `string`
+ **Bytecode** `string`
- hex encoded bytes
+ hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
-
-
-
- ## Examples
-
-
-
- eth\_getCode example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0xa50a51c09a5c451c52bb714527e1974b686d8e77",
- "latest"
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0x60806040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f2458114604d57806355241077146071575b600080fd5b348015605857600080fd5b50605f6088565b60408051918252519081900360200190f35b348015607c57600080fd5b506086600435608e565b005b60005481565b60008190556040805182815290517f199cd93e851e4c78c437891155e2112093f8f15394aa89dab09e38d6ca0727879181900360200190a1505600a165627a7a723058209d8929142720a69bde2ab3bfa2da6217674b984899b62753979743c0470a2ea70029"
- ```
-
-
+ ***
+
+ ## Examples
+
+
+
+
+ eth\_getCode example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xa50a51c09a5c451c52bb714527e1974b686d8e77",
+ "latest"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x60806040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f2458114604d57806355241077146071575b600080fd5b348015605857600080fd5b50605f6088565b60408051918252519081900360200190f35b348015607c57600080fd5b506086600435608e565b005b60005481565b60008190556040805182815290517f199cd93e851e4c78c437891155e2112093f8f15394aa89dab09e38d6ca0727879181900360200190a1505600a165627a7a723058209d8929142720a69bde2ab3bfa2da6217674b984899b62753979743c0470a2ea70029"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getFilterChanges.mdx b/packages/example-site/docs/api-reference/methods/eth_getFilterChanges.mdx
index d478525..b1754fe 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getFilterChanges.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getFilterChanges.mdx
@@ -5,210 +5,206 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getFilterChanges
+ # eth\_getFilterChanges
- Polling method for the filter with the given ID (created using `eth_newFilter`). Returns an array of logs, block hashes, or transaction hashes since last poll, depending on the installed filter.
+ Polling method for the filter with the given ID (created using `eth_newFilter`). Returns an array of logs, block hashes, or transaction hashes since last poll, depending on the installed filter.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Filter identifier** `string` *required*
+ **Filter identifier** `string` *required*
- ***
-
+ ***
-
- ## Result
+ ## Result
-
- **Log objects** `array
or array`
+ **Log objects** `array or array`
- ***
+ ***
-
-
- Show Option 1 `new block or transaction hashes` array
-
+
+
+
+ Show Option 1 `new block or transaction hashes` array
+
- #### `new block or transaction hashes` fields
+ #### `new block or transaction hashes` fields
- **Log objects** `array`
+ **Log objects** `array`
- 32 byte hex value
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `new logs` array
-
+
+
+
+ Show Option 2 `new logs` array
+
- #### `new logs` fields
+ #### `new logs` fields
- **Log objects** `array`
+ **Log objects** `array`
- log
+ log
- ***
+ ***
-
-
-
- Show `Log objects` object
-
+
+
+
+ Show `Log objects` object
+
- #### `Log objects` fields
+ #### `Log objects` fields
- * **removed** `boolean`
+ * **removed** `boolean`
- removed
+ removed
- ***
+ ***
- * **logIndex** `string`
+ * **logIndex** `string`
- log index
+ log index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionIndex** `string`
+ * **transactionIndex** `string`
- transaction index
+ transaction index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionHash** `string` *required*
+ * **transactionHash** `string` *required*
- transaction hash
+ transaction hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockHash** `string`
+ * **blockHash** `string`
- block hash
+ block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockNumber** `string`
+ * **blockNumber** `string`
- block number
+ block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blockTimestamp** `string`
+ * **blockTimestamp** `string`
- block timestamp
+ block timestamp
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **address** `string`
+ * **address** `string`
- address
+ address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **data** `string`
+ * **data** `string`
- data
+ data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **topics** `array`
+ * **topics** `array`
- 32 hex encoded bytes
+ 32 hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
-
+
+
-
- ## Examples
+ ## Examples
-
-
- eth\_getFilterChanges example
-
+
+
+
+ eth\_getFilterChanges example
+
- #### Request
+ #### Request
- ```json
+ ```json
+ {
+ "params": [
+ "0x01"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ [
{
- "params": [
- "0x01"
+ "logIndex": "0x0",
+ "removed": false,
+ "blockNumber": "0x233",
+ "blockHash": "0xfc139f5e2edee9e9c888d8df9a2d2226133a9bd87c88ccbd9c930d3d4c9f9ef5",
+ "blockTimestamp": "0x11",
+ "transactionHash": "0x66e7a140c8fa27fe98fde923defea7562c3ca2d6bb89798aabec65782c08f63d",
+ "transactionIndex": "0x0",
+ "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000004",
+ "topics": [
+ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
+ ]
+ },
+ {
+ "logIndex": "0x0",
+ "removed": false,
+ "blockNumber": "0x238",
+ "blockHash": "0x98b0ec0f9fea0018a644959accbe69cd046a8582e89402e1ab0ada91cad644ed",
+ "blockTimestamp": "0x22",
+ "transactionHash": "0xdb17aa1c2ce609132f599155d384c0bc5334c988a6c368056d7e167e23eee058",
+ "transactionIndex": "0x0",
+ "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000007",
+ "topics": [
+ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
]
}
- ```
-
- #### Response
-
- ```json
- [
- {
- "logIndex": "0x0",
- "removed": false,
- "blockNumber": "0x233",
- "blockHash": "0xfc139f5e2edee9e9c888d8df9a2d2226133a9bd87c88ccbd9c930d3d4c9f9ef5",
- "blockTimestamp": "0x11",
- "transactionHash": "0x66e7a140c8fa27fe98fde923defea7562c3ca2d6bb89798aabec65782c08f63d",
- "transactionIndex": "0x0",
- "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
- "data": "0x0000000000000000000000000000000000000000000000000000000000000004",
- "topics": [
- "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
- ]
- },
- {
- "logIndex": "0x0",
- "removed": false,
- "blockNumber": "0x238",
- "blockHash": "0x98b0ec0f9fea0018a644959accbe69cd046a8582e89402e1ab0ada91cad644ed",
- "blockTimestamp": "0x22",
- "transactionHash": "0xdb17aa1c2ce609132f599155d384c0bc5334c988a6c368056d7e167e23eee058",
- "transactionIndex": "0x0",
- "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
- "data": "0x0000000000000000000000000000000000000000000000000000000000000007",
- "topics": [
- "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
- ]
- }
- ]
- ```
-
-
+ ]
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getFilterLogs.mdx b/packages/example-site/docs/api-reference/methods/eth_getFilterLogs.mdx
index 3e52401..c862f99 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getFilterLogs.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getFilterLogs.mdx
@@ -5,210 +5,206 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getFilterLogs
+ # eth\_getFilterLogs
- Returns an array of all logs matching the filter with the given ID (created using `eth_newFilter`).
+ Returns an array of all logs matching the filter with the given ID (created using `eth_newFilter`).
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Filter identifier** `string` *required*
+ **Filter identifier** `string` *required*
- ***
-
+ ***
-
- ## Result
+ ## Result
-
- **Log objects** `array
or array`
+ **Log objects** `array or array`
- ***
+ ***
-
-
- Show Option 1 `new block or transaction hashes` array
-
+
+
+
+ Show Option 1 `new block or transaction hashes` array
+
- #### `new block or transaction hashes` fields
+ #### `new block or transaction hashes` fields
- **Log objects** `array`
+ **Log objects** `array`
- 32 byte hex value
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `new logs` array
-
+
+
+
+ Show Option 2 `new logs` array
+
- #### `new logs` fields
+ #### `new logs` fields
- **Log objects** `array`
+ **Log objects** `array`
- log
+ log
- ***
+ ***
-
-
-
- Show `Log objects` object
-
+
+
+
+ Show `Log objects` object
+
- #### `Log objects` fields
+ #### `Log objects` fields
- * **removed** `boolean`
+ * **removed** `boolean`
- removed
+ removed
- ***
+ ***
- * **logIndex** `string`
+ * **logIndex** `string`
- log index
+ log index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionIndex** `string`
+ * **transactionIndex** `string`
- transaction index
+ transaction index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionHash** `string` *required*
+ * **transactionHash** `string` *required*
- transaction hash
+ transaction hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockHash** `string`
+ * **blockHash** `string`
- block hash
+ block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockNumber** `string`
+ * **blockNumber** `string`
- block number
+ block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blockTimestamp** `string`
+ * **blockTimestamp** `string`
- block timestamp
+ block timestamp
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **address** `string`
+ * **address** `string`
- address
+ address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **data** `string`
+ * **data** `string`
- data
+ data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **topics** `array`
+ * **topics** `array`
- 32 hex encoded bytes
+ 32 hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
-
+
+
-
- ## Examples
+ ## Examples
-
-
- eth\_getFilterLogs example
-
+
+
+
+ eth\_getFilterLogs example
+
- #### Request
+ #### Request
- ```json
+ ```json
+ {
+ "params": [
+ "0x01"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ [
{
- "params": [
- "0x01"
+ "logIndex": "0x0",
+ "removed": false,
+ "blockNumber": "0x233",
+ "blockTimestamp": "0x11",
+ "blockHash": "0xfc139f5e2edee9e9c888d8df9a2d2226133a9bd87c88ccbd9c930d3d4c9f9ef5",
+ "transactionHash": "0x66e7a140c8fa27fe98fde923defea7562c3ca2d6bb89798aabec65782c08f63d",
+ "transactionIndex": "0x0",
+ "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000004",
+ "topics": [
+ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
+ ]
+ },
+ {
+ "logIndex": "0x0",
+ "removed": false,
+ "blockNumber": "0x238",
+ "blockTimestamp": "0x22",
+ "blockHash": "0x98b0ec0f9fea0018a644959accbe69cd046a8582e89402e1ab0ada91cad644ed",
+ "transactionHash": "0xdb17aa1c2ce609132f599155d384c0bc5334c988a6c368056d7e167e23eee058",
+ "transactionIndex": "0x0",
+ "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000007",
+ "topics": [
+ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
]
}
- ```
-
- #### Response
-
- ```json
- [
- {
- "logIndex": "0x0",
- "removed": false,
- "blockNumber": "0x233",
- "blockTimestamp": "0x11",
- "blockHash": "0xfc139f5e2edee9e9c888d8df9a2d2226133a9bd87c88ccbd9c930d3d4c9f9ef5",
- "transactionHash": "0x66e7a140c8fa27fe98fde923defea7562c3ca2d6bb89798aabec65782c08f63d",
- "transactionIndex": "0x0",
- "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
- "data": "0x0000000000000000000000000000000000000000000000000000000000000004",
- "topics": [
- "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
- ]
- },
- {
- "logIndex": "0x0",
- "removed": false,
- "blockNumber": "0x238",
- "blockTimestamp": "0x22",
- "blockHash": "0x98b0ec0f9fea0018a644959accbe69cd046a8582e89402e1ab0ada91cad644ed",
- "transactionHash": "0xdb17aa1c2ce609132f599155d384c0bc5334c988a6c368056d7e167e23eee058",
- "transactionIndex": "0x0",
- "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
- "data": "0x0000000000000000000000000000000000000000000000000000000000000007",
- "topics": [
- "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
- ]
- }
- ]
- ```
-
-
+ ]
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getLogs.mdx b/packages/example-site/docs/api-reference/methods/eth_getLogs.mdx
index 8d6b0db..bae3fb6 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getLogs.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getLogs.mdx
@@ -5,365 +5,369 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getLogs
+ # eth\_getLogs
- Returns an array of all logs matching the specified filter.
+ Returns an array of all logs matching the specified filter.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Filter** `object` *required*
+ **Filter** `object` *required*
- filter
+ filter
- ***
+ ***
-
-
-
- Show `Filter` object
-
+
+
+
+ Show `Filter` object
+
- #### `Filter` fields
+ #### `Filter` fields
- * **fromBlock** `string`
+ * **fromBlock** `string`
- from block
+ from block
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **toBlock** `string`
+ * **toBlock** `string`
- to block
+ to block
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **address** `null or string or array
`
+ * **address** `null or string or array`
- ***
+ ***
-
-
- Show Option 1 `Any Address` null
-
+
+
+
+ Show Option 1 `Any Address` null
+
- #### `Any Address` fields
+ #### `Any Address` fields
- **address** `null`
+ **address** `null`
- Any Address
+ Any Address
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Address` string
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Address` fields
+ #### `Address` fields
- **address** `string`
+ **address** `string`
- Address
+ Address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
+ ***
+
+
-
-
- Show Option 3 `Addresses` array
-
+
+
+
+ Show Option 3 `Addresses` array
+
- #### `Addresses` fields
+ #### `Addresses` fields
- **address** `array`
+ **address** `array`
- hex encoded address
+ hex encoded address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- *
- **topics** `null or array
`
+ * **topics** `null or array`
- ***
+ ***
-
-
- Show Option 1 `Any Topic Match` null
-
+
+
+
+ Show Option 1 `Any Topic Match` null
+
- #### `Any Topic Match` fields
+ #### `Any Topic Match` fields
- **topics** `null`
+ **topics** `null`
- Any Topic Match
+ Any Topic Match
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Specified Filter Topics` array
-
+
+
+
+ Show Option 2 `Specified Filter Topics` array
+
- #### `Specified Filter Topics` fields
+ #### `Specified Filter Topics` fields
-
- **topics** `string or array
`
+ **topics** `string or array`
- ***
+ ***
-
-
- Show Option 1 `Single Topic Match` string
-
+
+
+
+ Show Option 1 `Single Topic Match` string
+
- #### `Single Topic Match` fields
+ #### `Single Topic Match` fields
- **topics** `array`
+ **topics** `array`
- Single Topic Match
+ Single Topic Match
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Multiple Topic Match` array
-
+
+
+
+ Show Option 2 `Multiple Topic Match` array
+
- #### `Multiple Topic Match` fields
+ #### `Multiple Topic Match` fields
- **topics** `array`
+ **topics** `array`
- 32 hex encoded bytes
+ 32 hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
+
+
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
-
+ ***
+
+
-
- ## Result
+ ## Result
-
- **Log objects** `array
or array`
+ **Log objects** `array or array`
- ***
+ ***
-
-
- Show Option 1 `new block or transaction hashes` array
-
+
+
+
+ Show Option 1 `new block or transaction hashes` array
+
- #### `new block or transaction hashes` fields
+ #### `new block or transaction hashes` fields
- **Log objects** `array`
+ **Log objects** `array`
- 32 byte hex value
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `new logs` array
-
+
+
+
+ Show Option 2 `new logs` array
+
- #### `new logs` fields
+ #### `new logs` fields
- **Log objects** `array`
+ **Log objects** `array`
- log
+ log
- ***
+ ***
-
-
-
- Show `Log objects` object
-
+
+
+
+ Show `Log objects` object
+
- #### `Log objects` fields
+ #### `Log objects` fields
- * **removed** `boolean`
+ * **removed** `boolean`
- removed
+ removed
- ***
+ ***
- * **logIndex** `string`
+ * **logIndex** `string`
- log index
+ log index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionIndex** `string`
+ * **transactionIndex** `string`
- transaction index
+ transaction index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionHash** `string` *required*
+ * **transactionHash** `string` *required*
- transaction hash
+ transaction hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockHash** `string`
+ * **blockHash** `string`
- block hash
+ block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockNumber** `string`
+ * **blockNumber** `string`
- block number
+ block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blockTimestamp** `string`
+ * **blockTimestamp** `string`
- block timestamp
+ block timestamp
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **address** `string`
+ * **address** `string`
- address
+ address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **data** `string`
+ * **data** `string`
- data
+ data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **topics** `array`
+ * **topics** `array`
- 32 hex encoded bytes
+ 32 hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
-
-
-
- ## Examples
-
-
-
- eth\_getLogs example
-
+
+
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- {
- "fromBlock": "0x137d3c2",
- "toBlock": "0x137d3c3",
- "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
- "topics": []
- }
- ]
- }
- ```
+
+
+
+ eth\_getLogs example
+
- #### Response
+ #### Request
- ```json
- [
- {
- "logIndex": "0x0",
- "removed": false,
- "blockNumber": "0x233",
- "blockTimestamp": "0x11",
- "blockHash": "0xfc139f5e2edee9e9c888d8df9a2d2226133a9bd87c88ccbd9c930d3d4c9f9ef5",
- "transactionHash": "0x66e7a140c8fa27fe98fde923defea7562c3ca2d6bb89798aabec65782c08f63d",
- "transactionIndex": "0x0",
- "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
- "data": "0x0000000000000000000000000000000000000000000000000000000000000004",
- "topics": [
- "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
- ]
- },
+ ```json
+ {
+ "params": [
{
- "logIndex": "0x0",
- "removed": false,
- "blockNumber": "0x238",
- "blockTimestamp": "0x22",
- "blockHash": "0x98b0ec0f9fea0018a644959accbe69cd046a8582e89402e1ab0ada91cad644ed",
- "transactionHash": "0xdb17aa1c2ce609132f599155d384c0bc5334c988a6c368056d7e167e23eee058",
- "transactionIndex": "0x0",
- "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
- "data": "0x0000000000000000000000000000000000000000000000000000000000000007",
- "topics": [
- "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
- ]
+ "fromBlock": "0x137d3c2",
+ "toBlock": "0x137d3c3",
+ "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
+ "topics": []
}
]
- ```
-
-
+ }
+ ```
+
+ #### Response
+
+ ```json
+ [
+ {
+ "logIndex": "0x0",
+ "removed": false,
+ "blockNumber": "0x233",
+ "blockTimestamp": "0x11",
+ "blockHash": "0xfc139f5e2edee9e9c888d8df9a2d2226133a9bd87c88ccbd9c930d3d4c9f9ef5",
+ "transactionHash": "0x66e7a140c8fa27fe98fde923defea7562c3ca2d6bb89798aabec65782c08f63d",
+ "transactionIndex": "0x0",
+ "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000004",
+ "topics": [
+ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
+ ]
+ },
+ {
+ "logIndex": "0x0",
+ "removed": false,
+ "blockNumber": "0x238",
+ "blockTimestamp": "0x22",
+ "blockHash": "0x98b0ec0f9fea0018a644959accbe69cd046a8582e89402e1ab0ada91cad644ed",
+ "transactionHash": "0xdb17aa1c2ce609132f599155d384c0bc5334c988a6c368056d7e167e23eee058",
+ "transactionIndex": "0x0",
+ "address": "0x42699a7612a82f1d9c36148af9c77354759b210b",
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000007",
+ "topics": [
+ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3"
+ ]
+ }
+ ]
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getProof.mdx b/packages/example-site/docs/api-reference/methods/eth_getProof.mdx
index 3c51278..25ff2af 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getProof.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getProof.mdx
@@ -5,255 +5,253 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getProof
-
+ # eth\_getProof
- Returns the merkle proof for a given account and optionally some storage keys.
-
- ## Parameters (by position)
+ Returns the merkle proof for a given account and optionally some storage keys.
- **Address** `string` *required*
+ ## Parameters (by position)
- ***
+ **Address** `string` *required*
- **StorageKeys** `array
` *required*
+ ***
- 32 hex encoded bytes
+ **StorageKeys** `array` *required*
- *Match pattern:* `^0x[0-9a-f]{0,64}$`
+ 32 hex encoded bytes
- ***
+ *Match pattern:* `^0x[0-9a-f]{0,64}$`
-
- **Block** `string or string or string` *required*
+ ***
- ***
+ **Block** `string or string or string` *required*
-
-
- Show Option 1 `Block number` string
-
+ ***
- #### `Block number` fields
+
+
+
+ Show Option 1 `Block number` string
+
- **Block** `string` *required*
+ #### `Block number` fields
- Block number
+ **Block** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ Block number
- ***
-
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
-
-
- Show Option 2 `Block tag` string
-
+ ***
+
+
- #### `Block tag` fields
+
+
+
+ Show Option 2 `Block tag` string
+
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ #### `Block tag` fields
- **Block** `string` *required*
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ **Block** `string` *required*
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- ***
-
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
-
-
- Show Option 3 `Block hash` string
-
+ ***
+
+
- #### `Block hash` fields
+
+
+
+ Show Option 3 `Block hash` string
+
- **Block** `string` *required*
+ #### `Block hash` fields
- Block hash
+ **Block** `string` *required*
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ Block hash
- ***
-
-
-
+ *Match pattern:* `^0x[0-9a-f]{64}$`
-
- ## Result
+ ***
+
+
- **Account** `object`
+ ## Result
- Account proof
+ **Account** `object`
- ***
+ Account proof
-
-
-
- Show `Account` object
-
+ ***
- #### `Account` fields
-
- * **address** `string` *required*
+
+
+
+ Show `Account` object
+
- address
+ #### `Account` fields
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **address** `string` *required*
- ***
+ address
- * **accountProof** `array` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- hex encoded bytes
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ * **accountProof** `array` *required*
- ***
+ hex encoded bytes
- * **balance** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]*$`
- balance
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **balance** `string` *required*
- ***
+ balance
- * **codeHash** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- codeHash
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **codeHash** `string` *required*
- ***
+ codeHash
- * **nonce** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **nonce** `string` *required*
- ***
+ nonce
- * **storageHash** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- storageHash
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **storageHash** `string` *required*
- ***
+ storageHash
- * **storageProof** `array` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Storage proof
+ ***
- ***
+ * **storageProof** `array` *required*
-
-
-
- Show `storageProof` object
-
+ Storage proof
- #### `storageProof` fields
+ ***
- * **key** `string` *required*
+
+
+
+ Show `storageProof` object
+
- key
+ #### `storageProof` fields
- *Match pattern:* `^0x[0-9a-f]{0,64}$`
+ * **key** `string` *required*
- ***
+ key
- * **value** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{0,64}$`
- value
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **value** `string` *required*
- ***
+ value
- * **proof** `array` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- hex encoded bytes
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ * **proof** `array` *required*
- ***
+ hex encoded bytes
- * **additionalProperties** `false`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
-
-
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
-
+ ***
+
+
-
- ## Examples
+ * **additionalProperties** `false`
-
-
- eth\_getProof example
-
+ ***
+
+
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- "0xe5cB067E90D5Cd1F8052B83562Ae670bA4A211a8",
- [
- "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
- ],
- "latest"
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "accountProof": [
- "0xf90211a06a718c2c9da77c253b12d7b2569657901e37bb691718f5dda1b86157ab1dd5eda0e7f19ed5e21bccc8d3260236b24f80ad88b3634f5d005f37b838881f0e12f1bda0abb301291704e4d92686c0f5f8ebb1734185321559b8d717ffdca95c99591976a0d0c2026bfab65c3b95276bfa82af9dec860b485f8857f293c148d63a2182128fa0c98044ec9a1273a218bed58b478277dd39173ad7b8edb95c200423a6bc8fc25fa056e5a55d9ddccdbf49362857200bbb1f042d61187c9f5f9ddcff5d2f1fc984a2a02a5b7200af424114f99a4b5f0a21c19aac82209e431ed80bfde177adb1004bdfa0026e4374f0518ff44a80fa374838ecb86cc64ac93bb710fea6dff4198f947b27a03fea341d87984673ad523177ed52f278bf4d8f97e6531c8ece932aeede4802f4a0bfe2f4a7fcb78f7e9f080dea7b6977fb1d88c441696e4456dad92b9d34ff0f43a02a3eb5c0edb14626c9c629601027bd60178bb2b688a67cea4d179fc432436615a0747355b8e02f3b884b4ffe5cea1619e32515fea064cca98208591af8c744e894a0874253737bae37f020ad3bb7e3292c7c4a63cdc158af6b33aaa4deaef016dccba03d8192bc1fc6aa1548912e763a0b5013a94399cefad7b47cf388873b2b794068a09b67f9737c6028d796bfd1c5da57a6f45824dc891f848ea0e1f8019d1fb5fba8a0aa871f9de8da85960fcd8a22cdf21c27f11e3966c14a6737ffd414b98dda00b280",
- "0xf90211a0d360be1e1da1a0c32bc4c105833bd531e59d110684007b7c50fb2709002973eca0cf6dd1e350a7031b4e2ab49c899fd8bd47551c8565d8fd8d1d7796c83820c3b1a0eb0a88c29bb33989a589156f7bf07d9efc74034dd9d3f5b73385c3b45c3249bea02783c25f97a6ddb8dc07adf4b176991836d39184b1f678adeda832fff15e3664a00a4e288060045e587774d8a64993a7add73068b16863145e1e8eeb4602e18e19a0340851f4046ad1298962d6e47d05c66329549c839c158748aaad7ae00b943aefa085b127bc2a3bd17604283de21b2b3c9aa8f1d4b7b85c94d8105a46fe32c77688a00f531d62b3c5435324c01009c284fe31277e8d38302b75ea01be89f09e205969a00011c8351c0e3d639ac54b9d3a59de630b16a67de8270d7d6064d0a67e93f9cca048780d32b7f2db88650b51c46f46fd0a68795edee1fd5ecee6eb3595741d9669a0c91afd74eaf8e08a997061a62b354e2516fdc494e8e26cc50ceeb8f4a175608ba0e2c07f1b48fab80eecb340f5882e8c7b32ee416e4045c61f1df646a133487303a01a1eff78435a7a29a29463bdc3486ae81364b00bea82ba0fdf67a110770f2261a04f2eb440ba71c72da5fd7f0e439018d6671dc809f747213a1ea755848124e994a074ff9f37fce99daa3ed01dd763076450022996fc729be2cc43c61ec5182c2366a0b80b36b7b621112592f52390b89748d422e9b1517c4b0203b8176a53f89d4a6680",
- "0xf90211a0b25f283bd01a8c8b2418049f9585bc37ff2c1e2e12eab4b7f64ae1f26647389aa02ad96c150d7c3c9c194d30315456852cf6a0a940e0191ae5d04007454823d4e9a0b220cf7a855e2dbcc0b973134e2e119b982d7d40dbb1b27d99816c41f40e829aa049224431da84cbf1b7ae813abcc9ef4c1dfc1760f6ddc5d57f7354bf3cbf6cc4a015191f879ac115b362f0257fd3eedb789537e836574a5b1abf1c9982ebe3bdfea07913c1b6e7282569d2d421e9fa2257f5d1698e93303bc49b941704287d7aaefea0a526576981ce6fd9f2bd48dd2ca6d5272f2fbdc85f0ee35a295f6ccd97ae8765a0313fad407f0c737c29024c02a890c4ecc12d7771c05ab7b435e5087a7cdef4d9a0d2044603cba9d4afdaf6fd2470e729ef3a65242de71276f20d59accfa6b53a7ca0457caacb9370c09b15f7d904adefd2308be94e23669ba5f43241ffff5f438a0aa09fb2dd45a383a0cc088a72b14117e1e9b7d6889218f3ac7631e8de644c5cb76da0c675dcd4d3fb692b514851c6106e2b09e6f5661d56a0a32ae02e2efc1515c235a074949a59ff1bdba87548510d6e404ec4532f4456dfdec8e753d92fda11a3088ba0a328c6ab1ab8f70db4d23e95bb163c13ba0c508f063a5b1393a4efd7ff375f05a0c722fe3ce796998269373cbb2fc229b2bdf2c43c6c2df003309422e043ce6c03a024e69343286eec44fa4744f6907209116e5383cff3fa98fe81ba06e7e8d4366680",
- "0xf90211a00e99ba2198124b8241ea304551fe973215829e2fbc0438d67922707a2a847432a0bb9ce24fd527879c5fe6dbbec1ef5a05ed9d1ca88e921d140bafbec1112f6a6aa099787fd6c7a1989229c4291ef5267335e66152ce417daea46e66d19cb6f81d1ca0e430ff4b8d5621baa5978673344e78b4d8b4df51431b6e63785267c98a24ce18a0bb3e91a825fe3d42ed270a93e9ad1aabd566c40cb28e622f7f1d7ee967c8afd6a0aa364b0056870c6507bc3262a5f851ecb13684088bdb13996d3cb2db401ce3ffa0a3732eba4c7a6e062665ab5be08acb986c3db87556fb138548cc900ff1e56995a026b088e90c9738b8ce16e853107a937a50d52726a24f9f6ce60f587762eb45a2a006c9d5bc3c064b5c1fb565bff91cace9161c64ae653a329610c1dcf34d434429a06c16df2edc70656d322d0c2403bad7d45bc790ffc3e7adeef856d98ea6afc91ba0ae05ed5d6c34b5da29c2e94d7880aeba0906f95f4ec10b132a1d4766a0701c98a01470a86aa350d1ada0c082eac75de828a851f9c8c7c4aa49b1556fe3a5574966a0334eef025100a6da1033710dd98e0475f29d3d7e397caf618ca71c336c5f4f49a0ef0b3abbebcff34d6a8a8f5cdbfbd154ab3452b58dcb09de58ec983644963675a041857e865ec38e200a13bc1a3cb71c7d69aeef7ffdee8be515c9a5b691ce091fa059edd0eb3bbec36bbf38a19802d4646c00ba821ab55fdeea12e15bab62c4e1e580",
- "0xf90211a0af0c7fa65ffcb84c31e68c1cf00e1a20bf8bb497c39883e19b66a99975b03431a0c492cab3623eb7926069794c3c718733e16c5fd0d4a13fb7c752ee9809aac7ada05003cea7132aa70d6f36731d60640a90bcd8f4fd493e4540d5ab1b4943679c0ca0fd700683405b1d2306b586dd3b5b2f92f1692fae20d17cd8b8e59d09b9c6670da01db8683910e46e56e8afeb9fe2b7c35382e5a0914d7b0dd8f0e8cb9981ba7435a0fa7f75d73aa73c35824387bec81388315caa4aee3f4f5562f971beb256c62d49a0ee478e420d83f413e8568dacfd5d83f83a5dd7c45f494b504828e5dc962f0e3ea094b95444a917ac94a675681f6bf851172ad0969801a783a63a71edafed45e7a7a0a0c46586e109abe80fe50361dd582e3f143cb416828239faa43bb2b890869501a0ae051d5d43634c68bf9c97823256cc68580f194dfdbd0c301140c7ca5853430ca0660b9365bb77ec9cdc6eb95516c162dca20727c6f828dbbeb1ae110dde4d3134a09feb1b75e84ff6722e4d837bfb6d207b6ee3b21b86844a01140ce293813b49a1a0ed58a70b04efa3bdc0babe2abfa20824a75d61d52291bfdb5cf08597800764d6a020a2d5d3a83f9e35ad9fd1c448626d90af0eb3efefaa4f2f93207b4096ef5507a0fc8efc4484dcf0a54f0574de9aaade0dcff6ec3599edb9f82efb26b6566dcaeaa032f7e79856db3fd984f72bb2c93d4dab328198d355a61c975fab1f08bdb2046580"
+
+
+
+ eth\_getProof example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xe5cB067E90D5Cd1F8052B83562Ae670bA4A211a8",
+ [
+ "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
],
- "balance": "0x0",
- "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
- "nonce": "0x0",
- "storageHash": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "storageProof": [
- {
- "key": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
- "proof": [
- "0xf90211a0c87222cccea2bf32759fcee9dbaacbe3ea4165dd6184af6773651c5e00e34a8ba0be90e6e5d1a67ab5587779c60ac136d6a96db62b84c04998a5f03a367346abd6a05344aa1c9ca2e3e56bf98fd718ec43728578d148e1967fbaf8bf17a2a073a0bda011a2f9312c3308640a0d6ceeae218747290f23806067456da1d444c65abae437a0b3097a108bfce79af6699da4ae3003cd4929f0b4576aad655c31cb725bde84c7a0c133d3c637e174f36a73c22b1039eb003da6374bc0929321241badb3efa3c4a9a0f13059f2301ad9862ce02e3f7f3f2c9ab78eb30583764d73654f7f1f8b1e86fda06544e3915748b18204e09df75ff20d2fa6bd8121e2e669699012d54590383d6fa070e3a8e093691581d58fadb560b510262a758037632cd8670d3a36df828976b7a062a88a2900544dc76a32255a6b2b2a2eef8fa68279700c00adc7508286702552a0a474aeebd5603dfce46a6ecd1ecd519068dc034a544fde03ac42d4018e60a334a0b7d528fc41c8fdc8ea18c6e7d0099270c777ec1403cf879d1f5134bdc12a6c6ca04440f1242e42c5bfa7c536591ab89c8e84bea417435871c32eef1e25295b20daa06a5dcfe3cc84cff9d3e3c3ae868cfba8f0dd111a90c3f85869dab5b893f96643a026b2fb9dd7d08b0ed2f1c44fbf875011412a384f86f751c92e1013248d4aa371a0c75597b2b789fc4e939b71937390ce9d7d53159431328ac52180eef08ef200f280",
- "0xf90191a0f0c5b800b542001597f2b7a8e106ac0e2849d2cc1df1727ac35c4ea3965f1c9180a08537f2e248702a6ae2a57e9110a5740f5772c876389739ac90debd6a0692713ea00b3a26a05b5494fb3ff6f0b3897688a5581066b20b07ebab9252d169d928717fa0a9a54d84976d134d6dba06a65064c7f3a964a75947d452db6f6bb4b6c47b43aaa01e2a1ed3d1572b872bbf09ee44d2ed737da31f01de3c0f4b4e1f046740066461a076f251d160b9a02eb0b5c1d83b61c9cdd4f37361705e79a45529bf49801fb824a0774a01a624cb14a50d17f2fe4b7ae6af8a67bbb029177ccc3dd729a734484d3ea05921b8a19aebe4fff5a36071e311778f9b93459183fdf7f6d870b401fa25dcbba0c8d71dd13d2806e2865a5c2cfa447f626471bf0b66182a8fd07230434e1cad2680a0e9864fdfaf3693b2602f56cd938ccd494b8634b1f91800ef02203a3609ca4c21a0c69d174ad6b6e58b0bd05914352839ec60915cd066dd2bee2a48016139687f21a0513dd5514fd6bad56871711441d38de2821cc6913cb192416b0385f025650731808080"
- ],
- "value": "0x1"
- }
- ]
- }
- ```
-
-
+ "latest"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "accountProof": [
+ "0xf90211a06a718c2c9da77c253b12d7b2569657901e37bb691718f5dda1b86157ab1dd5eda0e7f19ed5e21bccc8d3260236b24f80ad88b3634f5d005f37b838881f0e12f1bda0abb301291704e4d92686c0f5f8ebb1734185321559b8d717ffdca95c99591976a0d0c2026bfab65c3b95276bfa82af9dec860b485f8857f293c148d63a2182128fa0c98044ec9a1273a218bed58b478277dd39173ad7b8edb95c200423a6bc8fc25fa056e5a55d9ddccdbf49362857200bbb1f042d61187c9f5f9ddcff5d2f1fc984a2a02a5b7200af424114f99a4b5f0a21c19aac82209e431ed80bfde177adb1004bdfa0026e4374f0518ff44a80fa374838ecb86cc64ac93bb710fea6dff4198f947b27a03fea341d87984673ad523177ed52f278bf4d8f97e6531c8ece932aeede4802f4a0bfe2f4a7fcb78f7e9f080dea7b6977fb1d88c441696e4456dad92b9d34ff0f43a02a3eb5c0edb14626c9c629601027bd60178bb2b688a67cea4d179fc432436615a0747355b8e02f3b884b4ffe5cea1619e32515fea064cca98208591af8c744e894a0874253737bae37f020ad3bb7e3292c7c4a63cdc158af6b33aaa4deaef016dccba03d8192bc1fc6aa1548912e763a0b5013a94399cefad7b47cf388873b2b794068a09b67f9737c6028d796bfd1c5da57a6f45824dc891f848ea0e1f8019d1fb5fba8a0aa871f9de8da85960fcd8a22cdf21c27f11e3966c14a6737ffd414b98dda00b280",
+ "0xf90211a0d360be1e1da1a0c32bc4c105833bd531e59d110684007b7c50fb2709002973eca0cf6dd1e350a7031b4e2ab49c899fd8bd47551c8565d8fd8d1d7796c83820c3b1a0eb0a88c29bb33989a589156f7bf07d9efc74034dd9d3f5b73385c3b45c3249bea02783c25f97a6ddb8dc07adf4b176991836d39184b1f678adeda832fff15e3664a00a4e288060045e587774d8a64993a7add73068b16863145e1e8eeb4602e18e19a0340851f4046ad1298962d6e47d05c66329549c839c158748aaad7ae00b943aefa085b127bc2a3bd17604283de21b2b3c9aa8f1d4b7b85c94d8105a46fe32c77688a00f531d62b3c5435324c01009c284fe31277e8d38302b75ea01be89f09e205969a00011c8351c0e3d639ac54b9d3a59de630b16a67de8270d7d6064d0a67e93f9cca048780d32b7f2db88650b51c46f46fd0a68795edee1fd5ecee6eb3595741d9669a0c91afd74eaf8e08a997061a62b354e2516fdc494e8e26cc50ceeb8f4a175608ba0e2c07f1b48fab80eecb340f5882e8c7b32ee416e4045c61f1df646a133487303a01a1eff78435a7a29a29463bdc3486ae81364b00bea82ba0fdf67a110770f2261a04f2eb440ba71c72da5fd7f0e439018d6671dc809f747213a1ea755848124e994a074ff9f37fce99daa3ed01dd763076450022996fc729be2cc43c61ec5182c2366a0b80b36b7b621112592f52390b89748d422e9b1517c4b0203b8176a53f89d4a6680",
+ "0xf90211a0b25f283bd01a8c8b2418049f9585bc37ff2c1e2e12eab4b7f64ae1f26647389aa02ad96c150d7c3c9c194d30315456852cf6a0a940e0191ae5d04007454823d4e9a0b220cf7a855e2dbcc0b973134e2e119b982d7d40dbb1b27d99816c41f40e829aa049224431da84cbf1b7ae813abcc9ef4c1dfc1760f6ddc5d57f7354bf3cbf6cc4a015191f879ac115b362f0257fd3eedb789537e836574a5b1abf1c9982ebe3bdfea07913c1b6e7282569d2d421e9fa2257f5d1698e93303bc49b941704287d7aaefea0a526576981ce6fd9f2bd48dd2ca6d5272f2fbdc85f0ee35a295f6ccd97ae8765a0313fad407f0c737c29024c02a890c4ecc12d7771c05ab7b435e5087a7cdef4d9a0d2044603cba9d4afdaf6fd2470e729ef3a65242de71276f20d59accfa6b53a7ca0457caacb9370c09b15f7d904adefd2308be94e23669ba5f43241ffff5f438a0aa09fb2dd45a383a0cc088a72b14117e1e9b7d6889218f3ac7631e8de644c5cb76da0c675dcd4d3fb692b514851c6106e2b09e6f5661d56a0a32ae02e2efc1515c235a074949a59ff1bdba87548510d6e404ec4532f4456dfdec8e753d92fda11a3088ba0a328c6ab1ab8f70db4d23e95bb163c13ba0c508f063a5b1393a4efd7ff375f05a0c722fe3ce796998269373cbb2fc229b2bdf2c43c6c2df003309422e043ce6c03a024e69343286eec44fa4744f6907209116e5383cff3fa98fe81ba06e7e8d4366680",
+ "0xf90211a00e99ba2198124b8241ea304551fe973215829e2fbc0438d67922707a2a847432a0bb9ce24fd527879c5fe6dbbec1ef5a05ed9d1ca88e921d140bafbec1112f6a6aa099787fd6c7a1989229c4291ef5267335e66152ce417daea46e66d19cb6f81d1ca0e430ff4b8d5621baa5978673344e78b4d8b4df51431b6e63785267c98a24ce18a0bb3e91a825fe3d42ed270a93e9ad1aabd566c40cb28e622f7f1d7ee967c8afd6a0aa364b0056870c6507bc3262a5f851ecb13684088bdb13996d3cb2db401ce3ffa0a3732eba4c7a6e062665ab5be08acb986c3db87556fb138548cc900ff1e56995a026b088e90c9738b8ce16e853107a937a50d52726a24f9f6ce60f587762eb45a2a006c9d5bc3c064b5c1fb565bff91cace9161c64ae653a329610c1dcf34d434429a06c16df2edc70656d322d0c2403bad7d45bc790ffc3e7adeef856d98ea6afc91ba0ae05ed5d6c34b5da29c2e94d7880aeba0906f95f4ec10b132a1d4766a0701c98a01470a86aa350d1ada0c082eac75de828a851f9c8c7c4aa49b1556fe3a5574966a0334eef025100a6da1033710dd98e0475f29d3d7e397caf618ca71c336c5f4f49a0ef0b3abbebcff34d6a8a8f5cdbfbd154ab3452b58dcb09de58ec983644963675a041857e865ec38e200a13bc1a3cb71c7d69aeef7ffdee8be515c9a5b691ce091fa059edd0eb3bbec36bbf38a19802d4646c00ba821ab55fdeea12e15bab62c4e1e580",
+ "0xf90211a0af0c7fa65ffcb84c31e68c1cf00e1a20bf8bb497c39883e19b66a99975b03431a0c492cab3623eb7926069794c3c718733e16c5fd0d4a13fb7c752ee9809aac7ada05003cea7132aa70d6f36731d60640a90bcd8f4fd493e4540d5ab1b4943679c0ca0fd700683405b1d2306b586dd3b5b2f92f1692fae20d17cd8b8e59d09b9c6670da01db8683910e46e56e8afeb9fe2b7c35382e5a0914d7b0dd8f0e8cb9981ba7435a0fa7f75d73aa73c35824387bec81388315caa4aee3f4f5562f971beb256c62d49a0ee478e420d83f413e8568dacfd5d83f83a5dd7c45f494b504828e5dc962f0e3ea094b95444a917ac94a675681f6bf851172ad0969801a783a63a71edafed45e7a7a0a0c46586e109abe80fe50361dd582e3f143cb416828239faa43bb2b890869501a0ae051d5d43634c68bf9c97823256cc68580f194dfdbd0c301140c7ca5853430ca0660b9365bb77ec9cdc6eb95516c162dca20727c6f828dbbeb1ae110dde4d3134a09feb1b75e84ff6722e4d837bfb6d207b6ee3b21b86844a01140ce293813b49a1a0ed58a70b04efa3bdc0babe2abfa20824a75d61d52291bfdb5cf08597800764d6a020a2d5d3a83f9e35ad9fd1c448626d90af0eb3efefaa4f2f93207b4096ef5507a0fc8efc4484dcf0a54f0574de9aaade0dcff6ec3599edb9f82efb26b6566dcaeaa032f7e79856db3fd984f72bb2c93d4dab328198d355a61c975fab1f08bdb2046580"
+ ],
+ "balance": "0x0",
+ "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
+ "nonce": "0x0",
+ "storageHash": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "storageProof": [
+ {
+ "key": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "proof": [
+ "0xf90211a0c87222cccea2bf32759fcee9dbaacbe3ea4165dd6184af6773651c5e00e34a8ba0be90e6e5d1a67ab5587779c60ac136d6a96db62b84c04998a5f03a367346abd6a05344aa1c9ca2e3e56bf98fd718ec43728578d148e1967fbaf8bf17a2a073a0bda011a2f9312c3308640a0d6ceeae218747290f23806067456da1d444c65abae437a0b3097a108bfce79af6699da4ae3003cd4929f0b4576aad655c31cb725bde84c7a0c133d3c637e174f36a73c22b1039eb003da6374bc0929321241badb3efa3c4a9a0f13059f2301ad9862ce02e3f7f3f2c9ab78eb30583764d73654f7f1f8b1e86fda06544e3915748b18204e09df75ff20d2fa6bd8121e2e669699012d54590383d6fa070e3a8e093691581d58fadb560b510262a758037632cd8670d3a36df828976b7a062a88a2900544dc76a32255a6b2b2a2eef8fa68279700c00adc7508286702552a0a474aeebd5603dfce46a6ecd1ecd519068dc034a544fde03ac42d4018e60a334a0b7d528fc41c8fdc8ea18c6e7d0099270c777ec1403cf879d1f5134bdc12a6c6ca04440f1242e42c5bfa7c536591ab89c8e84bea417435871c32eef1e25295b20daa06a5dcfe3cc84cff9d3e3c3ae868cfba8f0dd111a90c3f85869dab5b893f96643a026b2fb9dd7d08b0ed2f1c44fbf875011412a384f86f751c92e1013248d4aa371a0c75597b2b789fc4e939b71937390ce9d7d53159431328ac52180eef08ef200f280",
+ "0xf90191a0f0c5b800b542001597f2b7a8e106ac0e2849d2cc1df1727ac35c4ea3965f1c9180a08537f2e248702a6ae2a57e9110a5740f5772c876389739ac90debd6a0692713ea00b3a26a05b5494fb3ff6f0b3897688a5581066b20b07ebab9252d169d928717fa0a9a54d84976d134d6dba06a65064c7f3a964a75947d452db6f6bb4b6c47b43aaa01e2a1ed3d1572b872bbf09ee44d2ed737da31f01de3c0f4b4e1f046740066461a076f251d160b9a02eb0b5c1d83b61c9cdd4f37361705e79a45529bf49801fb824a0774a01a624cb14a50d17f2fe4b7ae6af8a67bbb029177ccc3dd729a734484d3ea05921b8a19aebe4fff5a36071e311778f9b93459183fdf7f6d870b401fa25dcbba0c8d71dd13d2806e2865a5c2cfa447f626471bf0b66182a8fd07230434e1cad2680a0e9864fdfaf3693b2602f56cd938ccd494b8634b1f91800ef02203a3609ca4c21a0c69d174ad6b6e58b0bd05914352839ec60915cd066dd2bee2a48016139687f21a0513dd5514fd6bad56871711441d38de2821cc6913cb192416b0385f025650731808080"
+ ],
+ "value": "0x1"
+ }
+ ]
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getStorageAt.mdx b/packages/example-site/docs/api-reference/methods/eth_getStorageAt.mdx
index 9370993..97a5121 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getStorageAt.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getStorageAt.mdx
@@ -5,123 +5,121 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getStorageAt
+ # eth\_getStorageAt
- Returns the value from a storage position at a given address.
+ Returns the value from a storage position at a given address.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Address** `string` *required*
+ **Address** `string` *required*
- ***
+ ***
- **Storage slot** `string` *required*
+ **Storage slot** `string` *required*
- ***
+ ***
+
+ **Block** `string or string or string` *required*
-
- **Block** `string or string or string` *required*
+ ***
- ***
+
+
+
+ Show Option 1 `Block number` string
+
+
+ #### `Block number` fields
-
-
- Show Option 1 `Block number` string
-
+ **Block** `string` *required*
- #### `Block number` fields
+ Block number
- **Block** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Block number
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Block tag` string
+
- ***
-
+ #### `Block tag` fields
-
-
- Show Option 2 `Block tag` string
-
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- #### `Block tag` fields
+ **Block** `string` *required*
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string` *required*
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ ***
+
+
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+
+
+
+ Show Option 3 `Block hash` string
+
- ***
-
+ #### `Block hash` fields
-
-
- Show Option 3 `Block hash` string
-
+ **Block** `string` *required*
- #### `Block hash` fields
+ Block hash
- **Block** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- Block hash
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ## Result
- ***
-
-
-
+ **Value** `string`
-
- ## Result
+ hex encoded bytes
- **Value** `string`
+ *Match pattern:* `^0x[0-9a-f]*$`
- hex encoded bytes
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ ## Examples
- ***
-
-
-
- ## Examples
-
-
-
- eth\_getStorageAt example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
- "0x0",
- "latest"
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0x0000000000000000000000000000000000000000000000000000000000000000"
- ```
-
-
+
+
+
+ eth\_getStorageAt example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
+ "0x0",
+ "latest"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x0000000000000000000000000000000000000000000000000000000000000000"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getTransactionByBlockHashAndIndex.mdx b/packages/example-site/docs/api-reference/methods/eth_getTransactionByBlockHashAndIndex.mdx
index b23d618..14dc6d4 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getTransactionByBlockHashAndIndex.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getTransactionByBlockHashAndIndex.mdx
@@ -5,1090 +5,1100 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getTransactionByBlockHashAndIndex
+ # eth\_getTransactionByBlockHashAndIndex
- Returns information about a transaction by block hash and transaction index position.
+ Returns information about a transaction by block hash and transaction index position.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Block hash** `string` *required*
+ **Block hash** `string` *required*
- ***
+ ***
- **Transaction index** `string` *required*
+ **Transaction index** `string` *required*
- ***
-
+ ***
-
- ## Result
+ ## Result
-
- **Transaction information** `null or object`
+ **Transaction information** `null or object`
- ***
+ ***
-
-
- Show Option 1 `Not Found (null)` null
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
- #### `Not Found (null)` fields
+ #### `Not Found (null)` fields
- **Transaction information** `null`
+ **Transaction information** `null`
- Not Found (null)
+ Not Found (null)
- ***
-
+ ***
+
+
+
+
+
+ Show Option 2 `Transaction information` object
+
+
+ #### `Transaction information` fields
+
+ **Transaction information** `object or object or object or object or object`
+
+ ***
+
+
- Show Option 2 `Transaction information` object
+ Show Option 1 `Signed 7702 Transaction` object
- #### `Transaction information` fields
+ #### `Signed 7702 Transaction` fields
-
- **Transaction information** `object or object or object or object or object`
+ **Transaction information** `object`
+
+ Signed 7702 Transaction
- ***
+ ***
+
- Show Option 1 `Signed 7702 Transaction` object
+ Show `Transaction information` object
- #### `Signed 7702 Transaction` fields
-
- **Transaction information** `object`
+ #### `Transaction information` fields
- Signed 7702 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `Transaction information` object
-
+ *Match pattern:* `^0x4$`
- #### `Transaction information` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x4$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `string` *required*
- nonce
+ to address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **to** `string` *required*
+ * **gas** `string` *required*
- to address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access lists
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access lists
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access lists
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **authorizationList** `array` *required*
- Chain ID that this transaction is valid on
+ List of authorizations for the transaction
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `authorizationList` object
+
- * **authorizationList** `array` *required*
+ #### `authorizationList` fields
List of authorizations for the transaction
- ***
+ * **chainId** `string` *required*
-
-
-
- Show `authorizationList` object
-
+ Chain ID on which this transaction is valid
- #### `authorizationList` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- List of authorizations for the transaction
+ ***
- * **chainId** `string` *required*
+ * **nonce** `string` *required*
- Chain ID on which this transaction is valid
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **address** `string` *required*
- nonce
+ hex encoded address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **address** `string` *required*
+ * **yParity** `string` *required*
- hex encoded address
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **r** `string` *required*
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **yParity** `string` *required*
- ***
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- * **additionalProperties** `true`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
-
-
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Signed 4844 Transaction` object
+
- ***
+ #### `Signed 4844 Transaction` fields
- * **additionalProperties** `true`
+ **Transaction information** `object`
- ***
-
-
-
+ Signed 4844 Transaction
+
+ ***
+
- Show Option 2 `Signed 4844 Transaction` object
+ Show `Transaction information` object
- #### `Signed 4844 Transaction` fields
-
- **Transaction information** `object`
+ #### `Transaction information` fields
- Signed 4844 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `Transaction information` object
-
+ *Match pattern:* `^0x3$`
- #### `Transaction information` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x3$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `string` *required*
- nonce
+ to address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **to** `string` *required*
+ * **gas** `string` *required*
- to address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **maxFeePerBlobGas** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blobVersionedHashes** `array` *required*
- ***
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
- * **additionalProperties** `false`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
- * **blobVersionedHashes** `array` *required*
+ * **chainId** `string` *required*
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
+ Chain ID that this transaction is valid on
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 3 `Signed 1559 Transaction` object
+
- ***
+ #### `Signed 1559 Transaction` fields
- * **additionalProperties** `true`
+ **Transaction information** `object`
- ***
-
-
-
+ Signed 1559 Transaction
+ ***
+
+
- Show Option 3 `Signed 1559 Transaction` object
+ Show `Transaction information` object
- #### `Signed 1559 Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed 1559 Transaction
+ type
- ***
+ *Match pattern:* `^0x2$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x2$`
+ ***
- ***
-
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
+
+
+
+
+ Show Option 4 `Signed 2930 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 2930 Transaction` fields
- ***
+ **Transaction information** `object`
- * **additionalProperties** `true`
+ Signed 2930 Transaction
- ***
-
-
-
+ ***
+
- Show Option 4 `Signed 2930 Transaction` object
+ Show `Transaction information` object
- #### `Signed 2930 Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed 2930 Transaction
+ type
- ***
+ *Match pattern:* `^0x1$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x1$`
+ ***
- ***
+ * **to** `null or string`
- * **nonce** `string` *required*
+ ***
- nonce
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Contract Creation (null)` fields
- ***
+ **to** `null`
- *
- **to** `null or string`
+ Contract Creation (null)
- ***
+ ***
+
+
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Contract Creation (null)` fields
+ #### `Address` fields
- **to** `null`
+ **to** `string`
- Contract Creation (null)
+ Address
- ***
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
-
-
- Show Option 2 `Address` string
-
+ ***
+
+
- #### `Address` fields
+ * **gas** `string` *required*
- **to** `string`
+ gas limit
- Address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
-
-
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasPrice** `string` *required*
- * **input** `string` *required*
+ The gas price willing to be paid by the sender in wei
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **accessList** `array` *required*
- * **gasPrice** `string` *required*
+ EIP-2930 access list
- The gas price willing to be paid by the sender in wei
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show `accessList` object
+
- ***
-
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
+
+ ***
+
+
+
+
- s
+
+
+
+ Show Option 5 `Signed Legacy Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed Legacy Transaction` fields
- ***
+ **Transaction information** `object`
- * **additionalProperties** `true`
+ Signed Legacy Transaction
- ***
-
-
-
+ ***
+
- Show Option 5 `Signed Legacy Transaction` object
+ Show `Transaction information` object
- #### `Signed Legacy Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed Legacy Transaction
+ type
- ***
+ *Match pattern:* `^0x0$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x0$`
+ ***
- ***
+ * **to** `null or string`
- * **nonce** `string` *required*
+ ***
- nonce
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Contract Creation (null)` fields
- ***
+ **to** `null`
- *
- **to** `null or string`
+ Contract Creation (null)
- ***
+ ***
+
+
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Contract Creation (null)` fields
+ #### `Address` fields
- **to** `null`
+ **to** `string`
- Contract Creation (null)
+ Address
- ***
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
-
-
- Show Option 2 `Address` string
-
+ ***
+
+
- #### `Address` fields
+ * **gas** `string` *required*
- **to** `string`
+ gas limit
- Address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
-
-
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasPrice** `string` *required*
- * **input** `string` *required*
+ The gas price willing to be paid by the sender in wei
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **chainId** `string`
- * **gasPrice** `string` *required*
+ Chain ID that this transaction is valid on.
- The gas price willing to be paid by the sender in wei
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **v** `string` *required*
- * **chainId** `string`
+ v
- Chain ID that this transaction is valid on.
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **r** `string` *required*
- * **v** `string` *required*
+ r
- v
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **s** `string` *required*
- * **r** `string` *required*
+ s
- r
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **additionalProperties** `true`
- * **s** `string` *required*
-
- s
-
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
-
- ***
-
- * **additionalProperties** `true`
-
- ***
-
-
+ ***
-
-
-
- ## Examples
-
-
-
- eth\_getTransactionByBlockHashAndIndex example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0xbf137c3a7a1ebdfac21252765e5d7f40d115c2757e4a4abee929be88c624fdb7",
- "0x2"
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "blockHash": "0x510efccf44a192e6e34bcb439a1947e24b86244280762cbb006858c237093fda",
- "blockNumber": "0x422",
- "chainId": "0x7e2",
- "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
- "gas": "0x5208",
- "gasPrice": "0x3b9aca00",
- "hash": "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44",
- "input": "0x",
- "nonce": "0x1",
- "to": "0x627306090abab3a6e1400e9345bc60c78a8bef57",
- "transactionIndex": "0x0",
- "value": "0x4e1003b28d9280000",
- "v": "0xfe7",
- "r": "0x84caf09aefbd5e539295acc67217563438a4efb224879b6855f56857fa2037d3",
- "s": "0x5e863be3829812c81439f0ae9d8ecb832b531d651fb234c848d1bf45e62be8b9"
- }
- ```
-
-
+
+
+
+ ## Examples
+
+
+
+
+ eth\_getTransactionByBlockHashAndIndex example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xbf137c3a7a1ebdfac21252765e5d7f40d115c2757e4a4abee929be88c624fdb7",
+ "0x2"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "blockHash": "0x510efccf44a192e6e34bcb439a1947e24b86244280762cbb006858c237093fda",
+ "blockNumber": "0x422",
+ "chainId": "0x7e2",
+ "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
+ "gas": "0x5208",
+ "gasPrice": "0x3b9aca00",
+ "hash": "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44",
+ "input": "0x",
+ "nonce": "0x1",
+ "to": "0x627306090abab3a6e1400e9345bc60c78a8bef57",
+ "transactionIndex": "0x0",
+ "value": "0x4e1003b28d9280000",
+ "v": "0xfe7",
+ "r": "0x84caf09aefbd5e539295acc67217563438a4efb224879b6855f56857fa2037d3",
+ "s": "0x5e863be3829812c81439f0ae9d8ecb832b531d651fb234c848d1bf45e62be8b9"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getTransactionByBlockNumberAndIndex.mdx b/packages/example-site/docs/api-reference/methods/eth_getTransactionByBlockNumberAndIndex.mdx
index 8bad4ed..ef7de70 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getTransactionByBlockNumberAndIndex.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getTransactionByBlockNumberAndIndex.mdx
@@ -5,1126 +5,1138 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getTransactionByBlockNumberAndIndex
+ # eth\_getTransactionByBlockNumberAndIndex
- Returns information about a transaction by block number and transaction index position.
+ Returns information about a transaction by block number and transaction index position.
-
- ## Parameters (by position)
+ ## Parameters (by position)
-
- **Block** `string or string` *required*
+ **Block** `string or string` *required*
- ***
+ ***
-
-
- Show Option 1 `Block number` string
-
+
+
+
+ Show Option 1 `Block number` string
+
- #### `Block number` fields
+ #### `Block number` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block number
+ Block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Block tag` string
-
+
+
+
+ Show Option 2 `Block tag` string
+
- #### `Block tag` fields
+ #### `Block tag` fields
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string` *required*
+ **Block** `string` *required*
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- ***
-
-
+ ***
+
+
- **Transaction index** `string` *required*
+ **Transaction index** `string` *required*
- ***
-
+ ***
-
- ## Result
+ ## Result
-
- **Transaction information** `null or object`
+ **Transaction information** `null or object`
- ***
+ ***
-
-
- Show Option 1 `Not Found (null)` null
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
- #### `Not Found (null)` fields
+ #### `Not Found (null)` fields
- **Transaction information** `null`
+ **Transaction information** `null`
- Not Found (null)
+ Not Found (null)
- ***
-
+ ***
+
+
+
+
+
+
+ Show Option 2 `Transaction information` object
+
+
+ #### `Transaction information` fields
+
+ **Transaction information** `object or object or object or object or object`
+ ***
+
+
- Show Option 2 `Transaction information` object
+ Show Option 1 `Signed 7702 Transaction` object
- #### `Transaction information` fields
+ #### `Signed 7702 Transaction` fields
-
- **Transaction information** `object or object or object or object or object`
+ **Transaction information** `object`
+
+ Signed 7702 Transaction
- ***
+ ***
+
- Show Option 1 `Signed 7702 Transaction` object
+ Show `Transaction information` object
- #### `Signed 7702 Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed 7702 Transaction
+ type
- ***
+ *Match pattern:* `^0x4$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x4$`
+ ***
- ***
+ * **to** `string` *required*
- * **nonce** `string` *required*
+ to address
- nonce
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gas** `string` *required*
- * **to** `string` *required*
+ gas limit
- to address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **maxPriorityFeePerGas** `string` *required*
- * **input** `string` *required*
+ Maximum fee per gas the sender is willing to pay to miners in wei
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
-
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access lists
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access lists
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access lists
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **authorizationList** `array` *required*
- Chain ID that this transaction is valid on
+ List of authorizations for the transaction
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `authorizationList` object
+
- * **authorizationList** `array` *required*
+ #### `authorizationList` fields
List of authorizations for the transaction
- ***
+ * **chainId** `string` *required*
-
-
-
- Show `authorizationList` object
-
+ Chain ID on which this transaction is valid
- #### `authorizationList` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- List of authorizations for the transaction
+ ***
- * **chainId** `string` *required*
+ * **nonce** `string` *required*
- Chain ID on which this transaction is valid
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **address** `string` *required*
- nonce
+ hex encoded address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **address** `string` *required*
+ * **yParity** `string` *required*
- hex encoded address
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **r** `string` *required*
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **yParity** `string` *required*
- ***
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- * **additionalProperties** `true`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
-
-
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Signed 4844 Transaction` object
+
- ***
+ #### `Signed 4844 Transaction` fields
- * **additionalProperties** `true`
+ **Transaction information** `object`
- ***
-
-
-
+ Signed 4844 Transaction
+ ***
+
+
- Show Option 2 `Signed 4844 Transaction` object
+ Show `Transaction information` object
- #### `Signed 4844 Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed 4844 Transaction
+ type
- ***
+ *Match pattern:* `^0x3$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x3$`
+ ***
- ***
+ * **to** `string` *required*
- * **nonce** `string` *required*
+ to address
- nonce
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gas** `string` *required*
- * **to** `string` *required*
+ gas limit
- to address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
-
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **maxFeePerBlobGas** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blobVersionedHashes** `array` *required*
- ***
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
- * **additionalProperties** `false`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
- * **blobVersionedHashes** `array` *required*
+ * **chainId** `string` *required*
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
+ Chain ID that this transaction is valid on
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
+
+ * **additionalProperties** `true`
- * **s** `string` *required*
+ ***
+
+
+
+
- s
+
+
+
+ Show Option 3 `Signed 1559 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 1559 Transaction` fields
- ***
+ **Transaction information** `object`
- * **additionalProperties** `true`
+ Signed 1559 Transaction
- ***
-
-
-
+ ***
+
- Show Option 3 `Signed 1559 Transaction` object
+ Show `Transaction information` object
- #### `Signed 1559 Transaction` fields
-
- **Transaction information** `object`
+ #### `Transaction information` fields
- Signed 1559 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `Transaction information` object
-
+ *Match pattern:* `^0x2$`
- #### `Transaction information` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x2$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
+
+
+
+
+ Show Option 4 `Signed 2930 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 2930 Transaction` fields
- ***
+ **Transaction information** `object`
- * **additionalProperties** `true`
+ Signed 2930 Transaction
- ***
-
-
-
+ ***
+
- Show Option 4 `Signed 2930 Transaction` object
+ Show `Transaction information` object
- #### `Signed 2930 Transaction` fields
-
- **Transaction information** `object`
+ #### `Transaction information` fields
- Signed 2930 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `Transaction information` object
-
+ *Match pattern:* `^0x1$`
- #### `Transaction information` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x1$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **gasPrice** `string` *required*
- input data
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The gas price willing to be paid by the sender in wei
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 5 `Signed Legacy Transaction` object
+
- ***
+ #### `Signed Legacy Transaction` fields
- * **additionalProperties** `true`
+ **Transaction information** `object`
- ***
-
-
-
+ Signed Legacy Transaction
+
+ ***
+
- Show Option 5 `Signed Legacy Transaction` object
+ Show `Transaction information` object
- #### `Signed Legacy Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed Legacy Transaction
+ type
- ***
+ *Match pattern:* `^0x0$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x0$`
+ ***
- ***
+ * **to** `null or string`
- * **nonce** `string` *required*
+ ***
- nonce
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Contract Creation (null)` fields
- ***
-
- *
- **to** `null or string`
-
- ***
+ **to** `null`
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ Contract Creation (null)
- #### `Contract Creation (null)` fields
-
- **to** `null`
-
- Contract Creation (null)
-
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Address` string
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Address` fields
+ #### `Address` fields
- **to** `string`
+ **to** `string`
- Address
+ Address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- * **gas** `string` *required*
+ * **gas** `string` *required*
- gas limit
+ gas limit
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **value** `string` *required*
- value
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **input** `string` *required*
+ * **input** `string` *required*
- input data
+ input data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **gasPrice** `string` *required*
- The gas price willing to be paid by the sender in wei
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string`
+ * **chainId** `string`
- Chain ID that this transaction is valid on.
+ Chain ID that this transaction is valid on.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **v** `string` *required*
+ * **v** `string` *required*
- v
+ v
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **r** `string` *required*
- r
+ r
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **s** `string` *required*
- s
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
+ ***
-
-
-
- ## Examples
-
-
-
- eth\_getTransactionByBlockNumberAndIndex example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0x1442e",
- "0x2"
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "blockHash": "0x510efccf44a192e6e34bcb439a1947e24b86244280762cbb006858c237093fda",
- "blockNumber": "0x422",
- "chainId": "0x7e2",
- "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
- "gas": "0x5208",
- "gasPrice": "0x3b9aca00",
- "hash": "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44",
- "input": "0x",
- "nonce": "0x1",
- "to": "0x627306090abab3a6e1400e9345bc60c78a8bef57",
- "transactionIndex": "0x0",
- "value": "0x4e1003b28d9280000",
- "v": "0xfe7",
- "r": "0x84caf09aefbd5e539295acc67217563438a4efb224879b6855f56857fa2037d3",
- "s": "0x5e863be3829812c81439f0ae9d8ecb832b531d651fb234c848d1bf45e62be8b9"
- }
- ```
-
-
+
+
+
+ ## Examples
+
+
+
+
+ eth\_getTransactionByBlockNumberAndIndex example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0x1442e",
+ "0x2"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "blockHash": "0x510efccf44a192e6e34bcb439a1947e24b86244280762cbb006858c237093fda",
+ "blockNumber": "0x422",
+ "chainId": "0x7e2",
+ "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
+ "gas": "0x5208",
+ "gasPrice": "0x3b9aca00",
+ "hash": "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44",
+ "input": "0x",
+ "nonce": "0x1",
+ "to": "0x627306090abab3a6e1400e9345bc60c78a8bef57",
+ "transactionIndex": "0x0",
+ "value": "0x4e1003b28d9280000",
+ "v": "0xfe7",
+ "r": "0x84caf09aefbd5e539295acc67217563438a4efb224879b6855f56857fa2037d3",
+ "s": "0x5e863be3829812c81439f0ae9d8ecb832b531d651fb234c848d1bf45e62be8b9"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getTransactionByHash.mdx b/packages/example-site/docs/api-reference/methods/eth_getTransactionByHash.mdx
index 01b7d16..c0421b1 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getTransactionByHash.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getTransactionByHash.mdx
@@ -5,1085 +5,1095 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getTransactionByHash
+ # eth\_getTransactionByHash
- Returns the information about a transaction requested by transaction hash.
+ Returns the information about a transaction requested by transaction hash.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Transaction hash** `string` *required*
+ **Transaction hash** `string` *required*
- ***
-
+ ***
-
- ## Result
+ ## Result
-
- **Transaction information** `null or object`
+ **Transaction information** `null or object`
- ***
+ ***
-
-
- Show Option 1 `Not Found (null)` null
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
- #### `Not Found (null)` fields
+ #### `Not Found (null)` fields
- **Transaction information** `null`
+ **Transaction information** `null`
- Not Found (null)
+ Not Found (null)
- ***
-
+ ***
+
+
+
+
+
+
+ Show Option 2 `Transaction information` object
+
+
+ #### `Transaction information` fields
+
+ **Transaction information** `object or object or object or object or object`
+ ***
+
+
- Show Option 2 `Transaction information` object
+ Show Option 1 `Signed 7702 Transaction` object
- #### `Transaction information` fields
+ #### `Signed 7702 Transaction` fields
-
- **Transaction information** `object or object or object or object or object`
+ **Transaction information** `object`
+
+ Signed 7702 Transaction
- ***
+ ***
+
- Show Option 1 `Signed 7702 Transaction` object
+ Show `Transaction information` object
- #### `Signed 7702 Transaction` fields
-
- **Transaction information** `object`
+ #### `Transaction information` fields
- Signed 7702 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `Transaction information` object
-
+ *Match pattern:* `^0x4$`
- #### `Transaction information` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x4$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `string` *required*
- nonce
+ to address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **to** `string` *required*
+ * **gas** `string` *required*
- to address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access lists
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access lists
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access lists
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **authorizationList** `array` *required*
- Chain ID that this transaction is valid on
+ List of authorizations for the transaction
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `authorizationList` object
+
- * **authorizationList** `array` *required*
+ #### `authorizationList` fields
List of authorizations for the transaction
- ***
+ * **chainId** `string` *required*
-
-
-
- Show `authorizationList` object
-
+ Chain ID on which this transaction is valid
- #### `authorizationList` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- List of authorizations for the transaction
+ ***
- * **chainId** `string` *required*
+ * **nonce** `string` *required*
- Chain ID on which this transaction is valid
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **address** `string` *required*
- nonce
+ hex encoded address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **address** `string` *required*
+ * **yParity** `string` *required*
- hex encoded address
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **r** `string` *required*
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ * **yParity** `string` *required*
- ***
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- * **additionalProperties** `true`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
-
-
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Signed 4844 Transaction` object
+
- ***
+ #### `Signed 4844 Transaction` fields
- * **additionalProperties** `true`
+ **Transaction information** `object`
- ***
-
-
-
+ Signed 4844 Transaction
+ ***
+
+
- Show Option 2 `Signed 4844 Transaction` object
+ Show `Transaction information` object
- #### `Signed 4844 Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed 4844 Transaction
+ type
- ***
+ *Match pattern:* `^0x3$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x3$`
+ ***
- ***
+ * **to** `string` *required*
- * **nonce** `string` *required*
+ to address
- nonce
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gas** `string` *required*
- * **to** `string` *required*
+ gas limit
- to address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **maxPriorityFeePerGas** `string` *required*
- * **input** `string` *required*
+ Maximum fee per gas the sender is willing to pay to miners in wei
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **maxFeePerGas** `string` *required*
- * **maxPriorityFeePerGas** `string` *required*
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- Maximum fee per gas the sender is willing to pay to miners in wei
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **maxFeePerBlobGas** `string` *required*
- * **maxFeePerGas** `string` *required*
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasPrice** `string`
- * **maxFeePerBlobGas** `string` *required*
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
-
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blobVersionedHashes** `array` *required*
- ***
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
- * **additionalProperties** `false`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
- * **blobVersionedHashes** `array` *required*
+ * **chainId** `string` *required*
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
+ Chain ID that this transaction is valid on
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 3 `Signed 1559 Transaction` object
+
- ***
+ #### `Signed 1559 Transaction` fields
- * **additionalProperties** `true`
+ **Transaction information** `object`
- ***
-
-
-
+ Signed 1559 Transaction
+ ***
+
+
- Show Option 3 `Signed 1559 Transaction` object
+ Show `Transaction information` object
- #### `Signed 1559 Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed 1559 Transaction
+ type
- ***
+ *Match pattern:* `^0x2$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x2$`
+ ***
- ***
-
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
+
+
+
+
+ Show Option 4 `Signed 2930 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 2930 Transaction` fields
- ***
+ **Transaction information** `object`
- * **additionalProperties** `true`
+ Signed 2930 Transaction
- ***
-
-
-
+ ***
+
- Show Option 4 `Signed 2930 Transaction` object
+ Show `Transaction information` object
- #### `Signed 2930 Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed 2930 Transaction
+ type
- ***
+ *Match pattern:* `^0x1$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x1$`
+ ***
- ***
+ * **to** `null or string`
- * **nonce** `string` *required*
+ ***
- nonce
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Contract Creation (null)` fields
- ***
+ **to** `null`
- *
- **to** `null or string`
+ Contract Creation (null)
- ***
+ ***
+
+
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Contract Creation (null)` fields
+ #### `Address` fields
- **to** `null`
+ **to** `string`
- Contract Creation (null)
+ Address
- ***
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
-
-
- Show Option 2 `Address` string
-
+ ***
+
+
- #### `Address` fields
+ * **gas** `string` *required*
- **to** `string`
+ gas limit
- Address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
-
-
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasPrice** `string` *required*
- * **input** `string` *required*
+ The gas price willing to be paid by the sender in wei
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **accessList** `array` *required*
- * **gasPrice** `string` *required*
+ EIP-2930 access list
- The gas price willing to be paid by the sender in wei
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show `accessList` object
+
- ***
-
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
+
+ ***
+
+
+
+
- s
+
+
+
+ Show Option 5 `Signed Legacy Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed Legacy Transaction` fields
- ***
+ **Transaction information** `object`
- * **additionalProperties** `true`
+ Signed Legacy Transaction
- ***
-
-
-
+ ***
+
- Show Option 5 `Signed Legacy Transaction` object
+ Show `Transaction information` object
- #### `Signed Legacy Transaction` fields
+ #### `Transaction information` fields
- **Transaction information** `object`
+ * **type** `string` *required*
- Signed Legacy Transaction
+ type
- ***
+ *Match pattern:* `^0x0$`
-
-
-
- Show `Transaction information` object
-
+ ***
- #### `Transaction information` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x0$`
+ ***
- ***
+ * **to** `null or string`
- * **nonce** `string` *required*
+ ***
- nonce
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Contract Creation (null)` fields
- ***
+ **to** `null`
- *
- **to** `null or string`
+ Contract Creation (null)
- ***
+ ***
+
+
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Contract Creation (null)` fields
+ #### `Address` fields
- **to** `null`
+ **to** `string`
- Contract Creation (null)
+ Address
- ***
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
-
-
- Show Option 2 `Address` string
-
+ ***
+
+
- #### `Address` fields
+ * **gas** `string` *required*
- **to** `string`
+ gas limit
- Address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
-
-
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasPrice** `string` *required*
- * **input** `string` *required*
+ The gas price willing to be paid by the sender in wei
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **chainId** `string`
- * **gasPrice** `string` *required*
+ Chain ID that this transaction is valid on.
- The gas price willing to be paid by the sender in wei
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **v** `string` *required*
- * **chainId** `string`
+ v
- Chain ID that this transaction is valid on.
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **r** `string` *required*
- * **v** `string` *required*
+ r
- v
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **s** `string` *required*
- * **r** `string` *required*
+ s
- r
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **additionalProperties** `true`
- * **s** `string` *required*
-
- s
-
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
-
- ***
-
- * **additionalProperties** `true`
-
- ***
-
-
+ ***
-
-
-
- ## Examples
-
-
-
- eth\_getTransactionByHash example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44"
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "blockHash": "0x510efccf44a192e6e34bcb439a1947e24b86244280762cbb006858c237093fda",
- "blockNumber": "0x422",
- "chainId": "0x7e2",
- "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
- "gas": "0x5208",
- "gasPrice": "0x3b9aca00",
- "hash": "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44",
- "input": "0x",
- "nonce": "0x1",
- "to": "0x627306090abab3a6e1400e9345bc60c78a8bef57",
- "transactionIndex": "0x0",
- "value": "0x4e1003b28d9280000",
- "v": "0xfe7",
- "r": "0x84caf09aefbd5e539295acc67217563438a4efb224879b6855f56857fa2037d3",
- "s": "0x5e863be3829812c81439f0ae9d8ecb832b531d651fb234c848d1bf45e62be8b9"
- }
- ```
-
-
+
+
+
+ ## Examples
+
+
+
+
+ eth\_getTransactionByHash example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "blockHash": "0x510efccf44a192e6e34bcb439a1947e24b86244280762cbb006858c237093fda",
+ "blockNumber": "0x422",
+ "chainId": "0x7e2",
+ "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",
+ "gas": "0x5208",
+ "gasPrice": "0x3b9aca00",
+ "hash": "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44",
+ "input": "0x",
+ "nonce": "0x1",
+ "to": "0x627306090abab3a6e1400e9345bc60c78a8bef57",
+ "transactionIndex": "0x0",
+ "value": "0x4e1003b28d9280000",
+ "v": "0xfe7",
+ "r": "0x84caf09aefbd5e539295acc67217563438a4efb224879b6855f56857fa2037d3",
+ "s": "0x5e863be3829812c81439f0ae9d8ecb832b531d651fb234c848d1bf45e62be8b9"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getTransactionCount.mdx b/packages/example-site/docs/api-reference/methods/eth_getTransactionCount.mdx
index 3f2f837..dfd9804 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getTransactionCount.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getTransactionCount.mdx
@@ -5,118 +5,116 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getTransactionCount
+ # eth\_getTransactionCount
- Returns the nonce of an account in the state. NOTE: The name eth\_getTransactionCount reflects the historical fact that an account's nonce and sent transaction count were the same. After the Pectra fork, with the inclusion of EIP-7702, this is no longer true.
+ Returns the nonce of an account in the state. NOTE: The name eth\_getTransactionCount reflects the historical fact that an account's nonce and sent transaction count were the same. After the Pectra fork, with the inclusion of EIP-7702, this is no longer true.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Address** `string` *required*
+ **Address** `string` *required*
- ***
+ ***
-
- **Block** `string or string or string` *required*
+ **Block** `string or string or string` *required*
- ***
+ ***
-
-
- Show Option 1 `Block number` string
-
+
+
+
+ Show Option 1 `Block number` string
+
- #### `Block number` fields
+ #### `Block number` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block number
+ Block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Block tag` string
-
+
+
+
+ Show Option 2 `Block tag` string
+
- #### `Block tag` fields
+ #### `Block tag` fields
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block** `string` *required*
+ **Block** `string` *required*
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- ***
-
+ ***
+
+
-
-
- Show Option 3 `Block hash` string
-
+
+
+
+ Show Option 3 `Block hash` string
+
- #### `Block hash` fields
+ #### `Block hash` fields
- **Block** `string` *required*
+ **Block** `string` *required*
- Block hash
+ Block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
-
+ ***
+
+
-
- ## Result
+ ## Result
- **Account nonce** `string`
+ **Account nonce** `string`
- hex encoded unsigned integer
+ hex encoded unsigned integer
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
-
- ## Examples
-
-
-
- eth\_getTransactionCount example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0xc94770007dda54cF92009BFF0dE90c06F603a09f",
- "latest"
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0x1"
- ```
-
-
+ ***
+
+ ## Examples
+
+
+
+
+ eth\_getTransactionCount example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xc94770007dda54cF92009BFF0dE90c06F603a09f",
+ "latest"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x1"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getTransactionReceipt.mdx b/packages/example-site/docs/api-reference/methods/eth_getTransactionReceipt.mdx
index 17c5387..1add00b 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getTransactionReceipt.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getTransactionReceipt.mdx
@@ -5,411 +5,411 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getTransactionReceipt
+ # eth\_getTransactionReceipt
- Returns the receipt of a transaction by transaction hash.
+ Returns the receipt of a transaction by transaction hash.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Transaction hash** `string` *required*
+ **Transaction hash** `string` *required*
- ***
-
+ ***
-
- ## Result
+ ## Result
-
- **Receipt information** `null or object`
+ **Receipt information** `null or object`
- ***
+ ***
-
-
- Show Option 1 `Not Found (null)` null
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
- #### `Not Found (null)` fields
+ #### `Not Found (null)` fields
- **Receipt information** `null`
+ **Receipt information** `null`
- Not Found (null)
+ Not Found (null)
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Receipt information` object
-
+
+
+
+ Show Option 2 `Receipt information` object
+
- #### `Receipt information` fields
+ #### `Receipt information` fields
- **Receipt information** `object`
+ **Receipt information** `object`
- Receipt information
+ Receipt information
- ***
+ ***
-
-
-
- Show `Receipt information` object
-
+
+
+
+ Show `Receipt information` object
+
- #### `Receipt information` fields
+ #### `Receipt information` fields
- * **type** `string`
+ * **type** `string`
- type
+ type
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **transactionHash** `string` *required*
+ * **transactionHash** `string` *required*
- transaction hash
+ transaction hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **transactionIndex** `string` *required*
+ * **transactionIndex** `string` *required*
- transaction index
+ transaction index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blockHash** `string` *required*
+ * **blockHash** `string` *required*
- block hash
+ block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockNumber** `string` *required*
+ * **blockNumber** `string` *required*
- block number
+ block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **from** `string` *required*
+ * **from** `string` *required*
- from
+ from
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- *
- **to** `null or string`
+ * **to** `null or string`
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- ***
+ ***
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- #### `Contract Creation (null)` fields
+ #### `Contract Creation (null)` fields
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- **to** `null`
+ **to** `null`
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Recipient Address` string
-
+
+
+
+ Show Option 2 `Recipient Address` string
+
- #### `Recipient Address` fields
+ #### `Recipient Address` fields
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- **to** `string`
+ **to** `string`
- Address of the receiver or null in a contract creation transaction.
+ Address of the receiver or null in a contract creation transaction.
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- * **cumulativeGasUsed** `string` *required*
+ * **cumulativeGasUsed** `string` *required*
- The sum of gas used by this transaction and all preceding transactions in the same block.
+ The sum of gas used by this transaction and all preceding transactions in the same block.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasUsed** `string` *required*
+ * **gasUsed** `string` *required*
- The amount of gas used for this specific transaction alone.
+ The amount of gas used for this specific transaction alone.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blobGasUsed** `string`
+ * **blobGasUsed** `string`
- The amount of blob gas used for this specific transaction. Only specified for blob transactions as defined by EIP-4844.
+ The amount of blob gas used for this specific transaction. Only specified for blob transactions as defined by EIP-4844.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **contractAddress** `string or null`
+ * **contractAddress** `string or null`
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- ***
+ ***
-
-
- Show Option 1 `hex encoded address` string
-
+
+
+
+ Show Option 1 `hex encoded address` string
+
- #### `hex encoded address` fields
+ #### `hex encoded address` fields
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- **contractAddress** `string`
+ **contractAddress** `string`
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Null` null
-
+
+
+
+ Show Option 2 `Null` null
+
- #### `Null` fields
+ #### `Null` fields
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- **contractAddress** `null`
+ **contractAddress** `null`
- The contract address created, if the transaction was a contract creation, otherwise null.
+ The contract address created, if the transaction was a contract creation, otherwise null.
- ***
-
-
+ ***
+
+
- * **logs** `array` *required*
+ * **logs** `array` *required*
- log
+ log
- ***
+ ***
-
-
-
- Show `logs` object
-
+
+
+
+ Show `logs` object
+
- #### `logs` fields
+ #### `logs` fields
- * **removed** `boolean`
+ * **removed** `boolean`
- removed
+ removed
- ***
+ ***
- * **logIndex** `string`
+ * **logIndex** `string`
- log index
+ log index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionIndex** `string`
+ * **transactionIndex** `string`
- transaction index
+ transaction index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionHash** `string` *required*
+ * **transactionHash** `string` *required*
- transaction hash
+ transaction hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockHash** `string`
+ * **blockHash** `string`
- block hash
+ block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockNumber** `string`
+ * **blockNumber** `string`
- block number
+ block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blockTimestamp** `string`
+ * **blockTimestamp** `string`
- block timestamp
+ block timestamp
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **address** `string`
+ * **address** `string`
- address
+ address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **data** `string`
+ * **data** `string`
- data
+ data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **topics** `array`
+ * **topics** `array`
- 32 hex encoded bytes
+ 32 hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **logsBloom** `string` *required*
+ * **logsBloom** `string` *required*
- logs bloom
+ logs bloom
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- ***
+ ***
- * **root** `string`
+ * **root** `string`
- The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.
+ The post-transaction state root. Only specified for transactions included before the Byzantium upgrade.
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **status** `string`
+ * **status** `string`
- Either 1 (success) or 0 (failure). Only specified for transactions included after the Byzantium upgrade.
+ Either 1 (success) or 0 (failure). Only specified for transactions included after the Byzantium upgrade.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **effectiveGasPrice** `string` *required*
+ * **effectiveGasPrice** `string` *required*
- The actual value per gas deducted from the sender's account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).
+ The actual value per gas deducted from the sender's account. Before EIP-1559, this is equal to the transaction's gas price. After, it is equal to baseFeePerGas + min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas).
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blobGasPrice** `string`
+ * **blobGasPrice** `string`
- The actual value per gas deducted from the sender's account for blob gas. Only specified for blob transactions as defined by EIP-4844.
+ The actual value per gas deducted from the sender's account for blob gas. Only specified for blob transactions as defined by EIP-4844.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
-
-
-
- ## Examples
-
-
-
- eth\_getTransactionReceipt example
-
-
- #### Request
-
- ```json
- {
- "params": [
- "0x504ce587a65bdbdb6414a0c6c16d86a04dd79bfcc4f2950eec9634b30ce5370f"
- ]
- }
- ```
-
- #### Response
-
- ```json
- {
- "blockHash": "0xe7212a92cfb9b06addc80dec2a0dfae9ea94fd344efeb157c41e12994fcad60a",
- "blockNumber": "0x50",
- "contractAddress": null,
- "cumulativeGasUsed": "0x5208",
- "from": "0x627306090abab3a6e1400e9345bc60c78a8bef57",
- "gasUsed": "0x5208",
- "blobGasUsed": "0x20000",
- "effectiveGasPrice": "0x1",
- "blobGasPrice": "0x3",
- "logs": [],
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "status": "0x1",
- "to": "0xf17f52151ebef6c7334fad080c5704d77216b732",
- "transactionHash": "0xc00e97af59c6f88de163306935f7682af1a34c67245e414537d02e422815efc3",
- "transactionIndex": "0x0"
- }
- ```
-
-
+
+
+
+ ## Examples
+
+
+
+
+ eth\_getTransactionReceipt example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0x504ce587a65bdbdb6414a0c6c16d86a04dd79bfcc4f2950eec9634b30ce5370f"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "blockHash": "0xe7212a92cfb9b06addc80dec2a0dfae9ea94fd344efeb157c41e12994fcad60a",
+ "blockNumber": "0x50",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x5208",
+ "from": "0x627306090abab3a6e1400e9345bc60c78a8bef57",
+ "gasUsed": "0x5208",
+ "blobGasUsed": "0x20000",
+ "effectiveGasPrice": "0x1",
+ "blobGasPrice": "0x3",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "status": "0x1",
+ "to": "0xf17f52151ebef6c7334fad080c5704d77216b732",
+ "transactionHash": "0xc00e97af59c6f88de163306935f7682af1a34c67245e414537d02e422815efc3",
+ "transactionIndex": "0x0"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getUncleCountByBlockHash.mdx b/packages/example-site/docs/api-reference/methods/eth_getUncleCountByBlockHash.mdx
index d0101cc..44baab7 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getUncleCountByBlockHash.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getUncleCountByBlockHash.mdx
@@ -5,89 +5,85 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getUncleCountByBlockHash
-
+ # eth\_getUncleCountByBlockHash
- Returns the number of uncles in a block from a block matching the given block hash.
-
- ## Parameters (by position)
+ Returns the number of uncles in a block from a block matching the given block hash.
- **Block hash** `string`
-
- ***
-
+ ## Parameters (by position)
-
- ## Result
+ **Block hash** `string`
-
- **Uncle count** `null or string`
+ ***
- ***
+ ## Result
-
-
- Show Option 1 `Not Found (null)` null
-
+ **Uncle count** `null or string`
- #### `Not Found (null)` fields
+ ***
- **Uncle count** `null`
-
- Not Found (null)
-
- ***
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
-
-
- Show Option 2 `Uncle count` string
-
+ #### `Not Found (null)` fields
- #### `Uncle count` fields
+ **Uncle count** `null`
- **Uncle count** `string`
+ Not Found (null)
- Uncle count
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Uncle count` string
+
- ***
-
-
-
+ #### `Uncle count` fields
-
- ## Examples
+ **Uncle count** `string`
-
-
- eth\_getUncleCountByBlockHash example
-
+ Uncle count
- #### Request
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ```json
- {
- "params": [
- "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35"
- ]
- }
- ```
+ ***
+
+
- #### Response
+ ## Examples
- ```json
- "0x1"
- ```
-
-
+
+
+
+ eth\_getUncleCountByBlockHash example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xb3b20624f8f0f86eb50dd04688409e5cea4bd02d700bf6e79e9384d47d6a5a35"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x1"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_getUncleCountByBlockNumber.mdx b/packages/example-site/docs/api-reference/methods/eth_getUncleCountByBlockNumber.mdx
index ce57bc0..84b6e04 100644
--- a/packages/example-site/docs/api-reference/methods/eth_getUncleCountByBlockNumber.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_getUncleCountByBlockNumber.mdx
@@ -5,125 +5,123 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_getUncleCountByBlockNumber
-
-
-
- Returns the number of transactions in a block matching the given block number.
+ # eth\_getUncleCountByBlockNumber
-
- ## Parameters (by position)
-
- **Block** `string or string`
- ***
+ Returns the number of transactions in a block matching the given block number.
-
-
- Show Option 1 `Block number` string
-
+ ## Parameters (by position)
- #### `Block number` fields
+ **Block** `string or string`
- **Block** `string`
+ ***
- Block number
-
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Block number` string
+
- ***
-
+ #### `Block number` fields
-
-
- Show Option 2 `Block tag` string
-
+ **Block** `string`
- #### `Block tag` fields
+ Block number
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- **Block** `string`
+ ***
+
+
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+
+
+
+ Show Option 2 `Block tag` string
+
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ #### `Block tag` fields
- ***
-
-
-
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
-
- ## Result
+ **Block** `string`
-
- **Uncle count** `null or string`
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- ***
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
-
-
- Show Option 1 `Not Found (null)` null
-
+ ***
+
+
- #### `Not Found (null)` fields
+ ## Result
- **Uncle count** `null`
+ **Uncle count** `null or string`
- Not Found (null)
+ ***
- ***
-
+
+
+
+ Show Option 1 `Not Found (null)` null
+
-
-
- Show Option 2 `Uncle count` string
-
+ #### `Not Found (null)` fields
- #### `Uncle count` fields
+ **Uncle count** `null`
- **Uncle count** `string`
+ Not Found (null)
- Uncle count
+ ***
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 2 `Uncle count` string
+
- ***
-
-
-
+ #### `Uncle count` fields
-
- ## Examples
+ **Uncle count** `string`
-
-
- eth\_getUncleCountByBlockNumber example
-
+ Uncle count
- #### Request
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ```json
- {
- "params": [
- "0xe8"
- ]
- }
- ```
+ ***
+
+
- #### Response
+ ## Examples
- ```json
- "0x1"
- ```
-
-
+
+
+
+ eth\_getUncleCountByBlockNumber example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xe8"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x1"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_maxPriorityFeePerGas.mdx b/packages/example-site/docs/api-reference/methods/eth_maxPriorityFeePerGas.mdx
index f25e9db..e2e1ffe 100644
--- a/packages/example-site/docs/api-reference/methods/eth_maxPriorityFeePerGas.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_maxPriorityFeePerGas.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_maxPriorityFeePerGas
+ # eth\_maxPriorityFeePerGas
- Returns the current maxPriorityFeePerGas per gas in wei.
+ Returns the current maxPriorityFeePerGas per gas in wei.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
- **Max priority fee per gas** `string`
+ **Max priority fee per gas** `string`
- Max priority fee per gas
+ Max priority fee per gas
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
-
- ## Examples
+ ## Examples
-
-
- eth\_maxPriorityFeePerGas example
-
+
+
+
+ eth\_maxPriorityFeePerGas example
+
- #### Request
+ #### Request
- ```json
- {
- "params": []
- }
- ```
+ ```json
+ {
+ "params": []
+ }
+ ```
- #### Response
+ #### Response
- ```json
- "0x773c23ba"
- ```
-
-
+ ```json
+ "0x773c23ba"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_newBlockFilter.mdx b/packages/example-site/docs/api-reference/methods/eth_newBlockFilter.mdx
index 53c0936..0e42b13 100644
--- a/packages/example-site/docs/api-reference/methods/eth_newBlockFilter.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_newBlockFilter.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_newBlockFilter
+ # eth\_newBlockFilter
- Creates a filter in the node, allowing for later polling. Registers client interest in new blocks, and returns an identifier.
+ Creates a filter in the node, allowing for later polling. Registers client interest in new blocks, and returns an identifier.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
- **Filter identifier** `string`
+ **Filter identifier** `string`
- hex encoded unsigned integer
+ hex encoded unsigned integer
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
-
- ## Examples
+ ## Examples
-
-
- eth\_newBlockFilter example
-
+
+
+
+ eth\_newBlockFilter example
+
- #### Request
+ #### Request
- ```json
- {
- "params": []
- }
- ```
+ ```json
+ {
+ "params": []
+ }
+ ```
- #### Response
+ #### Response
- ```json
- "0x01"
- ```
-
-
+ ```json
+ "0x01"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_newFilter.mdx b/packages/example-site/docs/api-reference/methods/eth_newFilter.mdx
index 14cabd7..8c51dc7 100644
--- a/packages/example-site/docs/api-reference/methods/eth_newFilter.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_newFilter.mdx
@@ -5,216 +5,218 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_newFilter
+ # eth\_newFilter
- Install a log filter in the server, allowing for later polling. Registers client interest in logs matching the filter, and returns an identifier.
+ Install a log filter in the server, allowing for later polling. Registers client interest in logs matching the filter, and returns an identifier.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Filter** `object` *required*
+ **Filter** `object` *required*
- filter
+ filter
- ***
+ ***
-
-
-
- Show `Filter` object
-
+
+
+
+ Show `Filter` object
+
- #### `Filter` fields
+ #### `Filter` fields
- * **fromBlock** `string`
+ * **fromBlock** `string`
- from block
+ from block
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **toBlock** `string`
+ * **toBlock** `string`
- to block
+ to block
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **address** `null or string or array
`
+ * **address** `null or string or array`
- ***
+ ***
-
-
- Show Option 1 `Any Address` null
-
+
+
+
+ Show Option 1 `Any Address` null
+
- #### `Any Address` fields
+ #### `Any Address` fields
- **address** `null`
+ **address** `null`
- Any Address
+ Any Address
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Address` string
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Address` fields
+ #### `Address` fields
- **address** `string`
+ **address** `string`
- Address
+ Address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
+ ***
+
+
-
-
- Show Option 3 `Addresses` array
-
+
+
+
+ Show Option 3 `Addresses` array
+
- #### `Addresses` fields
+ #### `Addresses` fields
- **address** `array`
+ **address** `array`
- hex encoded address
+ hex encoded address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- *
- **topics** `null or array
`
+ * **topics** `null or array`
- ***
+ ***
-
-
- Show Option 1 `Any Topic Match` null
-
+
+
+
+ Show Option 1 `Any Topic Match` null
+
- #### `Any Topic Match` fields
+ #### `Any Topic Match` fields
- **topics** `null`
+ **topics** `null`
- Any Topic Match
+ Any Topic Match
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Specified Filter Topics` array
-
+
+
+
+ Show Option 2 `Specified Filter Topics` array
+
- #### `Specified Filter Topics` fields
+ #### `Specified Filter Topics` fields
-
- **topics** `string or array
`
+ **topics** `string or array`
- ***
+ ***
-
-
- Show Option 1 `Single Topic Match` string
-
+
+
+
+ Show Option 1 `Single Topic Match` string
+
- #### `Single Topic Match` fields
+ #### `Single Topic Match` fields
- **topics** `array`
+ **topics** `array`
- Single Topic Match
+ Single Topic Match
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Multiple Topic Match` array
-
+
+
+
+ Show Option 2 `Multiple Topic Match` array
+
- #### `Multiple Topic Match` fields
+ #### `Multiple Topic Match` fields
- **topics** `array`
+ **topics** `array`
- 32 hex encoded bytes
+ 32 hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
+
+
- * **additionalProperties** `false`
-
- ***
-
-
-
-
-
- ## Result
-
- **Filter identifier** `string`
+ * **additionalProperties** `false`
- hex encoded unsigned integer
-
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
+
+
- ***
-
+ ## Result
-
- ## Examples
+ **Filter identifier** `string`
-
-
- eth\_newFilter example
-
+ hex encoded unsigned integer
- #### Request
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ```json
- {
- "params": [
- {
- "fromBlock": "0x137d3c2",
- "toBlock": "0x137d3c3",
- "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
- "topics": []
- }
- ]
- }
- ```
+ ***
- #### Response
+ ## Examples
- ```json
- "0x01"
- ```
-
-
+
+
+
+ eth\_newFilter example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "fromBlock": "0x137d3c2",
+ "toBlock": "0x137d3c3",
+ "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
+ "topics": []
+ }
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0x01"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_newPendingTransactionFilter.mdx b/packages/example-site/docs/api-reference/methods/eth_newPendingTransactionFilter.mdx
index d564908..8c0b3a0 100644
--- a/packages/example-site/docs/api-reference/methods/eth_newPendingTransactionFilter.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_newPendingTransactionFilter.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_newPendingTransactionFilter
+ # eth\_newPendingTransactionFilter
- Creates a filter in the node, allowing for later polling. Registers client interest in new transactions, and returns an identifier.
+ Creates a filter in the node, allowing for later polling. Registers client interest in new transactions, and returns an identifier.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
- **Filter identifier** `string`
+ **Filter identifier** `string`
- hex encoded unsigned integer
+ hex encoded unsigned integer
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
-
- ## Examples
+ ## Examples
-
-
- eth\_newPendingTransactionFilter example
-
+
+
+
+ eth\_newPendingTransactionFilter example
+
- #### Request
+ #### Request
- ```json
- {
- "params": []
- }
- ```
+ ```json
+ {
+ "params": []
+ }
+ ```
- #### Response
+ #### Response
- ```json
- "0x01"
- ```
-
-
+ ```json
+ "0x01"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_sendRawTransaction.mdx b/packages/example-site/docs/api-reference/methods/eth_sendRawTransaction.mdx
index 53ca162..921a7ab 100644
--- a/packages/example-site/docs/api-reference/methods/eth_sendRawTransaction.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_sendRawTransaction.mdx
@@ -5,602 +5,594 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_sendRawTransaction
-
-
+ # eth\_sendRawTransaction
- Submits a raw transaction. You can create and sign a transaction externally using a library such as [web3.js](https://web3js.readthedocs.io/) or [ethers.js](https://docs.ethers.org/). For [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) transactions, the raw form must be the network form. This means it includes the blobs, KZG commitments, and KZG proofs. For [EIP-7594](https://eips.ethereum.org/EIPS/eip-7594) transactions, the raw format must be the network form. This means it includes the blobs, KZG commitments, and cell proofs. The logic for handling the new transaction during fork boundaries are 1. When receiving an encoded transaction with cell proofs before the PeerDAS fork activates, we reject it. Only blob proofs are accepted into the pool. 2. At the time of fork activation, the implementer could (not mandatory) - Drop all old-format transactions - Convert old proofs to new format (computationally expensive) - Convert only when including in a locally produced block 3. After the fork has activated, only txs with cell proofs are accepted via p2p relay. 4. On RPC (eth\_sendRawTransaction), txs with blob proofs may still be accepted and will be auto-converted by the node. At implementer discretion, this facility can be deprecated later when users have switched to new client libraries that can create cell proofs.
-
- ## Parameters (by position)
- **Transaction** `string` *required*
+ Submits a raw transaction. You can create and sign a transaction externally using a library such as [web3.js](https://web3js.readthedocs.io/) or [ethers.js](https://docs.ethers.org/). For [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) transactions, the raw form must be the network form. This means it includes the blobs, KZG commitments, and KZG proofs. For [EIP-7594](https://eips.ethereum.org/EIPS/eip-7594) transactions, the raw format must be the network form. This means it includes the blobs, KZG commitments, and cell proofs. The logic for handling the new transaction during fork boundaries are 1. When receiving an encoded transaction with cell proofs before the PeerDAS fork activates, we reject it. Only blob proofs are accepted into the pool. 2. At the time of fork activation, the implementer could (not mandatory) - Drop all old-format transactions - Convert old proofs to new format (computationally expensive) - Convert only when including in a locally produced block 3. After the fork has activated, only txs with cell proofs are accepted via p2p relay. 4. On RPC (eth\_sendRawTransaction), txs with blob proofs may still be accepted and will be auto-converted by the node. At implementer discretion, this facility can be deprecated later when users have switched to new client libraries that can create cell proofs.
- ***
-
+ ## Parameters (by position)
-
- ## Result
+ **Transaction** `string` *required*
- **Transaction hash** `string`
+ ***
- 32 byte hex value
+ ## Result
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ **Transaction hash** `string`
- ***
-
+ 32 byte hex value
-
- ## Errors
+ *Match pattern:* `^0x[0-9a-f]{64}$`
-
-
- Error code: -32000
-
+ ***
- * **code**
+ ## Errors
- -32000
- * **message**
+
+
+ Error code: -32000
+
- Invalid input
-
+ * **code**
-
-
- Error code: -32001
-
+ -32000
+ * **message**
- * **code**
+ Invalid input
+
- -32001
- * **message**
+
+
+ Error code: -32001
+
- Resource not found
-
+ * **code**
-
-
- Error code: -32002
-
+ -32001
+ * **message**
- * **code**
+ Resource not found
+
- -32002
- * **message**
+
+
+ Error code: -32002
+
- Resource unavailable
-
+ * **code**
-
-
- Error code: -32003
-
+ -32002
+ * **message**
- * **code**
+ Resource unavailable
+
- -32003
- * **message**
+
+
+ Error code: -32003
+
- Transaction rejected
-
+ * **code**
-
-
- Error code: -32004
-
+ -32003
+ * **message**
- * **code**
+ Transaction rejected
+
- -32004
- * **message**
+
+
+ Error code: -32004
+
- Method not supported
-
+ * **code**
-
-
- Error code: -32005
-
+ -32004
+ * **message**
- * **code**
+ Method not supported
+
- -32005
- * **message**
+
+
+ Error code: -32005
+
- Limit exceeded
-
+ * **code**
-
-
- Error code: -32006
-
+ -32005
+ * **message**
- * **code**
+ Limit exceeded
+
- -32006
- * **message**
+
+
+ Error code: -32006
+
- JSON-RPC version not supported
-
+ * **code**
-
-
- Error code: -32700
-
+ -32006
+ * **message**
- * **code**
+ JSON-RPC version not supported
+
- -32700
- * **message**
+
+
+ Error code: -32700
+
- Parse error
-
+ * **code**
-
-
- Error code: -32600
-
+ -32700
+ * **message**
- * **code**
+ Parse error
+
- -32600
- * **message**
+
+
+ Error code: -32600
+
- Invalid request
-
+ * **code**
-
-
- Error code: -32601
-
+ -32600
+ * **message**
- * **code**
+ Invalid request
+
- -32601
- * **message**
+
+
+ Error code: -32601
+
- Method not found
-
+ * **code**
-
-
- Error code: -32602
-
+ -32601
+ * **message**
- * **code**
+ Method not found
+
- -32602
- * **message**
+
+
+ Error code: -32602
+
- Invalid params
-
+ * **code**
-
-
- Error code: -32603
-
+ -32602
+ * **message**
- * **code**
+ Invalid params
+
- -32603
- * **message**
+
+
+ Error code: -32603
+
- Internal error
-
+ * **code**
-
-
- Error code: 800
-
+ -32603
+ * **message**
- * **code**
+ Internal error
+
- 800
- * **message**
+
+
+ Error code: 800
+
- Intrinsic gas too low / Intrinsic gas exceeds gas limit
- * **x-error-category**
+ * **code**
- GAS\_ERRORS
-
+ 800
+ * **message**
-
-
- Error code: 801
-
+ Intrinsic gas too low / Intrinsic gas exceeds gas limit
+ * **x-error-category**
- * **code**
+ GAS\_ERRORS
+
- 801
- * **message**
+
+
+ Error code: 801
+
- Insufficient gas for floor data gas cost
- * **x-error-category**
+ * **code**
- GAS\_ERRORS
-
+ 801
+ * **message**
-
-
- Error code: 802
-
+ Insufficient gas for floor data gas cost
+ * **x-error-category**
- * **code**
+ GAS\_ERRORS
+
- 802
- * **message**
+
+
+ Error code: 802
+
- Tx gas limit exceeds max block gas limit / intrinsic gas exceeds gas limit
- * **x-error-category**
+ * **code**
- GAS\_ERRORS
-
+ 802
+ * **message**
-
-
- Error code: 803
-
+ Tx gas limit exceeds max block gas limit / intrinsic gas exceeds gas limit
+ * **x-error-category**
- * **code**
+ GAS\_ERRORS
+
- 803
- * **message**
+
+
+ Error code: 803
+
- Transaction gas limit too high
-
+ * **code**
-
-
- Error code: 804
-
+ 803
+ * **message**
- * **code**
+ Transaction gas limit too high
+
- 804
- * **message**
+
+
+ Error code: 804
+
- Gas price below configured minimum gas price / transaction gas price below minimum
- * **x-error-category**
+ * **code**
- GAS\_ERRORS
-
+ 804
+ * **message**
-
-
- Error code: 805
-
+ Gas price below configured minimum gas price / transaction gas price below minimum
+ * **x-error-category**
- * **code**
+ GAS\_ERRORS
+
- 805
- * **message**
+
+
+ Error code: 805
+
- Insufficient funds for gas \* price + value / Upfront cost exceeds account balance
- * **x-error-category**
+ * **code**
- GAS\_ERRORS
-
+ 805
+ * **message**
-
-
- Error code: 806
-
+ Insufficient funds for gas \* price + value / Upfront cost exceeds account balance
+ * **x-error-category**
- * **code**
+ GAS\_ERRORS
+
- 806
- * **message**
+
+
+ Error code: 806
+
- Max priority fee per gas higher than max fee per gas
- * **x-error-category**
+ * **code**
- GAS\_ERRORS
-
+ 806
+ * **message**
-
-
- Error code: 807
-
+ Max priority fee per gas higher than max fee per gas
+ * **x-error-category**
- * **code**
+ GAS\_ERRORS
+
- 807
- * **message**
+
+
+ Error code: 807
+
- Tx fee exceeds the configured cap / Transaction fee cap exceeded
- * **x-error-category**
+ * **code**
- GAS\_ERRORS
-
+ 807
+ * **message**
-
-
- Error code: 1
-
+ Tx fee exceeds the configured cap / Transaction fee cap exceeded
+ * **x-error-category**
- * **code**
+ GAS\_ERRORS
+
- 1
- * **message**
+
+
+ Error code: 1
+
- Nonce too low
- * **x-error-category**
+ * **code**
- EXECUTION\_ERRORS
-
+ 1
+ * **message**
-
-
- Error code: 2
-
+ Nonce too low
+ * **x-error-category**
- * **code**
+ EXECUTION\_ERRORS
+
- 2
- * **message**
+
+
+ Error code: 2
+
- Nonce too high
- * **x-error-category**
+ * **code**
- EXECUTION\_ERRORS
-
+ 2
+ * **message**
-
-
- Error code: 3
-
+ Nonce too high
+ * **x-error-category**
- * **code**
+ EXECUTION\_ERRORS
+
- 3
- * **message**
+
+
+ Error code: 3
+
- Execution reverted by REVERT Opcode
- * **x-error-category**
+ * **code**
- EXECUTION\_ERRORS
-
+ 3
+ * **message**
-
-
- Error code: 4
-
+ Execution reverted by REVERT Opcode
+ * **x-error-category**
- * **code**
+ EXECUTION\_ERRORS
+
- 4
- * **message**
+
+
+ Error code: 4
+
- Invalid opcode
- * **x-error-category**
+ * **code**
- EXECUTION\_ERRORS
-
+ 4
+ * **message**
-
-
- Error code: 1000
-
+ Invalid opcode
+ * **x-error-category**
- * **code**
+ EXECUTION\_ERRORS
+
- 1000
- * **message**
+
+
+ Error code: 1000
+
- Transaction is already known to the transaction pool
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1000
+ * **message**
-
-
- Error code: 1001
-
+ Transaction is already known to the transaction pool
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1001
- * **message**
+
+
+ Error code: 1001
+
- Replacement transaction is sent without the required price bump
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1001
+ * **message**
-
-
- Error code: 1002
-
+ Replacement transaction is sent without the required price bump
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1002
- * **message**
+
+
+ Error code: 1002
+
- Oversized data: Transaction input data exceeds the allowed limit
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1002
+ * **message**
-
-
- Error code: 1003
-
+ Oversized data: Transaction input data exceeds the allowed limit
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1003
- * **message**
+
+
+ Error code: 1003
+
- Only replay-protected (EIP-155) transactions allowed over RPC
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1003
+ * **message**
-
-
- Error code: 1004
-
+ Only replay-protected (EIP-155) transactions allowed over RPC
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1004
- * **message**
+
+
+ Error code: 1004
+
- Transaction pool is full
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1004
+ * **message**
-
-
- Error code: 1005
-
+ Transaction pool is full
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1005
- * **message**
+
+
+ Error code: 1005
+
- Transaction Data contains invalid RLP encoding
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1005
+ * **message**
-
-
- Error code: 1006
-
+ Transaction Data contains invalid RLP encoding
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1006
- * **message**
+
+
+ Error code: 1006
+
- Transaction sender is invalid
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1006
+ * **message**
-
-
- Error code: 1007
-
+ Transaction sender is invalid
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1007
- * **message**
+
+
+ Error code: 1007
+
- Transaction with negative value
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1007
+ * **message**
-
-
- Error code: 1008
-
+ Transaction with negative value
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1008
- * **message**
+
+
+ Error code: 1008
+
- Transaction sender is denylisted
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1008
+ * **message**
-
-
- Error code: 1009
-
+ Transaction sender is denylisted
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1009
- * **message**
+
+
+ Error code: 1009
+
- Transaction receiver is denylisted
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1009
+ * **message**
-
-
- Error code: 1010
-
+ Transaction receiver is denylisted
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 1010
- * **message**
+
+
+ Error code: 1010
+
- Transaction chain ID does not match the expected chain ID
- * **x-error-category**
+ * **code**
- TXPOOL\_ERRORS
-
+ 1010
+ * **message**
-
-
- Error code: 2000
-
+ Transaction chain ID does not match the expected chain ID
+ * **x-error-category**
- * **code**
+ TXPOOL\_ERRORS
+
- 2000
- * **message**
+
+
+ Error code: 2000
+
- Not enough step counters to continue the execution
- * **x-error-category**
+ * **code**
- ZK\_EXECUTION\_ERRORS
-
-
+ 2000
+ * **message**
-
- ## Examples
+ Not enough step counters to continue the execution
+ * **x-error-category**
-
-
- eth\_sendRawTransaction example
-
+ ZK\_EXECUTION\_ERRORS
+
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- "0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
- ```
-
-
+
+
+
+ eth\_sendRawTransaction example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_sendTransaction.mdx b/packages/example-site/docs/api-reference/methods/eth_sendTransaction.mdx
index 87d4f5f..b51b91f 100644
--- a/packages/example-site/docs/api-reference/methods/eth_sendTransaction.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_sendTransaction.mdx
@@ -5,873 +5,867 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_sendTransaction
-
-
-
- Signs and submits a transaction.
-
-
- ## Parameters (by position)
+ # eth\_sendTransaction
- **Transaction** `object` *required*
- Transaction object generic to all types
- ***
+ Signs and submits a transaction.
-
-
-
- Show `Transaction` object
-
+ ## Parameters (by position)
- #### `Transaction` fields
+ **Transaction** `object` *required*
- * **type** `string`
+ Transaction object generic to all types
- type
+ ***
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+
+
+
+ Show `Transaction` object
+
- ***
+ #### `Transaction` fields
- * **nonce** `string`
+ * **type** `string`
- nonce
+ type
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- *
- **to** `null or string`
+ * **nonce** `string`
- ***
+ nonce
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- #### `Contract Creation (null)` fields
+ ***
- **to** `null`
+ * **to** `null or string`
- Contract Creation (null)
+ ***
- ***
-
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
-
-
- Show Option 2 `Address` string
-
+ #### `Contract Creation (null)` fields
- #### `Address` fields
+ **to** `null`
- **to** `string`
+ Contract Creation (null)
- Address
+ ***
+
+
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+
+
+
+ Show Option 2 `Address` string
+
- ***
-
-
+ #### `Address` fields
- * **from** `string`
+ **to** `string`
- from address
+ Address
*Match pattern:* `^0x[0-9a-fA-F]{40}$`
***
+
+
- * **gas** `string`
+ * **from** `string`
- gas limit
+ from address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **value** `string`
+ * **gas** `string`
- value
+ gas limit
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **input** `string`
+ * **value** `string`
- input data
+ value
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **input** `string`
- The gas price willing to be paid by the sender in wei
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string`
+ * **gasPrice** `string`
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string`
+ * **maxPriorityFeePerGas** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string`
+ * **maxFeePerGas** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **accessList** `array`
+ * **maxFeePerBlobGas** `string`
- EIP-2930 access list
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- ***
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
-
-
-
- Show `accessList` object
-
+ ***
- #### `accessList` fields
+ * **accessList** `array`
- EIP-2930 access list
+ EIP-2930 access list
- * **address** `string` *required*
+ ***
- hex encoded address
+
+
+
+ Show `accessList` object
+
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ #### `accessList` fields
- ***
+ EIP-2930 access list
- * **storageKeys** `array` *required*
+ * **address** `string` *required*
- 32 byte hex value
+ hex encoded address
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **storageKeys** `array` *required*
- ***
-
-
+ 32 byte hex value
- * **blobVersionedHashes** `array`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **additionalProperties** `false`
- ***
+ ***
+
+
- * **blobs** `array`
+ * **blobVersionedHashes** `array`
- Raw blob data.
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **chainId** `string`
+ * **blobs** `array`
- Chain ID that this transaction is valid on.
+ Raw blob data.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **authorizationList** `array`
+ * **chainId** `string`
- EIP-7702 authorization list
+ Chain ID that this transaction is valid on.
- ***
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
-
-
-
- Show `authorizationList` object
-
+ ***
- #### `authorizationList` fields
+ * **authorizationList** `array`
- EIP-7702 authorization list
+ EIP-7702 authorization list
- * **chainId** `string` *required*
+ ***
- Chain ID on which this transaction is valid
+
+
+
+ Show `authorizationList` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `authorizationList` fields
- ***
+ EIP-7702 authorization list
- * **nonce** `string` *required*
+ * **chainId** `string` *required*
- nonce
+ Chain ID on which this transaction is valid
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **address** `string` *required*
+ * **nonce** `string` *required*
- hex encoded address
+ nonce
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **address** `string` *required*
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ hex encoded address
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **r** `string` *required*
+ * **yParity** `string` *required*
- r
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **s** `string` *required*
+ * **r** `string` *required*
- s
+ r
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **additionalProperties** `true`
+ * **s** `string` *required*
- ***
-
-
+ s
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
-
-
-
+ ***
-
- ## Result
+ * **additionalProperties** `true`
- **Transaction hash** `string`
+ ***
+
+
- 32 byte hex value
+ * **additionalProperties** `false`
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ ***
+
+
- ***
-
+ ## Result
-
- ## Errors
+ **Transaction hash** `string`
-
-
- Error code: -32000
-
+ 32 byte hex value
- * **code**
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- -32000
- * **message**
+ ***
- Invalid input
-
+ ## Errors
-
-
- Error code: -32001
-
+
+
+ Error code: -32000
+
- * **code**
+ * **code**
- -32001
- * **message**
+ -32000
+ * **message**
- Resource not found
-
+ Invalid input
+
-
-
- Error code: -32002
-
+
+
+ Error code: -32001
+
- * **code**
+ * **code**
- -32002
- * **message**
+ -32001
+ * **message**
- Resource unavailable
-
+ Resource not found
+
-
-
- Error code: -32003
-
+
+
+ Error code: -32002
+
- * **code**
+ * **code**
- -32003
- * **message**
+ -32002
+ * **message**
- Transaction rejected
-
+ Resource unavailable
+
-
-
- Error code: -32004
-
+
+
+ Error code: -32003
+
- * **code**
+ * **code**
- -32004
- * **message**
+ -32003
+ * **message**
- Method not supported
-
+ Transaction rejected
+
-
-
- Error code: -32005
-
+
+
+ Error code: -32004
+
- * **code**
+ * **code**
- -32005
- * **message**
+ -32004
+ * **message**
- Limit exceeded
-
+ Method not supported
+
-
-
- Error code: -32006
-
+
+
+ Error code: -32005
+
- * **code**
+ * **code**
- -32006
- * **message**
+ -32005
+ * **message**
- JSON-RPC version not supported
-
+ Limit exceeded
+
-
-
- Error code: -32700
-
+
+
+ Error code: -32006
+
- * **code**
+ * **code**
- -32700
- * **message**
+ -32006
+ * **message**
- Parse error
-
+ JSON-RPC version not supported
+
-
-
- Error code: -32600
-
+
+
+ Error code: -32700
+
- * **code**
+ * **code**
- -32600
- * **message**
+ -32700
+ * **message**
- Invalid request
-
+ Parse error
+
-
-
- Error code: -32601
-
+
+
+ Error code: -32600
+
- * **code**
+ * **code**
- -32601
- * **message**
+ -32600
+ * **message**
- Method not found
-
+ Invalid request
+
-
-
- Error code: -32602
-
+
+
+ Error code: -32601
+
- * **code**
+ * **code**
- -32602
- * **message**
+ -32601
+ * **message**
- Invalid params
-
+ Method not found
+
-
-
- Error code: -32603
-
+
+
+ Error code: -32602
+
- * **code**
+ * **code**
- -32603
- * **message**
+ -32602
+ * **message**
- Internal error
-
+ Invalid params
+
-
-
- Error code: 800
-
+
+
+ Error code: -32603
+
- * **code**
+ * **code**
- 800
- * **message**
+ -32603
+ * **message**
- Intrinsic gas too low / Intrinsic gas exceeds gas limit
- * **x-error-category**
+ Internal error
+
- GAS\_ERRORS
-
+
+
+ Error code: 800
+
-
-
- Error code: 801
-
+ * **code**
- * **code**
+ 800
+ * **message**
- 801
- * **message**
+ Intrinsic gas too low / Intrinsic gas exceeds gas limit
+ * **x-error-category**
- Insufficient gas for floor data gas cost
- * **x-error-category**
+ GAS\_ERRORS
+
- GAS\_ERRORS
-
+
+
+ Error code: 801
+
-
-
- Error code: 802
-
+ * **code**
- * **code**
+ 801
+ * **message**
- 802
- * **message**
+ Insufficient gas for floor data gas cost
+ * **x-error-category**
- Tx gas limit exceeds max block gas limit / intrinsic gas exceeds gas limit
- * **x-error-category**
+ GAS\_ERRORS
+
- GAS\_ERRORS
-
+
+
+ Error code: 802
+
-
-
- Error code: 803
-
+ * **code**
- * **code**
+ 802
+ * **message**
- 803
- * **message**
+ Tx gas limit exceeds max block gas limit / intrinsic gas exceeds gas limit
+ * **x-error-category**
- Transaction gas limit too high
-
+ GAS\_ERRORS
+
-
-
- Error code: 804
-
+
+
+ Error code: 803
+
- * **code**
+ * **code**
- 804
- * **message**
+ 803
+ * **message**
- Gas price below configured minimum gas price / transaction gas price below minimum
- * **x-error-category**
+ Transaction gas limit too high
+
- GAS\_ERRORS
-
+
+
+ Error code: 804
+
-
-
- Error code: 805
-
+ * **code**
- * **code**
+ 804
+ * **message**
- 805
- * **message**
+ Gas price below configured minimum gas price / transaction gas price below minimum
+ * **x-error-category**
- Insufficient funds for gas \* price + value / Upfront cost exceeds account balance
- * **x-error-category**
+ GAS\_ERRORS
+
- GAS\_ERRORS
-
+
+
+ Error code: 805
+
-
-
- Error code: 806
-
+ * **code**
- * **code**
+ 805
+ * **message**
- 806
- * **message**
+ Insufficient funds for gas \* price + value / Upfront cost exceeds account balance
+ * **x-error-category**
- Max priority fee per gas higher than max fee per gas
- * **x-error-category**
+ GAS\_ERRORS
+
- GAS\_ERRORS
-
+
+
+ Error code: 806
+
-
-
- Error code: 807
-
+ * **code**
- * **code**
+ 806
+ * **message**
- 807
- * **message**
+ Max priority fee per gas higher than max fee per gas
+ * **x-error-category**
- Tx fee exceeds the configured cap / Transaction fee cap exceeded
- * **x-error-category**
+ GAS\_ERRORS
+
- GAS\_ERRORS
-
+
+
+ Error code: 807
+
-
-
- Error code: 1
-
+ * **code**
- * **code**
+ 807
+ * **message**
- 1
- * **message**
+ Tx fee exceeds the configured cap / Transaction fee cap exceeded
+ * **x-error-category**
- Nonce too low
- * **x-error-category**
+ GAS\_ERRORS
+
- EXECUTION\_ERRORS
-
+
+
+ Error code: 1
+
-
-
- Error code: 2
-
+ * **code**
- * **code**
+ 1
+ * **message**
- 2
- * **message**
+ Nonce too low
+ * **x-error-category**
- Nonce too high
- * **x-error-category**
+ EXECUTION\_ERRORS
+
- EXECUTION\_ERRORS
-
+
+
+ Error code: 2
+
-
-
- Error code: 3
-
+ * **code**
- * **code**
+ 2
+ * **message**
- 3
- * **message**
+ Nonce too high
+ * **x-error-category**
- Execution reverted by REVERT Opcode
- * **x-error-category**
+ EXECUTION\_ERRORS
+
- EXECUTION\_ERRORS
-
+
+
+ Error code: 3
+
-
-
- Error code: 4
-
+ * **code**
- * **code**
+ 3
+ * **message**
- 4
- * **message**
+ Execution reverted by REVERT Opcode
+ * **x-error-category**
- Invalid opcode
- * **x-error-category**
+ EXECUTION\_ERRORS
+
- EXECUTION\_ERRORS
-
+
+
+ Error code: 4
+
-
-
- Error code: 1000
-
+ * **code**
- * **code**
+ 4
+ * **message**
- 1000
- * **message**
+ Invalid opcode
+ * **x-error-category**
- Transaction is already known to the transaction pool
- * **x-error-category**
+ EXECUTION\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1000
+
-
-
- Error code: 1001
-
+ * **code**
- * **code**
+ 1000
+ * **message**
- 1001
- * **message**
+ Transaction is already known to the transaction pool
+ * **x-error-category**
- Replacement transaction is sent without the required price bump
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1001
+
-
-
- Error code: 1002
-
+ * **code**
- * **code**
+ 1001
+ * **message**
- 1002
- * **message**
+ Replacement transaction is sent without the required price bump
+ * **x-error-category**
- Oversized data: Transaction input data exceeds the allowed limit
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1002
+
-
-
- Error code: 1003
-
+ * **code**
- * **code**
+ 1002
+ * **message**
- 1003
- * **message**
+ Oversized data: Transaction input data exceeds the allowed limit
+ * **x-error-category**
- Only replay-protected (EIP-155) transactions allowed over RPC
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1003
+
-
-
- Error code: 1004
-
+ * **code**
- * **code**
+ 1003
+ * **message**
- 1004
- * **message**
+ Only replay-protected (EIP-155) transactions allowed over RPC
+ * **x-error-category**
- Transaction pool is full
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1004
+
-
-
- Error code: 1005
-
+ * **code**
- * **code**
+ 1004
+ * **message**
- 1005
- * **message**
+ Transaction pool is full
+ * **x-error-category**
- Transaction Data contains invalid RLP encoding
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1005
+
-
-
- Error code: 1006
-
+ * **code**
- * **code**
+ 1005
+ * **message**
- 1006
- * **message**
+ Transaction Data contains invalid RLP encoding
+ * **x-error-category**
- Transaction sender is invalid
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1006
+
-
-
- Error code: 1007
-
+ * **code**
- * **code**
+ 1006
+ * **message**
- 1007
- * **message**
+ Transaction sender is invalid
+ * **x-error-category**
- Transaction with negative value
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1007
+
-
-
- Error code: 1008
-
+ * **code**
- * **code**
+ 1007
+ * **message**
- 1008
- * **message**
+ Transaction with negative value
+ * **x-error-category**
- Transaction sender is denylisted
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1008
+
-
-
- Error code: 1009
-
+ * **code**
- * **code**
+ 1008
+ * **message**
- 1009
- * **message**
+ Transaction sender is denylisted
+ * **x-error-category**
- Transaction receiver is denylisted
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1009
+
-
-
- Error code: 1010
-
+ * **code**
- * **code**
+ 1009
+ * **message**
- 1010
- * **message**
+ Transaction receiver is denylisted
+ * **x-error-category**
- Transaction chain ID does not match the expected chain ID
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- TXPOOL\_ERRORS
-
+
+
+ Error code: 1010
+
-
-
- Error code: 2000
-
+ * **code**
- * **code**
+ 1010
+ * **message**
- 2000
- * **message**
+ Transaction chain ID does not match the expected chain ID
+ * **x-error-category**
- Not enough step counters to continue the execution
- * **x-error-category**
+ TXPOOL\_ERRORS
+
- ZK\_EXECUTION\_ERRORS
-
-
+
+
+ Error code: 2000
+
-
- ## Examples
+ * **code**
-
-
- eth\_sendTransaction example
-
+ 2000
+ * **message**
- #### Request
+ Not enough step counters to continue the execution
+ * **x-error-category**
- ```json
- {
- "params": [
- {
- "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
- "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
- "gas": "0x76c0",
- "gasPrice": "0x9184e72a000",
- "value": "0x9184e72a",
- "input": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
- }
- ]
- }
- ```
+ ZK\_EXECUTION\_ERRORS
+
- #### Response
+ ## Examples
- ```json
- "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
- ```
-
-
+
+
+
+ eth\_sendTransaction example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
+ "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
+ "gas": "0x76c0",
+ "gasPrice": "0x9184e72a000",
+ "value": "0x9184e72a",
+ "input": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
+ }
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_sign.mdx b/packages/example-site/docs/api-reference/methods/eth_sign.mdx
index 9e80953..0508972 100644
--- a/packages/example-site/docs/api-reference/methods/eth_sign.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_sign.mdx
@@ -5,66 +5,60 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_sign
-
-
+ # eth\_sign
- Returns an EIP-191 signature over the provided data.
-
- ## Parameters (by position)
- **Address** `string` *required*
+ Returns an EIP-191 signature over the provided data.
- ***
+ ## Parameters (by position)
- **Message** `string` *required*
+ **Address** `string` *required*
- ***
-
+ ***
-
- ## Result
+ **Message** `string` *required*
- **Signature** `string`
+ ***
- 65 hex encoded bytes
+ ## Result
- *Match pattern:* `^0x[0-9a-f]{130}$`
+ **Signature** `string`
- ***
-
+ 65 hex encoded bytes
-
- ## Examples
+ *Match pattern:* `^0x[0-9a-f]{130}$`
-
-
- eth\_sign example
-
+ ***
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83",
- "0xdeadbeaf"
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
- ```
-
-
+
+
+
+ eth\_sign example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83",
+ "0xdeadbeaf"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_signTransaction.mdx b/packages/example-site/docs/api-reference/methods/eth_signTransaction.mdx
index 5b37152..3286c38 100644
--- a/packages/example-site/docs/api-reference/methods/eth_signTransaction.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_signTransaction.mdx
@@ -5,370 +5,368 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_signTransaction
+ # eth\_signTransaction
- Returns an RLP encoded transaction signed by the specified account.
+ Returns an RLP encoded transaction signed by the specified account.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Transaction** `object` *required*
+ **Transaction** `object` *required*
- Transaction object generic to all types
+ Transaction object generic to all types
- ***
+ ***
-
-
-
- Show `Transaction` object
-
+
+
+
+ Show `Transaction` object
+
- #### `Transaction` fields
+ #### `Transaction` fields
- * **type** `string`
+ * **type** `string`
- type
+ type
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **nonce** `string`
+ * **nonce** `string`
- nonce
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **to** `null or string`
+ * **to** `null or string`
- ***
+ ***
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- #### `Contract Creation (null)` fields
+ #### `Contract Creation (null)` fields
- **to** `null`
+ **to** `null`
- Contract Creation (null)
+ Contract Creation (null)
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Address` string
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Address` fields
+ #### `Address` fields
- **to** `string`
+ **to** `string`
- Address
+ Address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
-
-
+ ***
+
+
- * **from** `string`
+ * **from** `string`
- from address
+ from address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **gas** `string`
+ * **gas** `string`
- gas limit
+ gas limit
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string`
+ * **value** `string`
- value
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **input** `string`
+ * **input** `string`
- input data
+ input data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **gasPrice** `string`
+ * **gasPrice** `string`
- The gas price willing to be paid by the sender in wei
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string`
+ * **maxPriorityFeePerGas** `string`
- Maximum fee per gas the sender is willing to pay to miners in wei
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string`
+ * **maxFeePerGas** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string`
+ * **maxFeePerBlobGas** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
+
+ * **accessList** `array`
+
+ EIP-2930 access list
+
+ ***
+
+
+
+
+ Show `accessList` object
+
- * **accessList** `array`
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blobVersionedHashes** `array`
- ***
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
- * **blobVersionedHashes** `array`
+ * **blobs** `array`
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
+ Raw blob data.
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **blobs** `array`
+ * **chainId** `string`
- Raw blob data.
+ Chain ID that this transaction is valid on.
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string`
+ * **authorizationList** `array`
- Chain ID that this transaction is valid on.
+ EIP-7702 authorization list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `authorizationList` object
+
- * **authorizationList** `array`
+ #### `authorizationList` fields
EIP-7702 authorization list
- ***
+ * **chainId** `string` *required*
-
-
-
- Show `authorizationList` object
-
+ Chain ID on which this transaction is valid
- #### `authorizationList` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- EIP-7702 authorization list
+ ***
- * **chainId** `string` *required*
+ * **nonce** `string` *required*
- Chain ID on which this transaction is valid
+ nonce
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **address** `string` *required*
- nonce
+ hex encoded address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **address** `string` *required*
+ * **yParity** `string` *required*
- hex encoded address
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **r** `string` *required*
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `null or string`
- s
+ Additional JSON properties
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ ***
- ***
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
+
+ #### `Contract Creation (null)` fields
+
+ Additional JSON properties
- *
- **additionalProperties** `null or string`
+ **additionalProperties** `null`
- Additional JSON properties
+ Additional JSON properties
- ***
+ ***
+
+
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Contract Creation (null)` fields
+ #### `Address` fields
- Additional JSON properties
+ Additional JSON properties
- **additionalProperties** `null`
+ **additionalProperties** `string`
- Additional JSON properties
+ Additional JSON properties
- ***
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
-
-
- Show Option 2 `Address` string
-
+ ***
+
+
+
+
- #### `Address` fields
+ * **additionalProperties** `false`
- Additional JSON properties
+ ***
+
+
- **additionalProperties** `string`
+ ## Result
- Additional JSON properties
+ **Encoded transaction** `string`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ hex encoded bytes
- ***
-
-
-
-
+ *Match pattern:* `^0x[0-9a-f]*$`
- * **additionalProperties** `false`
+ ***
- ***
-
-
-
-
-
- ## Result
-
- **Encoded transaction** `string`
-
- hex encoded bytes
-
- *Match pattern:* `^0x[0-9a-f]*$`
-
- ***
-
-
-
- ## Examples
-
-
-
- eth\_signTransaction example
-
-
- #### Request
-
- ```json
- {
- "params": [
- {
- "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675",
- "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
- "gas": "0x76c0",
- "gasPrice": "0x9184e72a000",
- "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
- "value": "0x9184e72a"
- }
- ]
- }
- ```
-
- #### Response
-
- ```json
- "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
- ```
-
-
+ ## Examples
+
+
+
+
+ eth\_signTransaction example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ {
+ "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675",
+ "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
+ "gas": "0x76c0",
+ "gasPrice": "0x9184e72a000",
+ "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
+ "value": "0x9184e72a"
+ }
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_simulateV1.mdx b/packages/example-site/docs/api-reference/methods/eth_simulateV1.mdx
index 5de853e..6271d42 100644
--- a/packages/example-site/docs/api-reference/methods/eth_simulateV1.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_simulateV1.mdx
@@ -5,1906 +5,1922 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_simulateV1
+ # eth\_simulateV1
- Executes a sequence of message calls building on each other's state without creating transactions on the block chain, optionally overriding block and state data
+ Executes a sequence of message calls building on each other's state without creating transactions on the block chain, optionally overriding block and state data
-
- ## Parameters (by position)
+ ## Parameters (by position)
- **Payload** `undefined` *required*
+ **Payload** `undefined` *required*
- ***
+ ***
-
- **Block tag** `string or string or string`
+ **Block tag** `string or string or string`
- default: 'latest'
+ default: 'latest'
- ***
+ ***
-
-
- Show Option 1 `Block number` string
-
+
+
+
+ Show Option 1 `Block number` string
+
- #### `Block number` fields
+ #### `Block number` fields
- default: 'latest'
+ default: 'latest'
- **Block tag** `string`
+ **Block tag** `string`
- default: 'latest'
+ default: 'latest'
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
+ ***
+
+
-
-
- Show Option 2 `Block tag` string
-
+
+
+
+ Show Option 2 `Block tag` string
+
- #### `Block tag` fields
+ #### `Block tag` fields
- `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+ `earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
- **Block tag** `string`
+ **Block tag** `string`
- default: 'latest'
+ default: 'latest'
- *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
+ *Allowed values:* `earliest` `finalized` `safe` `latest` `pending`
- ***
-
+ ***
+
+
-
-
- Show Option 3 `Block hash` string
-
+
+
+
+ Show Option 3 `Block hash` string
+
- #### `Block hash` fields
+ #### `Block hash` fields
- default: 'latest'
+ default: 'latest'
- **Block tag** `string`
+ **Block tag** `string`
- default: 'latest'
+ default: 'latest'
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
-
+ ***
+
+
-
- ## Result
+ ## Result
- **Result of calls** `array
`
+ **Result of calls** `array`
- Result of eth\_simulate block-level, with array of calls
+ Result of eth\_simulate block-level, with array of calls
- ***
+ ***
-
-
-
- Show `Result of calls` object
-
+
+
+
+ Show `Result of calls` object
+
- #### `Result of calls` fields
+ #### `Result of calls` fields
- * **hash** `string` *required*
+ * **hash** `string` *required*
- Hash
+ Hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **parentHash** `string` *required*
+ * **parentHash** `string` *required*
- Parent block hash
+ Parent block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **sha3Uncles** `string` *required*
+ * **sha3Uncles** `string` *required*
- Ommers hash
+ Ommers hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **miner** `string` *required*
+ * **miner** `string` *required*
- Coinbase
+ Coinbase
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **stateRoot** `string` *required*
+ * **stateRoot** `string` *required*
- State root
+ State root
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **transactionsRoot** `string` *required*
+ * **transactionsRoot** `string` *required*
- Transactions root
+ Transactions root
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **receiptsRoot** `string` *required*
+ * **receiptsRoot** `string` *required*
- Receipts root
+ Receipts root
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **logsBloom** `string` *required*
+ * **logsBloom** `string` *required*
- Bloom filter
+ Bloom filter
- *Match pattern:* `^0x[0-9a-f]{512}$`
+ *Match pattern:* `^0x[0-9a-f]{512}$`
- ***
+ ***
- * **difficulty** `string`
+ * **difficulty** `string`
- Difficulty
+ Difficulty
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **number** `string` *required*
+ * **number** `string` *required*
- Number
+ Number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasLimit** `string` *required*
+ * **gasLimit** `string` *required*
- Gas limit
+ Gas limit
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasUsed** `string` *required*
+ * **gasUsed** `string` *required*
- Gas used
+ Gas used
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **timestamp** `string` *required*
+ * **timestamp** `string` *required*
- Timestamp
+ Timestamp
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **extraData** `string` *required*
+ * **extraData** `string` *required*
- Extra data
+ Extra data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **mixHash** `string` *required*
+ * **mixHash** `string` *required*
- Mix hash
+ Mix hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **nonce** `string` *required*
- Nonce
+ Nonce
- *Match pattern:* `^0x[0-9a-f]{16}$`
+ *Match pattern:* `^0x[0-9a-f]{16}$`
- ***
+ ***
- * **baseFeePerGas** `string`
+ * **baseFeePerGas** `string`
- Base fee per gas
+ Base fee per gas
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **withdrawalsRoot** `string`
+ * **withdrawalsRoot** `string`
- Withdrawals root
+ Withdrawals root
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blobGasUsed** `string`
+ * **blobGasUsed** `string`
- Blob gas used
+ Blob gas used
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **excessBlobGas** `string`
+ * **excessBlobGas** `string`
- Excess blob gas
+ Excess blob gas
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **parentBeaconBlockRoot** `string`
+ * **parentBeaconBlockRoot** `string`
- Parent Beacon Block Root
+ Parent Beacon Block Root
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **size** `string` *required*
+ * **size** `string` *required*
- Block size
+ Block size
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- *
- **transactions** `array
or array` *required*
+ * **transactions** `array or array` *required*
- ***
+ ***
-
-
- Show Option 1 `Transaction hashes` array
-
+
+
+
+ Show Option 1 `Transaction hashes` array
+
- #### `Transaction hashes` fields
+ #### `Transaction hashes` fields
- **transactions** `array` *required*
+ **transactions** `array` *required*
- 32 byte hex value
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
+ ***
+
+
+
+
+
+
+ Show Option 2 `Full transactions` array
+
+
+ #### `Full transactions` fields
+
+ **transactions** `object or object or object or object or object` *required*
+ ***
+
+
- Show Option 2 `Full transactions` array
+ Show Option 1 `Signed 7702 Transaction` object
- #### `Full transactions` fields
+ #### `Signed 7702 Transaction` fields
-
- **transactions** `object or object or object or object or object` *required*
+ **transactions** `array
` *required*
- ***
+ Signed 7702 Transaction
+
+ ***
+
- Show Option 1 `Signed 7702 Transaction` object
+ Show `transactions` object
- #### `Signed 7702 Transaction` fields
+ #### `transactions` fields
- **transactions** `array` *required*
+ * **type** `string` *required*
- Signed 7702 Transaction
+ type
- ***
+ *Match pattern:* `^0x4$`
-
-
-
- Show `transactions` object
-
-
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x4$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `string` *required*
- nonce
+ to address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **to** `string` *required*
+ * **gas** `string` *required*
- to address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access lists
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access lists
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access lists
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **authorizationList** `array` *required*
- Chain ID that this transaction is valid on
+ List of authorizations for the transaction
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `authorizationList` object
+
- * **authorizationList** `array` *required*
+ #### `authorizationList` fields
List of authorizations for the transaction
- ***
+ * **chainId** `string` *required*
+
+ Chain ID on which this transaction is valid
-
-
-
- Show `authorizationList` object
-
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- #### `authorizationList` fields
+ ***
- List of authorizations for the transaction
+ * **nonce** `string` *required*
- * **chainId** `string` *required*
+ nonce
- Chain ID on which this transaction is valid
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **address** `string` *required*
- * **nonce** `string` *required*
+ hex encoded address
- nonce
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **yParity** `string` *required*
- * **address** `string` *required*
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
- hex encoded address
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
+ * **r** `string` *required*
- * **yParity** `string` *required*
+ r
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ ***
- ***
+ * **s** `string` *required*
- * **r** `string` *required*
+ s
- r
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ ***
- ***
+ * **additionalProperties** `true`
- * **s** `string` *required*
+ ***
+
+
- s
+ * **yParity** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- ***
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- * **additionalProperties** `true`
+ ***
- ***
-
-
+ * **v** `string`
- * **yParity** `string` *required*
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ ***
- ***
+ * **r** `string` *required*
- * **v** `string`
+ r
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ ***
- ***
+ * **s** `string` *required*
- * **r** `string` *required*
+ s
- r
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **additionalProperties** `true`
- * **s** `string` *required*
+ ***
+
+
+
+
- s
+
+
+
+ Show Option 2 `Signed 4844 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 4844 Transaction` fields
- ***
+ **transactions** `array` *required*
- * **additionalProperties** `true`
+ Signed 4844 Transaction
- ***
-
-
-
+ ***
+
- Show Option 2 `Signed 4844 Transaction` object
+ Show `transactions` object
- #### `Signed 4844 Transaction` fields
+ #### `transactions` fields
- **transactions** `array` *required*
+ * **type** `string` *required*
- Signed 4844 Transaction
+ type
- ***
+ *Match pattern:* `^0x3$`
-
-
-
- Show `transactions` object
-
-
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x3$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `string` *required*
- nonce
+ to address
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **to** `string` *required*
+ * **gas** `string` *required*
- to address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **maxPriorityFeePerGas** `string` *required*
- input data
+ Maximum fee per gas the sender is willing to pay to miners in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **maxFeePerBlobGas** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerBlobGas** `string` *required*
+ * **gasPrice** `string`
- The maximum total fee per gas the sender is willing to pay for blob gas in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string`
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **blobVersionedHashes** `array` *required*
- ***
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
- * **additionalProperties** `false`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
-
-
+ ***
- * **blobVersionedHashes** `array` *required*
+ * **chainId** `string` *required*
- List of versioned blob hashes associated with the transaction's EIP-4844 data blobs
+ Chain ID that this transaction is valid on
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
+
+ * **additionalProperties** `true`
- * **s** `string` *required*
+ ***
+
+
+
+
- s
+
+
+
+ Show Option 3 `Signed 1559 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 1559 Transaction` fields
- ***
+ **transactions** `array` *required*
- * **additionalProperties** `true`
+ Signed 1559 Transaction
- ***
-
-
-
+ ***
+
- Show Option 3 `Signed 1559 Transaction` object
+ Show `transactions` object
- #### `Signed 1559 Transaction` fields
+ #### `transactions` fields
+
+ * **type** `string` *required*
+
+ type
- **transactions** `array` *required*
+ *Match pattern:* `^0x2$`
- Signed 1559 Transaction
+ ***
- ***
+ * **nonce** `string` *required*
-
-
-
- Show `transactions` object
-
+ nonce
- #### `transactions` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- * **type** `string` *required*
+ ***
- type
+ * **to** `null or string`
- *Match pattern:* `^0x2$`
+ ***
- ***
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- * **nonce** `string` *required*
+ #### `Contract Creation (null)` fields
- nonce
+ **to** `null`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ Contract Creation (null)
***
+
+
- *
- **to** `null or string`
+
+
+
+ Show Option 2 `Address` string
+
- ***
+ #### `Address` fields
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ **to** `string`
- #### `Contract Creation (null)` fields
+ Address
- **to** `null`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- Contract Creation (null)
+ ***
+
+
- ***
-
+ * **gas** `string` *required*
-
-
- Show Option 2 `Address` string
-
+ gas limit
- #### `Address` fields
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- **to** `string`
+ ***
- Address
+ * **value** `string` *required*
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ value
- ***
-
-
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- * **gas** `string` *required*
+ ***
- gas limit
+ * **input** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ input data
- ***
+ *Match pattern:* `^0x[0-9a-f]*$`
- * **value** `string` *required*
+ ***
- value
+ * **maxPriorityFeePerGas** `string` *required*
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ Maximum fee per gas the sender is willing to pay to miners in wei
- ***
-
- * **input** `string` *required*
-
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
-
- ***
+ ***
- * **maxPriorityFeePerGas** `string` *required*
+ * **maxFeePerGas** `string` *required*
- Maximum fee per gas the sender is willing to pay to miners in wei
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **maxFeePerGas** `string` *required*
+ * **gasPrice** `string` *required*
- The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+ The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The effective gas price paid by the sender in wei. For transactions not yet included in a block, this value should be set equal to the max fee per gas. This field is DEPRECATED, please transition to using effectiveGasPrice in the receipt object going forward.
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
+
+ ***
+
+
+
+
- s
+
+
+
+ Show Option 4 `Signed 2930 Transaction` object
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Signed 2930 Transaction` fields
- ***
+ **transactions** `array` *required*
- * **additionalProperties** `true`
+ Signed 2930 Transaction
- ***
-
-
-
+ ***
+
- Show Option 4 `Signed 2930 Transaction` object
+ Show `transactions` object
- #### `Signed 2930 Transaction` fields
-
- **transactions** `array` *required*
+ #### `transactions` fields
- Signed 2930 Transaction
+ * **type** `string` *required*
- ***
+ type
-
-
-
- Show `transactions` object
-
+ *Match pattern:* `^0x1$`
- #### `transactions` fields
+ ***
- * **type** `string` *required*
+ * **nonce** `string` *required*
- type
+ nonce
- *Match pattern:* `^0x1$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **nonce** `string` *required*
+ * **to** `null or string`
- nonce
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- ***
+ #### `Contract Creation (null)` fields
- *
- **to** `null or string`
+ **to** `null`
- ***
+ Contract Creation (null)
-
-
- Show Option 1 `Contract Creation (null)` null
-
+ ***
+
+
- #### `Contract Creation (null)` fields
+
+
+
+ Show Option 2 `Address` string
+
- **to** `null`
+ #### `Address` fields
- Contract Creation (null)
+ **to** `string`
- ***
-
+ Address
-
-
- Show Option 2 `Address` string
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- #### `Address` fields
+ ***
+
+
- **to** `string`
+ * **gas** `string` *required*
- Address
+ gas limit
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **gas** `string` *required*
+ * **value** `string` *required*
- gas limit
+ value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **value** `string` *required*
+ * **input** `string` *required*
- value
+ input data
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **input** `string` *required*
+ * **gasPrice** `string` *required*
- input data
+ The gas price willing to be paid by the sender in wei
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **gasPrice** `string` *required*
+ * **accessList** `array` *required*
- The gas price willing to be paid by the sender in wei
+ EIP-2930 access list
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `accessList` object
+
- * **accessList** `array` *required*
+ #### `accessList` fields
EIP-2930 access list
- ***
+ * **address** `string` *required*
-
-
-
- Show `accessList` object
-
+ hex encoded address
- #### `accessList` fields
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- EIP-2930 access list
+ ***
- * **address** `string` *required*
+ * **storageKeys** `array` *required*
- hex encoded address
+ 32 byte hex value
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **storageKeys** `array` *required*
+ * **additionalProperties** `false`
- 32 byte hex value
+ ***
+
+
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **chainId** `string` *required*
- ***
+ Chain ID that this transaction is valid on.
- * **additionalProperties** `false`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
-
-
+ ***
- * **chainId** `string` *required*
+ * **yParity** `string` *required*
- Chain ID that this transaction is valid on.
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **yParity** `string` *required*
+ * **v** `string`
- The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature.
+ For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
- ***
+ ***
- * **v** `string`
+ * **r** `string` *required*
- For backwards compatibility, `v` is optionally provided as an alternative to `yParity`. This field is DEPRECATED and all use of it should migrate to `yParity`.
+ r
- *Match pattern:* `^0x([0-9a-fA-F]?){1,2}$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **r** `string` *required*
+ * **s** `string` *required*
- r
+ s
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **s** `string` *required*
+ * **additionalProperties** `true`
- s
+ ***
+
+
+
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+ Show Option 5 `Signed Legacy Transaction` object
+
- ***
+ #### `Signed Legacy Transaction` fields
- * **additionalProperties** `true`
+ **transactions** `array` *required*
- ***
-
-
-
+ Signed Legacy Transaction
+
+ ***
+
- Show Option 5 `Signed Legacy Transaction` object
+ Show `transactions` object
- #### `Signed Legacy Transaction` fields
+ #### `transactions` fields
- **transactions** `array` *required*
+ * **type** `string` *required*
- Signed Legacy Transaction
+ type
- ***
+ *Match pattern:* `^0x0$`
-
-
-
- Show `transactions` object
-
+ ***
- #### `transactions` fields
+ * **nonce** `string` *required*
- * **type** `string` *required*
+ nonce
- type
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x0$`
+ ***
- ***
+ * **to** `null or string`
- * **nonce** `string` *required*
+ ***
- nonce
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ #### `Contract Creation (null)` fields
- ***
+ **to** `null`
- *
- **to** `null or string`
+ Contract Creation (null)
- ***
+ ***
+
+
-
-
- Show Option 1 `Contract Creation (null)` null
-
+
+
+
+ Show Option 2 `Address` string
+
- #### `Contract Creation (null)` fields
+ #### `Address` fields
- **to** `null`
+ **to** `string`
- Contract Creation (null)
+ Address
- ***
-
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
-
-
- Show Option 2 `Address` string
-
+ ***
+
+
- #### `Address` fields
+ * **gas** `string` *required*
- **to** `string`
+ gas limit
- Address
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ ***
- ***
-
-
+ * **value** `string` *required*
- * **gas** `string` *required*
+ value
- gas limit
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **input** `string` *required*
- * **value** `string` *required*
+ input data
- value
+ *Match pattern:* `^0x[0-9a-f]*$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **gasPrice** `string` *required*
- * **input** `string` *required*
+ The gas price willing to be paid by the sender in wei
- input data
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x[0-9a-f]*$`
+ ***
- ***
+ * **chainId** `string`
- * **gasPrice** `string` *required*
+ Chain ID that this transaction is valid on.
- The gas price willing to be paid by the sender in wei
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+ * **v** `string` *required*
+
+ v
- * **chainId** `string`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- Chain ID that this transaction is valid on.
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **r** `string` *required*
- ***
+ r
- * **v** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- v
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **s** `string` *required*
- ***
+ s
- * **r** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- r
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ * **additionalProperties** `true`
- ***
+ ***
+
+
+
+
+
+
- * **s** `string` *required*
+ * **withdrawals** `array`
- s
+ Validator withdrawal
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ ***
- ***
+
+
+
+ Show `withdrawals` object
+
- * **additionalProperties** `true`
+ #### `withdrawals` fields
- ***
-
-
-
-
-
-
+ * **index** `string` *required*
- * **withdrawals** `array`
+ index of withdrawal
- Validator withdrawal
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
+ ***
-
-
-
- Show `withdrawals` object
-
+ * **validatorIndex** `string` *required*
- #### `withdrawals` fields
+ index of validator that generated withdrawal
- * **index** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- index of withdrawal
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **address** `string` *required*
- ***
+ recipient address for withdrawal value
- * **validatorIndex** `string` *required*
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- index of validator that generated withdrawal
+ ***
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ * **amount** `string` *required*
- ***
+ value contained in withdrawal
- * **address** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
- recipient address for withdrawal value
+ ***
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ * **additionalProperties** `false`
- ***
+ ***
+
+
- * **amount** `string` *required*
+ * **uncles** `array` *required*
- value contained in withdrawal
+ 32 byte hex value
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **requestsHash** `string`
- ***
-
-
+ EIP-7685 requests hash
- * **uncles** `array` *required*
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- 32 byte hex value
+ ***
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ * **calls** `object or object` *required*
- ***
+ ***
- * **requestsHash** `string`
+
+
+
+ Show Option 1 `Result of call failure` object
+
- EIP-7685 requests hash
+ #### `Result of call failure` fields
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ The error messages are suggestions, and clients might implement different error messages. However, the error codes are enforced by the spec.
- ***
+ **calls** `array` *required*
- *
- **calls** `object or object` *required*
+ The error messages are suggestions, and clients might implement different error messages. However, the error codes are enforced by the spec.
- ***
+ ***
+
- Show Option 1 `Result of call failure` object
+ Show `calls` object
- #### `Result of call failure` fields
+ #### `calls` fields
- The error messages are suggestions, and clients might implement different error messages. However, the error codes are enforced by the spec.
+ * **status** `string` *required*
- **calls** `array` *required*
+ Call Status Failure
- The error messages are suggestions, and clients might implement different error messages. However, the error codes are enforced by the spec.
+ *Match pattern:* `^0x0$`
- ***
+ ***
-
-
-
- Show `calls` object
-
+ * **returnData** `string` *required*
- #### `calls` fields
+ Return data
- * **status** `string` *required*
+ *Match pattern:* `^0x[0-9a-f]*$`
- Call Status Failure
+ ***
- *Match pattern:* `^0x0$`
+ * **gasUsed** `string` *required*
- ***
+ Return gasUsed
- * **returnData** `string` *required*
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- Return data
+ ***
- *Match pattern:* `^0x[0-9a-f]*$`
+ * **error** `object or object` *required*
- ***
+ ***
- * **gasUsed** `string` *required*
+
+
+
+ Show Option 1 `error` object
+
- Return gasUsed
+ #### `error` fields
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ **error** `object` *required*
***
- *
- **error** `object or object` *required*
-
- ***
-
+
- Show Option 1 `error` object
+ Show `error` object
#### `error` fields
- **error** `object` *required*
+ *
- ***
+ * **message** `string` *required*
-
-
-
- Show `error` object
-
+ *Match pattern:* `^execution reverted.*`
- #### `error` fields
+ ***
- *
+ * **additionalProperties** `true`
- * **message** `string` *required*
+ ***
+
+
+
+
- *Match pattern:* `^execution reverted.*`
+
+
+
+ Show Option 2 `error` object
+
- ***
+ #### `error` fields
- * **additionalProperties** `true`
+ **error** `object` *required*
- ***
-
-
-
+ ***
+
- Show Option 2 `error` object
+ Show `error` object
#### `error` fields
- **error** `object` *required*
-
- ***
-
-
-
-
- Show `error` object
-
-
- #### `error` fields
-
- *
+ *
- * **message** `string`
+ * **message** `string`
- *Match pattern:* `^vm execution error.*`
+ *Match pattern:* `^vm execution error.*`
- ***
+ ***
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
+ ***
+
+
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
+ ***
+
+
+
-
-
- Show Option 2 `Result of call success` object
-
+
+
+
+ Show Option 2 `Result of call success` object
+
- #### `Result of call success` fields
+ #### `Result of call success` fields
- **calls** `array` *required*
+ **calls** `array` *required*
- Result of call success
+ Result of call success
- ***
+ ***
-
-
-
- Show `calls` object
-
+
+
+
+ Show `calls` object
+
- #### `calls` fields
+ #### `calls` fields
- * **status** `string` *required*
+ * **status** `string` *required*
- Call Status Success
+ Call Status Success
- *Match pattern:* `^0x1$`
+ *Match pattern:* `^0x1$`
- ***
+ ***
- * **returnData** `string` *required*
+ * **returnData** `string` *required*
- Return data
+ Return data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **gasUsed** `string` *required*
+ * **gasUsed** `string` *required*
- Return gasUsed
+ Return gasUsed
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]{0,15})$`
- ***
+ ***
- * **logs** `array` *required*
+ * **logs** `array` *required*
- log
+ log
- ***
+ ***
-
-
-
- Show `logs` object
-
+
+
+
+ Show `logs` object
+
- #### `logs` fields
+ #### `logs` fields
- * **removed** `boolean`
+ * **removed** `boolean`
- removed
+ removed
- ***
+ ***
- * **logIndex** `string`
+ * **logIndex** `string`
- log index
+ log index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionIndex** `string`
+ * **transactionIndex** `string`
- transaction index
+ transaction index
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **transactionHash** `string` *required*
+ * **transactionHash** `string` *required*
- transaction hash
+ transaction hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockHash** `string`
+ * **blockHash** `string`
- block hash
+ block hash
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **blockNumber** `string`
+ * **blockNumber** `string`
- block number
+ block number
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **blockTimestamp** `string`
+ * **blockTimestamp** `string`
- block timestamp
+ block timestamp
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **address** `string`
+ * **address** `string`
- address
+ address
- *Match pattern:* `^0x[0-9a-fA-F]{40}$`
+ *Match pattern:* `^0x[0-9a-fA-F]{40}$`
- ***
+ ***
- * **data** `string`
+ * **data** `string`
- data
+ data
- *Match pattern:* `^0x[0-9a-f]*$`
+ *Match pattern:* `^0x[0-9a-f]*$`
- ***
+ ***
- * **topics** `array`
+ * **topics** `array`
- 32 hex encoded bytes
+ 32 hex encoded bytes
- *Match pattern:* `^0x[0-9a-f]{64}$`
+ *Match pattern:* `^0x[0-9a-f]{64}$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
+ ***
+
+
- * **additionalProperties** `true`
+ * **additionalProperties** `true`
- ***
-
-
-
+ ***
+
+
-
- ## Errors
+ ## Errors
-
-
- Error code: -32000
-
+
+
+ Error code: -32000
+
- * **code**
+ * **code**
- -32000
- * **message**
+ -32000
+ * **message**
- Invalid request
-
+ Invalid request
+
-
-
- Error code: -32602
-
+
+
+ Error code: -32602
+
- * **code**
+ * **code**
- -32602
- * **message**
+ -32602
+ * **message**
- Missing or invalid parameters
-
+ Missing or invalid parameters
+
-
-
- Error code: -32005
-
+
+
+ Error code: -32005
+
- * **code**
+ * **code**
- -32005
- * **message**
+ -32005
+ * **message**
- Transactions maxFeePerGas is too low
-
+ Transactions maxFeePerGas is too low
+
-
-
- Error code: -32015
-
+
+
+ Error code: -32015
+
- * **code**
+ * **code**
- -32015
- * **message**
+ -32015
+ * **message**
- Execution error
-
+ Execution error
+
-
-
- Error code: -32016
-
+
+
+ Error code: -32016
+
- * **code**
+ * **code**
- -32016
- * **message**
+ -32016
+ * **message**
- Timeout
-
+ Timeout
+
-
-
- Error code: -32603
-
+
+
+ Error code: -32603
+
- * **code**
+ * **code**
- -32603
- * **message**
+ -32603
+ * **message**
- The Ethereum node encountered an internal error
-
+ The Ethereum node encountered an internal error
+
-
-
- Error code: -38010
-
+
+
+ Error code: -38010
+
- * **code**
+ * **code**
- -38010
- * **message**
+ -38010
+ * **message**
- Transactions nonce is too low
-
+ Transactions nonce is too low
+
-
-
- Error code: -38011
-
+
+
+ Error code: -38011
+
- * **code**
+ * **code**
- -38011
- * **message**
+ -38011
+ * **message**
- Transactions nonce is too high
-
+ Transactions nonce is too high
+
-
-
- Error code: -38012
-
+
+
+ Error code: -38012
+
- * **code**
+ * **code**
- -38012
- * **message**
+ -38012
+ * **message**
- Transactions baseFeePerGas is too low
-
+ Transactions baseFeePerGas is too low
+
-
-
- Error code: -38013
-
+
+
+ Error code: -38013
+
- * **code**
+ * **code**
- -38013
- * **message**
+ -38013
+ * **message**
- Not enough gas provided to pay for intrinsic gas for a transaction
-
+ Not enough gas provided to pay for intrinsic gas for a transaction
+
-
-
- Error code: -38014
-
+
+
+ Error code: -38014
+
- * **code**
+ * **code**
- -38014
- * **message**
+ -38014
+ * **message**
- Insufficient funds to pay for gas fees and value for a transaction
-
+ Insufficient funds to pay for gas fees and value for a transaction
+
-
-
- Error code: -38015
-
+
+
+ Error code: -38015
+
- * **code**
+ * **code**
- -38015
- * **message**
+ -38015
+ * **message**
- Block gas limit exceeded by the block's transactions
-
+ Block gas limit exceeded by the block's transactions
+
-
-
- Error code: -38020
-
+
+
+ Error code: -38020
+
- * **code**
+ * **code**
- -38020
- * **message**
+ -38020
+ * **message**
- Block number in sequence did not increase
-
+ Block number in sequence did not increase
+
-
-
- Error code: -38021
-
+
+
+ Error code: -38021
+
- * **code**
+ * **code**
- -38021
- * **message**
+ -38021
+ * **message**
- Block timestamp in sequence did not increase or stay the same
-
+ Block timestamp in sequence did not increase or stay the same
+
-
-
- Error code: -38022
-
+
+
+ Error code: -38022
+
- * **code**
+ * **code**
- -38022
- * **message**
+ -38022
+ * **message**
- MovePrecompileToAddress referenced itself in replacement
-
+ MovePrecompileToAddress referenced itself in replacement
+
-
-
- Error code: -38023
-
+
+
+ Error code: -38023
+
- * **code**
+ * **code**
- -38023
- * **message**
+ -38023
+ * **message**
- Multiple MovePrecompileToAddress referencing the same address to replace
-
+ Multiple MovePrecompileToAddress referencing the same address to replace
+
-
-
- Error code: -38024
-
+
+
+ Error code: -38024
+
- * **code**
+ * **code**
- -38024
- * **message**
+ -38024
+ * **message**
- Sender is not an EOA
-
+ Sender is not an EOA
+
-
-
- Error code: -38025
-
+
+
+ Error code: -38025
+
- * **code**
+ * **code**
- -38025
- * **message**
+ -38025
+ * **message**
- Max init code size exceeded
-
+ Max init code size exceeded
+
-
-
- Error code: -38026
-
+
+
+ Error code: -38026
+
- * **code**
+ * **code**
- -38026
- * **message**
+ -38026
+ * **message**
- Client adjustable limit exceeded
-
-
-
+ Client adjustable limit exceeded
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_syncing.mdx b/packages/example-site/docs/api-reference/methods/eth_syncing.mdx
index dbb84ea..07b7b18 100644
--- a/packages/example-site/docs/api-reference/methods/eth_syncing.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_syncing.mdx
@@ -5,127 +5,123 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_syncing
+ # eth\_syncing
- Returns an object with data about the sync status or false.
+ Returns an object with data about the sync status or false.
-
- ## Parameters (by position)
+ ## Parameters (by position)
- This method does not accept any parameters.
-
+ This method does not accept any parameters.
-
- ## Result
+ ## Result
-
- **Syncing status** `object or unknown`
+ **Syncing status** `object or unknown`
- ***
+ ***
-
-
- Show Option 1 `Syncing progress` object
-
+
+
+
+ Show Option 1 `Syncing progress` object
+
- #### `Syncing progress` fields
+ #### `Syncing progress` fields
- **Syncing status** `object`
+ **Syncing status** `object`
- Syncing progress
+ Syncing progress
- ***
+ ***
-
-
-
- Show `Syncing status` object
-
+
+
+
+ Show `Syncing status` object
+
- #### `Syncing status` fields
+ #### `Syncing status` fields
- * **startingBlock** `string`
+ * **startingBlock** `string`
- Starting block
+ Starting block
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **currentBlock** `string`
+ * **currentBlock** `string`
- Current block
+ Current block
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **highestBlock** `string`
+ * **highestBlock** `string`
- Highest block
+ Highest block
- *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
+ *Match pattern:* `^0x(0|[1-9a-f][0-9a-f]*)$`
- ***
+ ***
- * **additionalProperties** `false`
+ * **additionalProperties** `false`
- ***
-
-
+ ***
+
+
+
-
-
- Show Option 2 `Not syncing` boolean
-
+
+
+
+ Show Option 2 `Not syncing` boolean
+
- #### `Not syncing` fields
+ #### `Not syncing` fields
- Should always return false if not syncing.
+ Should always return false if not syncing.
- **Syncing status** `boolean`
+ **Syncing status** `boolean`
- Should always return false if not syncing.
+ Should always return false if not syncing.
- ***
-
-
-
-
-
- ## Examples
-
-
-
- eth\_syncing example
-
-
- #### Request
-
- ```json
- {
- "params": []
- }
- ```
-
- #### Response
-
- ```json
- {
- "startingBlock": "0x0",
- "currentBlock": "0x1518",
- "highestBlock": "0x9567a3"
- }
- ```
-
-
+ ***
+
+
+
+ ## Examples
+
+
+
+
+ eth\_syncing example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": []
+ }
+ ```
+
+ #### Response
+
+ ```json
+ {
+ "startingBlock": "0x0",
+ "currentBlock": "0x1518",
+ "highestBlock": "0x9567a3"
+ }
+ ```
+
diff --git a/packages/example-site/docs/api-reference/methods/eth_uninstallFilter.mdx b/packages/example-site/docs/api-reference/methods/eth_uninstallFilter.mdx
index a784d0b..25b417a 100644
--- a/packages/example-site/docs/api-reference/methods/eth_uninstallFilter.mdx
+++ b/packages/example-site/docs/api-reference/methods/eth_uninstallFilter.mdx
@@ -5,57 +5,51 @@ hide_table_of_contents: true
description: ""
---
-import {TwoColumnLayout, InteractiveRequest, ResponseExample} from 'open-rpc-docusaurus-plugin-beta/components';
+import {TwoColumnLayout, InteractiveRequest, ResponseExample} from '@open-rpc/docusaurus-plugin/components';
import { useState } from 'react';
}>
-
- # eth\_uninstallFilter
-
-
+ # eth\_uninstallFilter
- Uninstalls a filter with given id.
-
- ## Parameters (by position)
- **Filter identifier** `string` *required*
+ Uninstalls a filter with given id.
- ***
-
+ ## Parameters (by position)
-
- ## Result
+ **Filter identifier** `string` *required*
- **Success** `boolean`
+ ***
- ***
-
+ ## Result
-
- ## Examples
+ **Success** `boolean`
-
-
- eth\_uninstallFilter example
-
+ ***
- #### Request
+ ## Examples
- ```json
- {
- "params": [
- "0x01"
- ]
- }
- ```
-
- #### Response
-
- ```json
- true
- ```
-
-
+
+
+
+ eth\_uninstallFilter example
+
+
+ #### Request
+
+ ```json
+ {
+ "params": [
+ "0x01"
+ ]
+ }
+ ```
+
+ #### Response
+
+ ```json
+ true
+ ```
+
diff --git a/packages/example-site/docusaurus.config.ts b/packages/example-site/docusaurus.config.ts
index a34ec86..fb2b261 100644
--- a/packages/example-site/docusaurus.config.ts
+++ b/packages/example-site/docusaurus.config.ts
@@ -93,6 +93,7 @@ const config: Config = {
label: 'Tutorial',
},
{to: '/blog', label: 'Blog', position: 'left'},
+ {to: '/docs/api-reference', label: 'API Reference', position: 'left'},
{
href: 'https://github.com/facebook/docusaurus',
label: 'GitHub',
diff --git a/packages/example-site/sample.md b/packages/example-site/sample.md
new file mode 100644
index 0000000..f13b834
--- /dev/null
+++ b/packages/example-site/sample.md
@@ -0,0 +1,290 @@
+---
+# GENERATED DOCUMENTATION - DO NOT EDIT THIS FILE
+title: "eth_call"
+hide_table_of_contents: true
+description: ""
+---
+
+# eth_call
+
+Executes a new message call immediately without creating a transaction on the block chain.
+
+## Parameters (by position)
+
+**Transaction** `object` _required_
+
+Transaction object generic to all types
+
+---
+
+
+
+ Show `Transaction` object
+
+
+### `Transaction` fields
+
+- **type** `string`
+
+ type
+
+ _Match pattern:_ `^0x([0-9a-fA-F]?){1,2}$`
+
+- **nonce** `string`
+
+ nonce
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+- **to** `null or string`
+
+
+
+ Show Option 1 `Contract Creation (null)` null
+
+
+ **to** `null`
+
+ Contract Creation (null)
+
+
+
+
+ Show Option 2 `Address` string
+
+
+ **to** `string`
+
+ Address
+
+ _Match pattern:_ `^0x[0-9a-fA-F]{40}$`
+
+
+- **from** `string`
+
+ from address
+
+ _Match pattern:_ `^0x[0-9a-fA-F]{40}$`
+
+- **gas** `string`
+
+ gas limit
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+- **value** `string`
+
+ value
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+- **input** `string`
+
+ input data
+
+ _Match pattern:_ `^0x[0-9a-f]*$`
+
+- **gasPrice** `string`
+
+ The gas price willing to be paid by the sender in wei
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+- **maxPriorityFeePerGas** `string`
+
+ Maximum fee per gas the sender is willing to pay to miners in wei
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+- **maxFeePerGas** `string`
+
+ The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+- **maxFeePerBlobGas** `string`
+
+ The maximum total fee per gas the sender is willing to pay for blob gas in wei
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+- **accessList** `array`
+
+ EIP-2930 access list
+
+
+
+ Show `accessList` object
+
+
+ EIP-2930 access list
+
+ - **address** `string` _required_
+
+ hex encoded address
+
+ _Match pattern:_ `^0x[0-9a-fA-F]{40}$`
+
+ - **storageKeys** `array` _required_
+
+ 32 byte hex value
+
+ _Match pattern:_ `^0x[0-9a-f]{64}$`
+
+ - **additionalProperties** `false`
+
+
+- **blobVersionedHashes** `array`
+
+ List of versioned blob hashes associated with the transaction's EIP-4844 data blobs.
+
+ _Match pattern:_ `^0x[0-9a-f]{64}$`
+
+- **blobs** `array`
+
+ Raw blob data.
+
+ _Match pattern:_ `^0x[0-9a-f]*$`
+
+- **chainId** `string`
+
+ Chain ID that this transaction is valid on.
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+- **authorizationList** `array`
+
+ EIP-7702 authorization list
+
+
+
+ Show `authorizationList` object
+
+
+ EIP-7702 authorization list
+
+ - **chainId** `string` _required_
+
+ Chain ID on which this transaction is valid
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+ - **nonce** `string` _required_
+
+ nonce
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+ - **address** `string` _required_
+
+ hex encoded address
+
+ _Match pattern:_ `^0x[0-9a-fA-F]{40}$`
+
+ - **yParity** `string` _required_
+
+ The parity (0 for even, 1 for odd) of the y-value of the secp256k1 signature
+
+ _Match pattern:_ `^0x([0-9a-fA-F]?){1,2}$`
+
+ - **r** `string` _required_
+
+ r
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+
+ - **s** `string` _required_
+
+ s
+
+ _Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]{0,63})$`
+
+ - **additionalProperties** `true`
+
+
+- **additionalProperties** `false`
+
+
+---
+
+**Block** `string or string or string`
+
+
+
+ Show Option 1 `Block number` string
+
+
+**Block** `string`
+
+Block number
+
+_Match pattern:_ `^0x(0|[1-9a-f][0-9a-f]*)$`
+
+
+
+
+
+ Show Option 2 `Block tag` string
+
+
+`earliest`: The lowest numbered block the client has available; `finalized`: The most recent crypto-economically secure block, cannot be re-orged outside of manual intervention driven by community coordination; `safe`: The most recent block that is safe from re-orgs under honest majority and certain synchronicity assumptions; `latest`: The most recent block in the canonical chain observed by the client, this block may be re-orged out of the canonical chain even under healthy/normal conditions; `pending`: A sample next block built by the client on top of `latest` and containing the set of transactions usually taken from local mempool. Before the merge transition is finalized, any call querying for `finalized` or `safe` block MUST be responded to with `-39001: Unknown block` error
+
+**Block** `string`
+
+_Allowed values:_ `earliest` `finalized` `safe` `latest` `pending`
+
+
+
+
+
+ Show Option 3 `Block hash` string
+
+
+**Block** `string`
+
+Block hash
+
+_Match pattern:_ `^0x[0-9a-f]{64}$`
+
+
+
+---
+
+## Result
+
+**Return data** `string`
+
+hex encoded bytes
+
+_Match pattern:_ `^0x[0-9a-f]*$`
+
+---
+
+## Examples
+
+
+
+ eth\_call example
+
+
+### Request
+
+```json
+{
+ "params": [
+ {
+ "to": "0x69498dd54bd25aa0c886cf1f8b8ae0856d55ff13",
+ "value": "0x1"
+ },
+ "latest"
+ ]
+}
+```
+
+### Response
+
+```json
+"0x"
+```
+
+
diff --git a/packages/markdown-generator/package.json b/packages/markdown-generator/package.json
index 31ed0ca..bb1cdd6 100644
--- a/packages/markdown-generator/package.json
+++ b/packages/markdown-generator/package.json
@@ -43,6 +43,9 @@
"@types/mdast": "^4.0.4",
"mdast-util-from-markdown": "^2.0.2",
"mdast-util-frontmatter": "^2.0.1",
+ "mdast-util-gfm": "^3.1.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-markdown": "^2.1.0",
"micromark-extension-gfm": "^3.0.0"
}
}
\ No newline at end of file
diff --git a/packages/markdown-generator/src/cli.ts b/packages/markdown-generator/src/cli.ts
index e07639b..8529635 100644
--- a/packages/markdown-generator/src/cli.ts
+++ b/packages/markdown-generator/src/cli.ts
@@ -3,7 +3,12 @@
import { parseArgs } from "node:util";
import path from "node:path";
import { renderDocumentToMarkdownFiles } from "./lib";
-import { identityEdits, identitySchemaEdits } from "./schema";
+import {
+ identityEdits,
+ identitySchemaEdits,
+ markdownSchemaEdits,
+ markdownEdits,
+} from "./schema";
import type { Edits, SchemaEdits } from "./type";
const HELP = `
@@ -51,10 +56,16 @@ async function main() {
const file = Bun.file(resolvedDocPath);
const document = await file.json();
- // Load custom edits if provided
let edits: Edits = identityEdits;
let schemaEdits: SchemaEdits = identitySchemaEdits;
+ // if markdownType is md, use markdownSchemaEdits and markdownEdits
+ if (markdownType === "md") {
+ schemaEdits = markdownSchemaEdits;
+ edits = markdownEdits;
+ }
+ // Load custom edits if provided
+
if (values.custom) {
const customPath = path.resolve(values.custom);
const customModule = await import(customPath);
@@ -69,8 +80,8 @@ async function main() {
await renderDocumentToMarkdownFiles(
methodDir,
document,
- edits,
schemaEdits,
+ edits,
markdownType,
);
diff --git a/packages/markdown-generator/src/fixtures/comprehensive.test.ts b/packages/markdown-generator/src/fixtures/comprehensive.test.ts
index cbef99e..660ece0 100644
--- a/packages/markdown-generator/src/fixtures/comprehensive.test.ts
+++ b/packages/markdown-generator/src/fixtures/comprehensive.test.ts
@@ -46,8 +46,8 @@ describe("renderMethodsToMarkdown", () => {
it("should return array of MethodToMarkdown objects for all methods", async () => {
const results = await renderMethodsToMarkdown(
testDoc,
- identityEdits,
identitySchemaEdits,
+ identityEdits,
);
expect(Array.isArray(results)).toBe(true);
@@ -57,8 +57,8 @@ describe("renderMethodsToMarkdown", () => {
it("should produce objects with methodName and markdown properties", async () => {
const results = await renderMethodsToMarkdown(
testDoc,
- identityEdits,
identitySchemaEdits,
+ identityEdits,
);
for (const result of results) {
@@ -74,8 +74,8 @@ describe("renderMethodsToMarkdown", () => {
it("should include frontmatter in markdown output", async () => {
const results = await renderMethodsToMarkdown(
testDoc,
- identityEdits,
identitySchemaEdits,
+ identityEdits,
);
for (const result of results) {
@@ -89,8 +89,8 @@ describe("renderMethodsToMarkdown", () => {
it("should process all 25 methods from fixture", async () => {
const results = await renderMethodsToMarkdown(
testDoc,
- identityEdits,
identitySchemaEdits,
+ identityEdits,
);
const methodNames = results.map((r) => r.methodName);
diff --git a/packages/markdown-generator/src/index.ts b/packages/markdown-generator/src/index.ts
index 1aa9e51..4facd38 100644
--- a/packages/markdown-generator/src/index.ts
+++ b/packages/markdown-generator/src/index.ts
@@ -3,5 +3,10 @@ export {
renderDocumentToMarkdownFiles,
renderIndex,
} from "./lib";
-export { identityEdits, identitySchemaEdits } from "./schema";
+export {
+ identityEdits,
+ identitySchemaEdits,
+ markdownEdits,
+ markdownSchemaEdits,
+} from "./schema";
export * from "./type";
diff --git a/packages/markdown-generator/src/lib.ts b/packages/markdown-generator/src/lib.ts
index d7e9873..d89e662 100644
--- a/packages/markdown-generator/src/lib.ts
+++ b/packages/markdown-generator/src/lib.ts
@@ -40,10 +40,14 @@ function escapeYaml(str: string): string {
return str.replace(/"/g, '\\"').replace(/\n/g, " ");
}
+function postProcessMarkdown(markdown: string): string {
+ return markdown;
+}
+
export async function renderMethodsToMarkdown(
document: OpenrpcDocument,
+ schemaEdits: SchemaEdits,
edits: Edits,
- schemaEdits: SchemaEdits = identitySchemaEdits,
): Promise
{
const dereferencedDocument = await dereferenceDocument(document);
const parsedDocument = await parseOpenRPCDocument(dereferencedDocument);
@@ -60,9 +64,15 @@ export async function renderMethodsToMarkdown(
};
return {
methodName: (method as DereffedMethodObject).name,
- markdown: toMarkdown(rootDocument, {
- extensions: [gfmToMarkdown(), mdxToMarkdown(), frontmatterToMarkdown()],
- }),
+ markdown: postProcessMarkdown(
+ toMarkdown(rootDocument, {
+ extensions: [
+ gfmToMarkdown(),
+ mdxToMarkdown(),
+ frontmatterToMarkdown(),
+ ],
+ }),
+ ),
};
});
}
@@ -70,11 +80,11 @@ export async function renderMethodsToMarkdown(
export async function renderDocumentToMarkdownFiles(
methodsDir: string,
document: OpenrpcDocument,
+ schemaEdits: SchemaEdits,
edits: Edits,
- _schemaEdits: SchemaEdits,
markdownType: "mdx" | "md",
): Promise {
- const methods = await renderMethodsToMarkdown(document, edits, _schemaEdits);
+ const methods = await renderMethodsToMarkdown(document, schemaEdits, edits);
await Promise.all(
methods.map(async (method) => {
fs.writeFile(
diff --git a/packages/markdown-generator/src/schema.test.ts b/packages/markdown-generator/src/schema.test.ts
index 19c4a1d..de8c5c9 100644
--- a/packages/markdown-generator/src/schema.test.ts
+++ b/packages/markdown-generator/src/schema.test.ts
@@ -1259,6 +1259,7 @@ describe("schema", () => {
],
"by-name",
identitySchemaEdits,
+ identityEdits,
);
const root: Root = {
type: "root",
diff --git a/packages/markdown-generator/src/schema.ts b/packages/markdown-generator/src/schema.ts
index 6eaa892..20a2d40 100644
--- a/packages/markdown-generator/src/schema.ts
+++ b/packages/markdown-generator/src/schema.ts
@@ -4,14 +4,16 @@ import type {
MethodObjectExamples,
ExamplePairingOrReference,
MethodObjectParamStructure,
- MethodObjectErrors,
ErrorOrReference,
+ SimpleTypes,
} from "@open-rpc/meta-schema";
import type {
ContentContainerDescriptor,
DereffedMethodObject,
+ DereffedMethodObjectErrorsWithGroup,
DereffedMethodObjectResult,
Edits,
+ ErrorGroupItem,
NoRefs,
OpenRPCMdContent,
SchemaEdits,
@@ -29,25 +31,74 @@ import { gfm } from "micromark-extension-gfm";
import { gfmFromMarkdown } from "mdast-util-gfm";
export const identitySchemaEdits: SchemaEdits = {
- editSchemaNumber: (content, _schemaNumber) => content,
- editSchemaString: (content, _text) => content,
- editSchemaAnyOf: (content, _anyOf) => content,
- editSchemaOneOf: (content, _oneOf) => content,
- editSchemaAllOf: (content, _allOf) => content,
+ editSchemaOfTypes: (content, _schema) => content,
+ editSchemaBoolean: (content, _schema) => content,
+ editSchemaNull: (content) => content,
+ editSchemaPrimitive: (content, _schema) => content,
+ editSchemaObject: (content, _schema) => content,
+ editSchemaOfType: (content, _schema) => content,
+};
+
+const markdownListify = (content: OpenRPCMdContent[]): OpenRPCMdContent[] => {
+ return [
+ {
+ type: "list",
+ ordered: false,
+ spread: true,
+ children: [
+ {
+ type: "listItem",
+ spread: true,
+ children: content,
+ },
+ ],
+ },
+ ];
+};
+export const markdownSchemaEdits: SchemaEdits = {
+ ...identitySchemaEdits,
+ editSchemaObject: (content, _schema) => {
+ return markdownListify(getOuterDivChildren(content));
+ },
+ editSchemaOfType: (content, _schema) => {
+ return markdownListify(getOuterDivChildren(content));
+ },
};
export const identityEdits: Edits = {
+ editMethodParent: (content, _method) =>
+ content as RootContent[] | OpenRPCMdContent[],
editMethod: (content, _method) => content,
- editMethodParam: (content, _methodParam) => content,
+
editMethodParamSchema: (content, _methodParamSchema, _methodParam) => content,
editMethodParamSchemaParent: (content, _methodParamSchema, _methodParam) =>
content,
+ editMethodParamsParent: (content, _methodParams) => content,
+ editMethodParam: (content, _methodParam) => content,
+
editMethodResult: (content, _methodResult) => content,
editMethodResultParent: (content, _methodResult) => content,
+
editMethodResultSchema: (content, _methodResultSchema, _methodResult) =>
content,
editMethodResultSchemaParent: (content, _methodResultSchema, _methodResult) =>
content,
+ editMethodExample: (content, _example) => content,
+ editMethodExampleParent: (content, _examples) => content,
+
+ editMethodError: (content, _errors) => content,
+ editMethodErrorsParent: (content, _errors) => content,
+};
+
+// Does a basic transformation from mdx to md specific formatting
+export const markdownEdits: Edits = {
+ ...identityEdits,
+ editMethodExample: (content, _example) => {
+ return markdownListify(getOuterDivChildren(content));
+ },
+ editMethodError: (content, _error) => {
+ return markdownListify(content);
+ },
};
export interface DetailData {
@@ -57,12 +108,6 @@ export interface DetailData {
summaryType: string;
summaryContent: (BlockContent | DefinitionContent | MdxJsxFlowElement)[];
}
-export interface ErrorGroupItem extends NoRefs {
- "x-error-category"?: string;
-}
-
-export type ErrorGroups = ErrorGroupItem[];
-
/* Render heading helpers */
export function objectFieldList(
@@ -119,6 +164,23 @@ const parseMarkdownToNodes = (markdown: string): OpenRPCMdContent[] => {
return tree.children as OpenRPCMdContent[];
};
+function divify(content: OpenRPCMdContent[]): OpenRPCMdContent[] {
+ return [
+ {
+ type: "mdxJsxFlowElement",
+ name: "div",
+ attributes: [],
+ children: content,
+ },
+ ];
+}
+
+function getOuterDivChildren(content: OpenRPCMdContent[]): OpenRPCMdContent[] {
+ if (content[0]?.type === "mdxJsxFlowElement" && content[0]?.name === "div") {
+ return content[0]?.children as OpenRPCMdContent[];
+ }
+ return [];
+}
// Add this new helper function
export function simpleDetails(
summaryText: string,
@@ -291,21 +353,24 @@ export function renderAtomicSchema(
| ContentContainerDescriptor
| undefined = undefined,
schema: NoRefs,
- _editSchema: SchemaEdits,
+ editSchema: SchemaEdits,
): OpenRPCMdContent[] {
const container = {
...contentContainerDescriptor,
constraintsSchema: schema,
} as ContentContainerDescriptor;
if (typeof schema == "boolean")
- return renderAtomicHelper(
- contentContainerDescriptor?.name ?? "",
- schema.toString(),
- "",
- contentContainerDescriptor ?? {},
+ return editSchema.editSchemaBoolean(
+ renderAtomicHelper(
+ contentContainerDescriptor?.name ?? "",
+ schema.toString(),
+ "",
+ contentContainerDescriptor ?? {},
+ ),
+ schema,
);
if (typeof schema !== "object" || schema === null) {
- return [];
+ return editSchema.editSchemaNull([]);
}
switch (schema.type) {
@@ -314,13 +379,16 @@ export function renderAtomicSchema(
case "string":
case "boolean":
case "null":
- return renderAtomicHelper(
- contentContainerDescriptor?.name ?? schema.title ?? "",
- contentContainerDescriptor?.isArray
- ? `array<${schema.type}>`
- : (schema.type ?? "null"),
- getSchemaDescription(container ?? {}, schema),
- container ?? {},
+ return editSchema.editSchemaPrimitive(
+ renderAtomicHelper(
+ contentContainerDescriptor?.name ?? schema.title ?? "",
+ contentContainerDescriptor?.isArray
+ ? `array<${schema.type as SimpleTypes}>`
+ : (schema.type ?? "null"),
+ getSchemaDescription(container ?? {}, schema),
+ container ?? {},
+ ),
+ schema,
);
}
return [];
@@ -343,6 +411,7 @@ export function renderExample(
example: NoRefs,
paramStructure: MethodObjectParamStructure,
_editSchema: SchemaEdits,
+ edits: Edits,
): OpenRPCMdContent[] {
if (!example || typeof example !== "object") return [];
@@ -396,39 +465,34 @@ export function renderExample(
value: JSON.stringify(responseJson, null, 2),
},
);
-
- return [simpleDetails(example.name, children)];
+ const content = divify([simpleDetails(example.name, children)]);
+ return edits.editMethodExample(content, example);
}
export function renderExamples(
examples: NoRefs | undefined = undefined,
paramStructure: MethodObjectParamStructure = "either",
- editSchema: SchemaEdits,
+ _editSchema: SchemaEdits,
+ edits: Edits,
): OpenRPCMdContent[] {
- if (examples === undefined) return [];
+ if (examples === undefined || examples.length === 0) return [];
const exampleContent = examples.map((example) => {
- return renderExample(example, paramStructure, editSchema);
+ return renderExample(example, paramStructure, _editSchema, edits);
});
return [
{
- type: "mdxJsxFlowElement",
- name: "div",
- attributes: [],
- children: [
- {
- type: "heading",
- depth: 2,
- children: [{ type: "text", value: "Examples" }],
- },
- ...exampleContent.flat(),
- ],
+ type: "heading",
+ depth: 2,
+ children: [{ type: "text", value: "Examples" }],
},
+ ...exampleContent.flat(),
];
}
export function renderError(
error: NoRefs,
_editSchema: SchemaEdits,
+ edits: Edits,
): OpenRPCMdContent[] {
if (!error || typeof error !== "object") return [];
@@ -530,54 +594,62 @@ export function renderError(
children: listItems,
});
- return [simpleDetails(`Error code: ${error.code}`, children)];
+ return edits.editMethodError(
+ [simpleDetails(`Error code: ${error.code}`, children)],
+ error,
+ );
}
export function renderErrors(
- errors: NoRefs | undefined,
+ errors: DereffedMethodObjectErrorsWithGroup | undefined,
editSchema: SchemaEdits,
+ edits: Edits,
): OpenRPCMdContent[] {
- if (errors === undefined) return [];
- return [
+ if (errors === undefined || errors.length === 0) return [];
+ const errorContent = [
{
- type: "mdxJsxFlowElement",
- name: "div",
- attributes: [],
- children: [
- {
- type: "heading",
- depth: 2,
- children: [{ type: "text", value: "Errors" }],
- },
- ...errors.map((error) => renderError(error, editSchema)).flat(),
- ],
+ type: "heading",
+ depth: 2,
+ children: [{ type: "text", value: "Errors" }],
},
+ ...errors.map((error) => renderError(error, editSchema, edits)).flat(),
];
+ return edits.editMethodErrorsParent(
+ errorContent as OpenRPCMdContent[],
+ errors,
+ );
}
export function renderResults(
result: DereffedMethodObjectResult | undefined,
editSchema: SchemaEdits,
+ edits: Edits,
): OpenRPCMdContent[] {
- return [
- {
- type: "mdxJsxFlowElement",
- name: "div",
- attributes: [],
- children: [
+ const resultContent = result
+ ? renderSchema(
+ { ...result, constraintsSchema: result?.schema },
+ result?.schema,
+ editSchema,
+ )
+ : [
{
- type: "heading",
- depth: 2,
- children: [{ type: "text", value: "Result" }],
+ type: "paragraph",
+ children: [
+ { type: "text", value: "No result returned/notification" },
+ ],
},
- ...renderSchema(
- { ...result, constraintsSchema: result?.schema },
- result?.schema,
- editSchema,
- ),
- ],
- },
- ];
+ ];
+ return edits.editMethodResultParent(
+ [
+ {
+ type: "heading",
+ depth: 2,
+ children: [{ type: "text", value: "Result" }],
+ },
+ ...edits.editMethodResult(resultContent as OpenRPCMdContent[], result),
+ ],
+ result,
+ );
}
function escapeYaml(str: string): string {
@@ -614,15 +686,13 @@ export function renderMethod(
editSchema: SchemaEdits,
edits: Edits,
): RootContent[] {
- let content = renderParams(
+ const content = renderParams(
method.params,
method.paramStructure ?? "by-position",
editSchema,
+ edits,
);
- if (edits.editMethodParamsParent)
- content = edits.editMethodParamsParent(content, method.params);
-
const methodFrontMatterContent: (OpenRPCMdContent | RootContent)[] = [
...renderFrontMatter(
method.name,
@@ -633,48 +703,53 @@ export function renderMethod(
const methodContent: (OpenRPCMdContent | RootContent)[] = [
{
- type: "mdxJsxFlowElement",
- name: "div",
- attributes: [],
- children: [
- {
- type: "heading",
- depth: 1,
- children: [{ type: "text", value: `${method.name}` }],
- },
- {
- type: "paragraph",
- children: [{ type: "text", value: method.description ?? "" }],
- },
- ...parseMarkdownToNodes(method.summary ?? ""),
- ...content,
- ...renderResults(method.result, editSchema),
- ...renderErrors(method.errors, editSchema),
- ...renderErrors(method["x-error-group"]?.flat(), editSchema),
- ...renderExamples(
- method.examples,
- method.paramStructure ?? "either",
- editSchema,
- ),
- ],
+ type: "heading",
+ depth: 1,
+ children: [{ type: "text", value: `${method.name}` }],
},
+ {
+ type: "paragraph",
+ children: [{ type: "text", value: method.description ?? "" }],
+ },
+ ...parseMarkdownToNodes(method.summary ?? ""),
+ ...content,
+ ...renderResults(method.result, editSchema, edits),
+ ...renderErrors(
+ [...(method.errors ?? []), ...(method["x-error-group"]?.flat() ?? [])],
+ editSchema,
+ edits,
+ ),
+ ...edits.editMethodExampleParent(
+ renderExamples(
+ method.examples,
+ method.paramStructure ?? "either",
+ editSchema,
+ edits,
+ ),
+ method.examples || [],
+ ),
];
- return [
- ...methodFrontMatterContent,
- ...(edits.editMethod?.(methodContent, method) ?? methodContent),
- ];
+
+ return edits.editMethodParent(
+ [...methodFrontMatterContent, ...edits.editMethod(methodContent, method)],
+ method,
+ );
}
export function renderParams(
params: ContentDescriptorObject[],
paramStructure: MethodObjectParamStructure,
editSchema: SchemaEdits,
+ edits: Edits,
): OpenRPCMdContent[] {
const parameterContent = params
.map((param) => {
if (isComplexSchema(param.schema)) {
// TODO: add title to param
- return renderSchema(param, param.schema, editSchema);
+ return edits.editMethodParam(
+ renderSchema(param, param.schema, editSchema),
+ param,
+ );
}
if (param.schema === null || param.schema === undefined) return [];
if (typeof param.schema === "boolean") return [];
@@ -683,10 +758,13 @@ export function renderParams(
typeof param.schema === "object" &&
param.schema !== null
) {
- return renderAtomicHelper(
- param.name,
- param.schema.type as string,
- getParamDescription(param),
+ return edits.editMethodParam(
+ renderAtomicHelper(
+ param.name,
+ param.schema.type as string,
+ getParamDescription(param),
+ param,
+ ),
param,
);
}
@@ -706,23 +784,19 @@ export function renderParams(
paramStructure === "either"
? "by name or by position"
: paramStructure.split("-").join(" ");
- return [
- {
- type: "mdxJsxFlowElement",
- name: "div",
- attributes: [],
- children: [
- {
- type: "heading",
- depth: 2,
- children: [
- { type: "text", value: `Parameters (${paramStructureLabel})` },
- ],
- },
- ...parameterContent,
- ],
- },
- ];
+ return edits.editMethodParamsParent(
+ [
+ {
+ type: "heading",
+ depth: 2,
+ children: [
+ { type: "text", value: `Parameters (${paramStructureLabel})` },
+ ],
+ },
+ ...parameterContent,
+ ],
+ params,
+ );
}
const requiredField = (
@@ -801,12 +875,7 @@ export function renderObjectSchema(
getSchemaDescription(container ?? {}, schema),
container ?? {},
),
- {
- type: "mdxJsxFlowElement",
- name: "div",
- attributes: [],
- children: result as OpenRPCMdContent[],
- },
+ ...editSchema.editSchemaObject(divify(result), schema),
];
}
@@ -820,22 +889,21 @@ export function renderOfTypeSchema(
if (schema === null || schema === undefined) return [];
// TODO handle arrays
if (!(schema[ofType] || Array.isArray(schema[ofType]))) return [];
- if (typeof schema === "object" && schema !== null) {
- const allofChildren: OpenRPCMdContent[][] = schema[ofType].map(
- (schema, idx: number) => {
- const schemaContent = renderSchema(
- {
- ...contentDescriptor,
- constraintsSchema: schema,
- },
- schema,
- editSchema,
- );
- if (typeof schema !== "object" || schema == null) {
- return schemaContent;
- }
-
- return [
+ const allofChildren: OpenRPCMdContent[][] = schema[ofType].map(
+ (schema, idx: number) => {
+ const schemaContent = renderSchema(
+ {
+ ...contentDescriptor,
+ constraintsSchema: schema,
+ },
+ schema,
+ editSchema,
+ );
+ if (typeof schema !== "object" || schema == null) {
+ return schemaContent;
+ }
+ return editSchema.editSchemaOfType(
+ divify([
details({
summaryTitle: `Show Option ${idx + 1}`,
summaryCode:
@@ -849,33 +917,30 @@ export function renderOfTypeSchema(
detailDescription:
schema.description ?? contentDescriptor?.description ?? "",
}),
- ];
- },
- );
- const container = {
- ...contentDescriptor,
- constraintsSchema: contentDescriptor?.schema,
- } as ContentContainerDescriptor;
- return [
- {
- type: "mdxJsxFlowElement",
- name: "div",
- attributes: [],
- children: [
- ...renderAtomicHelper(
- container?.name ?? "",
- // TODO schema can also just be a bool
- `${schema[ofType]?.map((schema) => labelTypeStringForSchema(schema as NoRefs)).join(" or ")}`,
- // NOTE special case for OneOfs can only be one of the 2 options
- container?.description ?? container?.summary ?? "",
- container ?? {},
- ),
- ...(allofChildren.flat() as OpenRPCMdContent[]),
- ],
- },
- ];
- }
- return [];
+ ]),
+ schema,
+ );
+ },
+ );
+ const container = {
+ ...contentDescriptor,
+ constraintsSchema: contentDescriptor?.schema,
+ } as ContentContainerDescriptor;
+
+ return editSchema.editSchemaOfTypes(
+ [
+ ...renderAtomicHelper(
+ container?.name ?? "",
+ // TODO schema can also just be a bool
+ `${schema[ofType]?.map((schema) => labelTypeStringForSchema(schema as NoRefs)).join(" or ")}`,
+ // NOTE special case for OneOfs can only be one of the 2 options
+ container?.description ?? container?.summary ?? "",
+ container ?? {},
+ ),
+ ...(allofChildren.flat() as OpenRPCMdContent[]),
+ ],
+ schema[ofType],
+ );
}
export function renderSchema(
@@ -923,13 +988,5 @@ export function renderSchema(
return renderObjectSchema(contentDescriptor, schema, editSchema);
}
}
-
- return [
- {
- type: "mdxJsxFlowElement",
- name: "div",
- attributes: [],
- children: children as OpenRPCMdContent[],
- },
- ];
+ return children;
}
diff --git a/packages/markdown-generator/src/type.ts b/packages/markdown-generator/src/type.ts
index 359366a..569ebbc 100644
--- a/packages/markdown-generator/src/type.ts
+++ b/packages/markdown-generator/src/type.ts
@@ -7,8 +7,12 @@ import type {
ContentDescriptorOrReference,
JSONSchema,
ContentDescriptorObject,
+ MethodObjectExamples,
+ ExamplePairingOrReference,
+ MethodObjectErrors,
+ ErrorOrReference,
} from "@open-rpc/meta-schema";
-import type { BlockContent, DefinitionContent, Root, RootContent } from "mdast";
+import type { BlockContent, DefinitionContent, RootContent } from "mdast";
import type { MdxFlowExpression, MdxJsxFlowElement } from "mdast-util-mdx";
export type RefNode = { $ref: string };
@@ -25,6 +29,11 @@ export type NoRefs =
? { [K in keyof T]: NoRefs }
: // Primitives (string, number, etc.) are left as-is
T;
+export interface ErrorGroupItem extends NoRefs {
+ "x-error-category"?: string;
+}
+
+export type ErrorGroups = ErrorGroupItem[];
export type DereffedOpenrpcDocument = NoRefs;
export type DereffedMethodObject = NoRefs;
@@ -32,8 +41,14 @@ export type DereffedMethodObjectParams = NoRefs;
export type DereffedMethodObjectParam = NoRefs;
export type DereffedMethodObjectParamSchema = NoRefs;
export type DereffedMethodObjectResultSchema = NoRefs;
+export type DereffedMethodObjectExamples = NoRefs;
+export type DereffedMethodObjectExample = NoRefs;
export type DereffedMethods = NoRefs;
export type DereffedMethodObjectResult = NoRefs;
+export type DereffedMethodObjectErrorsWithGroup = NoRefs;
+export type DereffedMethodObjectErrorWithGroup = NoRefs<
+ ErrorOrReference | ErrorGroupItem
+>;
export interface ContentContainerDescriptor
extends Partial {
@@ -52,76 +67,98 @@ export interface SchemaEdits {
//editSchemaPrimitive?
//editSchemaObject?
//editSchemaOfType?
- editSchemaNumber?: (
- content: (RootContent | MdxJsxFlowElement)[],
- schemaNumber: number,
- ) => (RootContent | MdxJsxFlowElement)[];
- editSchemaString?: (
- content: (RootContent | MdxJsxFlowElement)[],
- text: string,
- ) => (RootContent | MdxJsxFlowElement)[];
- editSchemaAnyOf?: (
- content: (RootContent | MdxJsxFlowElement)[],
- anyOf: JSONSchema[],
- ) => (RootContent | MdxJsxFlowElement)[];
- editSchemaOneOf?: (
- content: (RootContent | MdxJsxFlowElement)[],
- oneOf: JSONSchema[],
- ) => (RootContent | MdxJsxFlowElement)[];
- editSchemaAllOf?: (
- content: (RootContent | MdxJsxFlowElement)[],
- allOf: JSONSchema[],
- ) => (RootContent | MdxJsxFlowElement)[];
+ editSchemaObject: (
+ content: OpenRPCMdContent[],
+ schema: JSONSchema,
+ ) => OpenRPCMdContent[];
+ editSchemaBoolean: (
+ content: OpenRPCMdContent[],
+ schema: JSONSchema,
+ ) => OpenRPCMdContent[];
+ editSchemaNull: (content: OpenRPCMdContent[]) => OpenRPCMdContent[];
+
+ editSchemaPrimitive: (
+ content: OpenRPCMdContent[],
+ schema: JSONSchema,
+ ) => OpenRPCMdContent[];
+
+ editSchemaOfType: (
+ content: OpenRPCMdContent[],
+ schema: JSONSchema,
+ ) => OpenRPCMdContent[];
+
+ editSchemaOfTypes: (
+ content: OpenRPCMdContent[],
+ schema: JSONSchema[],
+ ) => OpenRPCMdContent[];
}
export interface Edits {
- editMethodParent?: (content: Root, method: DereffedMethodObject) => Root;
- editMethod?: (
+ editMethodErrorsParent: (
+ content: OpenRPCMdContent[],
+ errors: DereffedMethodObjectErrorsWithGroup,
+ ) => OpenRPCMdContent[];
+ editMethodError: (
+ content: OpenRPCMdContent[],
+ error: DereffedMethodObjectErrorWithGroup,
+ ) => OpenRPCMdContent[];
+ editMethodParent: (
+ content: RootContent[] | OpenRPCMdContent[],
+ method: DereffedMethodObject,
+ ) => RootContent[] | OpenRPCMdContent[];
+ editMethod: (
content: (OpenRPCMdContent | RootContent)[],
method: DereffedMethodObject,
) => (OpenRPCMdContent | RootContent)[];
- editMethodParamsParent?: (
- content: (RootContent | MdxJsxFlowElement)[],
+ editMethodParamsParent: (
+ content: OpenRPCMdContent[],
methodParams: DereffedMethodObjectParams,
) => OpenRPCMdContent[];
- editMethodParam?: (
- content: (RootContent | MdxJsxFlowElement)[],
+
+ editMethodParam: (
+ content: OpenRPCMdContent[],
methodParam: DereffedMethodObjectParam,
- ) => (RootContent | MdxJsxFlowElement)[];
+ ) => OpenRPCMdContent[];
- editMethodParamSchema?: (
+ editMethodParamSchema: (
content: (RootContent | MdxJsxFlowElement)[],
methodParamSchema: DereffedMethodObjectParamSchema,
methodParam: DereffedMethodObjectParam,
) => (RootContent | MdxJsxFlowElement)[];
- editMethodParamSchemaParent?: (
+ editMethodParamSchemaParent: (
content: (RootContent | MdxJsxFlowElement)[],
methodParamSchema: DereffedMethodObjectParamSchema,
methodParam: DereffedMethodObjectParam,
) => (RootContent | MdxJsxFlowElement)[];
- editMethodResult?: (
- content: (RootContent | MdxJsxFlowElement)[],
- methodResult: DereffedMethodObjectResult,
- ) => (RootContent | MdxJsxFlowElement)[];
- editMethodResultParent?: (
- content: (RootContent | MdxJsxFlowElement)[],
- methodResult: DereffedMethodObjectResult,
- ) => (RootContent | MdxJsxFlowElement)[];
+ editMethodResult: (
+ content: OpenRPCMdContent[],
+ methodResult: DereffedMethodObjectResult | undefined,
+ ) => OpenRPCMdContent[];
- /*
- editMethodExamples:
- editmethodExamplesParent:
- */
+ editMethodResultParent: (
+ content: OpenRPCMdContent[],
+ methodResult: DereffedMethodObjectResult | undefined,
+ ) => OpenRPCMdContent[];
+
+ editMethodExample: (
+ content: OpenRPCMdContent[],
+ example: DereffedMethodObjectExample,
+ ) => OpenRPCMdContent[];
+
+ editMethodExampleParent: (
+ content: OpenRPCMdContent[],
+ examples: DereffedMethodObjectExamples,
+ ) => OpenRPCMdContent[];
- editMethodResultSchema?: (
+ editMethodResultSchema: (
content: (RootContent | MdxJsxFlowElement)[],
methodResultSchema: DereffedMethodObjectResultSchema,
methodResult: DereffedMethodObjectResult,
) => (RootContent | MdxJsxFlowElement)[];
- editMethodResultSchemaParent?: (
+ editMethodResultSchemaParent: (
content: (RootContent | MdxJsxFlowElement)[],
methodResultSchema: DereffedMethodObjectResultSchema,
methodResult: DereffedMethodObjectResult,