From c2e451810677ba40e7f7150beaa9c6a18fe1c294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Fri, 19 Jul 2024 18:12:42 -0300 Subject: [PATCH 1/8] Add new query and parse script --- .../mina/mina_mainnet_protocol_query.json | 13 +++++-------- .../aligned/test_files/mina/parse_proof_query.sh | 5 +++-- batcher/aligned/test_files/mina/protocol_state.pub | 1 + .../aligned/test_files/mina/protocol_state_hash.pub | 2 +- .../test_files/mina/protocol_state_proof.proof | 2 +- 5 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 batcher/aligned/test_files/mina/protocol_state.pub diff --git a/batcher/aligned/test_files/mina/mina_mainnet_protocol_query.json b/batcher/aligned/test_files/mina/mina_mainnet_protocol_query.json index ea05b13ae0..d7c4b5132d 100644 --- a/batcher/aligned/test_files/mina/mina_mainnet_protocol_query.json +++ b/batcher/aligned/test_files/mina/mina_mainnet_protocol_query.json @@ -1,15 +1,12 @@ { "data": { - "version": "93e02797f72abe2cbf8dfca6f2328e9c8cd76546", - "block": { - "protocolStateProof": { - "base64": "_AAQySM-DHEZ_K15fJcW4zcaAPzerdlIwhGBuvwnCL9EgLjF_AD8Lp5VXoHTE5H8Jit3ayVOO78A_AYsluuX2_kU_DEYpbXhTOLAAAAAAAAAAAAAAPws4anv4-L7cfzd7RRaop0RawD845bk3HBt3tz83yySaq7KsDgA_C6rdEZhxvuL_Ny7P1PoezsxAPzQOTDtJE1RtPzDv5xIFGaluQD8Iqyqpaha-1_8tkF70CX96wsA_N_9KIABc1lS_I42wuQv-0gjAPyvuSJVkQBAxvzAdBdO7fcCDQD8eEy8HA0ey1r8QXPbE2FgxzMA_OiAgTH09vvP_KX0YzJAkJYKAPzACyPGH4_TRfxTRl1sFKxvSwD8lfFob-jJPw78bulJNYkxx4kA_ILn61bG_eip_Axl2QgAIGVuAPz8EgymEEJ30fz_YMKruv5lLwD80FcnzuBFQMT8_CnSXXhdTjsA_PENvQ75rmG__AteLfNoYt8kAPxIhQSaS_MTIfzvrX454Or2dAAAAhD8O3pd2sbmO-n8RkAlHnQkLrL8P-jauPjmUX38IGOBo-dIHQsAh0XvEU7kUqSPPaFAOMqqN9hF8yU4ROwHv4MtuvfxiiXfIXqKSRycCDegj7D_imTEY1jR7vlM1wi80hbT74eIPfxiF9zp9Vsn9vwsQuMmvIqIzwD8Oa0ML44E4wf86GvDSW143VIA_LqRv8bR7jdF_Ak5sY61l4t0APw6RmhtnIaCPfwNbUN7nYnAoAD8T2wl-zdbtd38oYWcYYKsc1UA_CFbjWlod1te_ALDiTHmUc-9APySSKYd1jrKk_ztX2e2HalcywD8IxksZNzMn_P8TYjEeP8zRg0A_LIOdNDXyzSv_FUo1jcDmeFnAPwkr_IQIfRrAfxgYGnTHzIhtwD8r9Zspy-Vaw_8plc8naZttAYA_EcKgyEXgTsT_HQnHEAhCHAWAPwViPnvfG8KIvzUo-9GgK0gyAD8D9dnMuUm4Pn8RdqcqtA_KD0A_EXhOo9NCn0K_HG14D6uQvZ4AAD8OnTFQRkCkF38vhRy1PngZ2kA_BwHaTan6sfc_FvqRQL7cEWwAPwwtzxWehGwQPxDXxbzuu5_LAD8htaCPONSJPf8mhcPqk6JsHYA_EK1RdR175l8_FQUAYJ5qXclAPxwplgy7hKO6PxyMD0odH32SgD8EQE6eIdrNkH8oX5e5AFd-TsA_Cf4GmXjVukk_OetiJ9rfNrVAPyxI_DbJL-35PxZe1_t0oxChQD8Gb3RMeuPPcr8mHgWrWQ0J1kA_CLUKLrTGxFW_HKS4tIAzU-aAPw6enflag-TaPxwMHWqYMUF7gD8utE7vC71iDz84C0L2j4iMlcA_EBSVr1WIK6T_KYHorPMIlw4APyu6ZgGDOlCr_z9QcCjsgLrbwAAAAACqazEypA_gfUKLNuwoZPeUMAqOEmFCQY9uoDJz_vHPAqCKS_5BV_Y-BnqgOhDpNX8P-7uAnAdtB_InVl2kaZGLXA1ov9ccTScpRHKz5fe59ryyEfdxu1vG1js82fdZAgkmDVFHkSlWoTxNR9qDzivoj2E-Tv3sCVd4B6XX5LOOiUC_NqdKAdx6yHb_GqtUqLXV-IKAPzTtL9KMqyltvyxaRI1xmZpTwD8QZ859D-HpeH898ecVoyEyqgA_Lkswe5LXX0H_Gtpxr-PSin1APxaVG6J4BgCePzcdnWFmmQ3gAD8QSOiq2jgaQT8Xn07rKQETDgA_NlpFPKLrDlc_H074aKr4B5ZAPyQbeDXK1aYePyXxuizWJ5FNwD8VRXij_Rfa8D8fvV1jdHZ_sEA_G0PoW0A5tjS_EvdcwXT4bETAPyKe9MJ31qzrvwkFxvWPUEx3gD8TO7kpXfW6DX81XPn8hfaAJgA_O1zf0Qlxgca_ATXpQIsN2oTAPyz96CMaAgQ_PyODPdJBOwokQD8bIYJxZq3mHT8NT1yfn00NYAA_BPBknfQlZ6p_PSQk1SZi4PpAAD8uSqnVrRwc638_J7x1SP5TzYA_AB8L45iHIdZ_IfMJqJz9secAPyv8raeHYJUI_x-9X320Wu51QD89oaQoND3exT8aCokQM5iXmIA_A6tVjJjG8av_PvhH6EQcoAJAPyRQazKvh5Y-fymybc-mdUeVwD8vcNkzaNQTqr8aMX-wQrnFNgA_G3eXoLfrB2y_KUH28UXogj-APx_qubp1g9Ogvwsf7lOmDr2_AD8ygQbcSuIMcP8KSautsesOZEA_O9Rgf1Hjw_c_IeVO8RDeqkAAPy_MobRHtg4YPyrBaqicLyz-QD8Wkev5eDSdZT89tLDrgKny9EA_AR8Lfn2D3i-_FTi-zKRWD3hAPwTdTG4ErdwxvwIPkiaM8x1FgD80bjKsaKwwUj8zrFxwOMEZhsAAEDnqw-sW-RM_CPgSxArVp6jVxHkTt4kIaMJIdQRw7klS3zkD8XK6N-6wQJN6zyF68U87N6pMX7uRabTFlcSqS8BfiWHWptlPTAdr_kUV2udY-bB9YQwASpM_fUCJltBYQAB9wQ3h30G3ZLsInOqgBlbUFEie7jTtcWBiNFAoSQn7xgB7Y7O3OIQ05U1xv_RXHzadiYbj4XScTbGH69FbQP0aycB_b3VHwtutzEDzEJT0pfyYkZ8kUlt2FCijXiFEhEkPSkBWHhsPb5rho-QrvSm966vko_p8BMhQL9xKDTYsgTVBQIBUjhUyO_ie10YcTPOODVN0Cj8Kllisq2i3pf0kgnVYjcB7Ji6C5FJyi979lCnRR9KkNJE4b_JYhI6gAnFpSDMjTQB_wCQxeaXjHmAO-DjahJMsI6fq_bDVYqQzlXHFZJynAoBjZ8geOo8KTBOp_fYaz9aYyXsyZQqlxxmbN3lxhQcahEB-vgTDL9QkpCXO8fXfR11XXbaX9ih7Eg2if90WMPh8h4Br2rik6xk6mRDibE-cwNwoHqPW0WHCcXqthWarsFVDDsBdbIcrShDbq_BNg4_WOJEv4OiRRbnkre4my2lk341_DgBfFQ_bQobLvY2SUsiCm7TcPAy-rQO-YhTuOPoR-TJjRsBBgCkTIUmGVk8Y87bZaD4anEK5uboKIf5LxtqF6K8QA8BcqKnEN6dOpWPTTcwB6VzBFcLEuWmhuTORTgjq6m2kSMBV0ZkyiNPG_M_bkjEse9TnyDl-5PgsfjLdHrR-usZYTYBylwXBUjSpg0wFFAFfv2r0bD5l7cg0dfpUaqQOl2F8jEBHRG5Xcb8Oqt41H3IoO2VJJPFJhR07LKs92otASFA6R4BfMygq3m7kTqhqNEkx4HkQogeZORsT7lmcfjERDAKNhQBFg8LWZtYNdyBTrW9z2sMwsZlE-lio0A6qKZPlarSTj4BjvoH2WC5t5-4aam1nwpJqvTmt-XEr_Dw4f3EPo4OTxABPaFNLH3212YOAl5Vv3eoDEsvaFAgwU_2S8SYJTPDbAIBHK5v04nb6AbxcqC-IkFNhaR42Qrtj37ahL-xAdII1DwB0OzfyP1YpWPLVVcOhQkeLYljaw1IbXfSA76I_G2CmDkBxZ9K-JL_wRDQKWmQbiaUWUE1vBqP38t_7vObBGYcZzQBHF4ZiA8Fw8W9gFrY7FWGYRg8bNAnnfaRzbhDylA80yYBgJCSCfoHBQ6SszFh9lwMBjmfDNNCUYmyQkCdTXEeuCUBYgkJZMuEUTdngpPzw_NI6RByhO8rdtmdVQ51qFdX6DMBVXzB7dvsvMulfFppDPQPf_xnppTJA0bqJ8Ft2jPebDgByASF0e2lJQWHnaondPJTpuRwbiLVPCr5663XiYaWDB4AARGsB0XkViSM4dsMA-STxm9tC3mY2r4I6Nq6BzctaTsuATGantqQFS1Q8pky8VOvJ17wGCff5MdYpCCGQEqISwkgATrrSh_4rxteBHdOonEnRj9YB9b3fR_B1wEo_kvu-is8AdPn035jDpuOd7OdVVqd4QKQUBxgKbqj82bYXKZt7polAVnd-83WOVRzuJESHZfSld0nCVX4y7iryAaJcWepZ6EjAbP2XTVlaMXr4Jvza1s5vFVoKV_mZ10Gsqfmx9cNl3snAeEBpu4HzXV5BybAveb9pU8UYX2j3JuuGqfjYEYjg80PAUTaZFXR4udRZhPLz8AajTpGUC9QKX_s1crkTbtW0f86AeDWwmZfqAsYj5xVzLI1oTIM6A6Ehagw8aFOmVngaiA5AWEukwgSsdVn9F0eV9gt4-xOupJrGjt3zoInslMg-AIdARQtzaExHc3AoWPzfnNqdAOM7JJ1OoOT-CRofpY6pxQ2AcAxvxk8C1mGb3DcbIFsyJf66hJBs6dWZ3jrtIr7GTQ_AUOUUdZID2nQb-XtrNxfUuJMzhP06iAzyRW9Q8MpCWooAV63Q4yeimyBPqqiarCr9STQb5gtasgUQurWH-oJjasBAU6srcr0Hxj1dVygmTWMkxauj1dkzrDCi-gU0-M366gSAQM42OL3rbFaSTrTXP2vjGdhm-RBbzkmSew2gZ73O3IRATXgWJhZmXDfDrK-wUKLSGqidSPie-x3Z5nuaIYS4K4BAaLmrGuv_JhJWvXo9GeImlRVYC9cbYVwydLiGI-yatEFAfF4LGlSdOFnmSZt-If0BQMZOUaz73wE3hoF-n0O8rgPASbibDRK8Qc7Euc_B5cx-D56lGF6XW609OHM1tCtLJcLATr0WqjRMRv3lysFwj2VKedG060khu8Ei-sXIEDySJ4qAQBHMeiSgTG4e0k6V5JZmFxWB84JunvC-YJaZdkSt0gqAVIXTbygz6h9J1WUiNU5Vyn-1oAMF7_D_VUabxlk-n4tAfr2MKQiVkVUdh2gDteHB_ww96jR9dwJrFqWvZLVnXwHAfyJLV8P5UWXlwJQ7nZJ0JdtfzYDIeb_A6DEyHFl2wAaAefHdr9SlP3T5FZMjifA0atoCPT_raMLOwV17YQSoNUfAf7vtN1bDvuPOqphA5jnWKM7I9wSipYYb5-prRzyEQ0lAbCT0K8dfclIQW4SzL09IkdfLy0MMRTrUgiHEuZFj9IcAUOJzgnJWn-gEPUu-YClF9-16UNqN0Z8n4NvL1CedDY3AS1BPAUtuMzoAerOoD8G2xfBCZ4ILIKs5ErFQcFr3-gvAAGwd3dGTZ-Wf6jEZ1mwugBh9ANpURWDNoy5ITVb7IQZIQET1uqN2n-iyrfdvpy4iCYcsXkhP4YXeFr22f2oyKfyAAFdNxl4DYP0L0CbaNBTxD3-k5HbnENw2V2GoAkxNktQAgEq5eG8oDNA938c4C4BLdBzuJt6BwBra4xwWL9H7kWVPAFVpgXZKcplFNDs2yFR5P6CYaR-dtLo9vaUX8E8QSm-DQH8MkD4iJciz5Hsiw3LvFx-Rk_tFETNTXREvPxQHJeOHAF7dEOoHIgAPrDWpIAfRtlpQ9qzlbWIV32F5MRSSZuuPgEnXbSwaIxurRcLO93AUJVcGIUVn-0DBvdtEnrciLF5PQEKTlmrbsxhM62GZqYlNS_0Wrvvpe0i4CeJfTsVSHWTEAF02aNTo2HCVi1FFtwuNRP_DxeNdnygjMfSsYN96avxCAHFzL3lMrbVCLtS4OE72DPuUdMwXg4rgNGkd0cJx-ptNAGrjE73C70CtTo0DGrYaozA82jEIxQu3HzggZ96e9-qAgGOfpCnlhT59oG3apvoWh9vx07kzlJIdPhi2CZoYpjHHgG_N1Az7hb4BTcZO7kr3TivuFUszWhKgKuLmGXDU8cGBwABQm5iRE3WEcS4abe50pb8YDbE_Z4Bhd4DvffMnTMbxi4B_wahYW5Xa1QDrGWFhp_aCHxHVYRnyZ1p1X71PaNVjSMBTDAMCXJj-Z6zE7LblaxLHlvSJNjxC9Vv0XaTNtv5rjABD2jn5BbghHzXufpy9T3ul35DbKLwH9GEM4OT9NhIAA0Bz4kl_N5VRcFKpwJ4zQmTGyNpO6CaAxHLC7LSs1lrWDIBu8zjgUsSAkJ_St-rifxMmbi_fbk0lzJoxx62lco7oAUBRlPHxGij-GzTMYpoOGKZbTG8ixujbfJ45atAjnfWvD0BT8OFV4cjlm1UTZGvlKfwME6_ezLBzDIUBalLgBZ9VwMBwTtoyjAR-EDvhbbWVyUdUYljaq171tSSRqDZ1xaOlgcBPNoqK1INB2IhZC2PjUSr6ilcj2zgnKnQujeBrCTkATEBKqX-at1vESL5ip5ypSalV8sznP1nxwRxAj1hcQ2M4RkBGeBDBtE77lKFBBUyire-D6PzXRbEDbHFTJO_BFQBjhgAAAAAAAAAAAAAAAAAAAAAAAAAABaGBeAwvwmdcUsVd4krQUJnvJcl5CQGgEG-Ld_8btElVpk6pWHThFBXmUa5nshQyq5fj3P3OqRLPF9QnqCLZDxU_fAkXMpioIypdI7VqLg_o5ph8ipFHq7zDVD0ZT4MPt1Zjk9uxk_RPipPM5yWUr7iy-LqQMONRDiNoDtNKPEPX3JDfbRPgptPa0I97AoJlKLL-AHiDzMogbPEXm8VqAoFpupX5HzOQ6w2ndsE6-KBeXxLhXT14O-CIjZoQz6pNgw-RFaZwEs21NsYF_wXtMYCgDCfNHpEYgAOImU31rUaVe3_5Ot0GgpD1Yj_Mdrf7dx7yXfKdG-_hiY8d0xkdh8jOOCi3h1_rSEp88o44F0h5EIDL3-HN5VwqANhf7guDvvhne0nx8TzNRqggHipOKHifnNn8UyhZBGG7U_wfgAKrSbwKSWYOM9H_-gqNHwPhyhEr5BYZF5STtG_7qjCYBZymzpQHvXk8H1qpjCnjmb8ubTsOsdejsNfzhhv_9MRJvO2B8HZAHg7QOwI3hC53fxjAmNA-MojnIGtC_QbG54MhdIb6jjxJdd3ij35ff9o9fao9U87VCoODBNCkd8RawLcsYmDSsZyKK5pY-iCRNVJRm-5rjHB5Gek2PiQ0fpZKaTbMOKV2c_qPtYKCdfjHf5_-k71-0HpexbUCpnQJFIOAcSD89iSpMObXQlc3sFmKWYYC33EIWMv4KeGYorL6StFJEko1zL2_sLDn-i31lp1IR6Bh2ZYoGrDQlqdsaKcGNFuLy83dVZNmXJWuAIMcqiWTU6PVKrEmhL-JGEEsW08Rr5osH4fMSGjC_jFIu3o3QkfX7E6bXdICAi7yFF57SFt-HXy4dsc_eD_ByUL-51TY80rsM6Lzz1QiXxAtK2ZLe1QKzpPqiDwY5-b2Ii12wc1KMXQLTzI6nLD1vxdoYQQI_RcjhPrBRcu0sELxr2m1qltN3RNbMOBvE6xKik2mz45iYG4Wvi6o6-KGLNvLqfUm-bsbk_FrvC4M-TX0CuJLdiy4fN49rVDikZirIx94VWK3gcTl04ISJjQC7BQILEfaA2TS4WZ8O21tc9UJ8_bgfEDwgcJWmTp3Oe5zI4D-izeZU659Ueoq5yyMHbe5tu6IfX0ONKEGKkOj-7ipDTXOtZJ-gPgdT8yO_HiixGyRvJwmWFEbntdGuMbatCe-bMWldeMvTG6QRgD5dHm30hbyx-w4MhUaPE4AHZIf0SpBT3n8Pc6P0ynZpfp0iMlIDTLPavbCx_vXOjcLPEn3PqONTiQevpGGr5SbD5KwgYv3IMf4a9ZMouJBIssCUjTxB4WAGf-cADtOKECnudIof7jLcXmb-WzZRyI2QRr2N-cNmsmxalTqkuxPoMGz2QV6R8wQYnnJmkj8lc2sG_D9KinaSZy6z40tqDwEiwtYfHZl-SHU1PVVKNEv96KAx2Ns9HQACRTaLmlIuPd4hrG96Ef9D4ez298TWjp-Z3KT0ztfqQhX7qS7-Oc9Y-ufJ5qJLuxKW-9fdGrxCm21XzM7ptIjxJRJzjJvEWwe34pAQiiIlAcGyC7TVyVu_RMzYojAnq9ILsZffqfWFUjwssJV-3vMNOYu544QTb8ilgDywo4H1Q2-Sy7dyXnroq6YCi4dfz-8wKVBWYYK0BWC6I5YoZNJTEsHO8XgpdGDah25fWUrvVW7H-c4fHrjlxQicC5c_LRFUgVRhvd92zbvRD5iMU6GxrLUeIXYmxFU9EIDdTN5UkB3fLkVVqD6LeFkvi2b6sRlnwvPvM07VFY88eXqhAQqAjeHI1ty-8GWadWEjx3wIOa3mX_9hfrx-RSuo7SZSLWGWCkTL8DVsayuocZXQwOJOYt7UhIAV2DMO7JN6ucWzwpHBmZN8sVnF65KpOKEYgfh_03iTXb4k2hYQIim1-LNSGtdvIe6WGibMK1Y2VwMmLFpAmFf0unMvEokSuhcH2QC1c9Glr7XEHHxGe7TKkXWLesvQp_YN7GyUs2_fWIts8nAH3LeREsRUpp79xHZDhbIWu26uQxkZSdujzO6m8dgdkiRR05CzVxHhIz3uBNNvXPLf599RGeKGy71n3JFnvFODxoV7ysXzozLOTRJlvjdLGAmPhXy9KaLYYxgis404AkLgJ2vlUY_wdKfJicc0ll_Hy08RWVMhPjzSA_L2kBgRY_qWhznjg9zqjaWfylS_42kLD80W22-QLX6ie_n3G2ficO_wLhE_LsUR7h1pHJO7OnLz5p6S98dwVYs0x8HeVUPmjLaXK4VXks8mNl8O3vVwITaB92jQOa5uazis2pAgMLmD14yDGTleYSXjtu5SIoLO3jD-fobAlXutGdb9CGvDbNcnCzk13ZQkvAVgnmG2Uvk4zWBCJWWxow-DD_uXwcLvE71fCj9jAvyCjYoywnRYady9TPOcGmCw0vyC8xMvcTrIx9U55azmk3dhK5QB2SHPR8KeG8qz_47nSjzLp0eAS3pvWObkXauDtv_pt1RA4ThlC2DmTb7F0PXXOu_HLaPEiNIpH8ArqLdIAsm5H3vHoSb3-ZkbTUk7neVEK0AkUEZD5hOVk1xnL62BmcSv8IUx_72rEkx5RzI4IqK54j4SsELY10DX-xws3RQJufxqr-p3LmZI3tAjZnjj-34CuPO11iUIIClwWIOOiX__ubg5UGFCFWDV2zAbOnU-wAhy0gGsYNshSz1PHCGin-hqdHwEaHG25gCW0yBQjf0bI7uioHThqQhOIadWNCmm2oIURb4wya_CfCc0hxC2cXBAh7G5E15O86hNBa8nc535xNkvXnf0pcI1KCTASSOo80YmMFYH7TTdkn-dIctSDWYaMibT_GLgMBKZMstIcYmjNEuy6QMH5L3gT3EGj3gRSrqUe0P0qvQsLooq83wBIUap3WEOh_Rbfi9hHk1FsDCXUrDBEzZyZLk3Nuwf1rzgN43agzhZrygFpDj8tk_kYRFlgrB62d3Jko2b92NE_1gfp_DQOt26K3vrIsMjwXw74PFs7SSj2t6EoAAv_NdUmompIfLv9A2mMb5BxmAnJ3-kzy9olBJ0GIuTfh-8YMqqHshUIIb9gKltf-Ai9rA-qdD0oQajorMm5gJgMEplLpvgiWZg5gEM2C2D3DLpAJ7H_UU1ybdahaWTwkLR2aAjbJ3KTmC0BbxGRJWE0WsFkV6LjHZp10dANPexwu1A_51gZe6U8HRBCJiPyC0RS95UqGVSB0jrGX7m-TSQekaQ3D4geNhDZbyeNEn47tzWoJIyG34dhhbFajB0FXl22WioS2xsxyJAD4E__2pi1tGPJvXCo--eBmjkfDe_NReabLf0vRx7X8GRHkWk-qwTiSlVK_rV1sRDmMDgIrjCMJ1P2oDaH91j40t6eXKt0DwfAvC1x9BZybNLwpo5J_h1GT5FpbwhwxOTNgT48u_Ku8PbRahHVmUDhxH3xBfSOLO8Awf41ZK4cVKl6SLLpvapw7H219Ecq0XE4mXqc_gaqSBmAfWOl0aVUXVQOYGIaFgMwNUJ0ntq8ix_gNicoCfa9xlttp6IrQSg0-c29nDPtXbyN71QES62PIyZqSTqQGfR8071jJH9sOJZgtFjbo2XBcp5r-Ju5RRuLB8RoakbgG9LxVSAS9oEAWzJpd6yNFo4IHdtX4cIg7KU7-VNCsY9fhHRVgGMV1kwURwQnUorbrK3LNQOUXhq2bwW9xOeXx82IYk__3DsxXGFSpBbAzZvE28ZFitk_zOmVfcczOflcv1MGk2jgSm8s_ldrPAHhrCDxnlIa9o7oJuIFxxr210UKk_qda8QDsaTvWC0Uhq9c1pWWQu4piBGBUIMoLZIkbWLRyUYxJv6l4OxZRt94angLq4kCPHd3ujw4jbnw2Mzd5T75htpdDoTM7BiZx5trVWuhz73n-XvOMeJUn1WSIYxtZ2hvC9Y6cARJavYcaIZMeZ3SbhDSYknIz2XBEjXvlehyPRS0A9C6xCYjGyb89BLDDC-QanxEIYQRikxsXS63laQXZ31c17aQHKjXz-MNsJ0Gx7S4Fy6hlAB_eGwa8Z7U6wfh91oqW4TCctbAZEXFnv6khfCGymeOd6UUPKi_S3umCFSveIthgFYlyQU6iQ6YUXAtC8SzFD_X-fLT0CZIJMueuCmcjyzEfxZ5DurH2XZTZ1E0xMd5n8IbD2bkRGWEn4R1rIec0ZCHjX3cPIfip8hhLmuX0RBbhd71sv5kK2AJ28tcc6Q4YLlOomKjKbMeg5z28Lg51MG6VDItw_A9HTmDQ2xPjY-Q_NNWlVWwutIIUnHsTHXaQdHZ-7Mwjp-GxIwWPitI7rjS6amI_HLUWw3_P285HeUE1QvSQ7mG3ghjMT-exVufJHH5UxbrME661r6nTgYYAJWIzgEenJ7oS8X9NSXt7HvgS7tf4uaMH9nNy4cthPEZHMjza-7mlHWDWx0-qRv3_XSvOSvyI9c3P72hPB9A8_XJAf7bj79RELHGwJR1EXU6_E3wWehlPvaLTZiu4jZlZrvLJvBLM4TAXc0fRFes0j9kHcgt4P1Jt_cpSGX-w2sUeon_epWq7xUpuck6Dn6ECejcAnMt5xydQmRtwCmICzUrPMlq3YoGMvrO-sET3AVfKIQRGeFgg1US-GLHwA2DVRofB_7mE72YqBHh_xuqIzb5NMcYyFG7V459SSn_wyjm3Mu2tz12Syczm6V-E2pUGgNgwDIZhGPDFz5AshQVeJrt5DJYyi2pewgH8cHtXlF4i1hp7RwI-_-pQv-VbdC8HcdA0TzNO7CQFIDssYnBhG64SCRWWyoIubdkgvPDQNCEQzcLlPXlEVqoRy4KP36KJMWEgR6uvZz2mkd1Unwis4Z7JCiuDDpCgSeNMxSEvwpwDxjYvnfBrtpA4HjVOgbzSMidQYuQenn9mNChqdBe26jcMBva8Zvh6xo540NrObYDX9L5hXHeuyz5PcAF5FV5AyXU36i625F--9GJP5DkREwPdjOzszmUEPT3G-X0OvvZcZwvlu32ywQ-cs5ZCl60OQGvchkSgHJd0k9jjHn2LgZEsA3mPk9do3ubOxlX4MIrPHyhFGmeQbMr8gehVAykHMdUSCacQ0-4DX7iLkGuFehOZpINmDN-ZNWxu4Dvn83E1tQQXkhcDjiQnWk7cSg_aZDpB-2HIIgCJnEDMVl7BQ3w1KgAcViiLt2BQYgqVXazETA9NfOuzzMu4y96Aa96_h5FyNgjpgK4oKpYemzTlrzrkjtf_DJgtN8k9NbHDCrA_OUID4e1SdbB0h7WEFWXtazJMykRBNU_G5Slz688TeJnvgAcPTbAU9o5093n8hvaSHxRymZw1MrbLnWZ0B-UEkzWiDA1g4LZgzeyhpS4rkFjQp19VNMyI7VGrPF1xXtFa_E8bqpqEktrZ5VL69q9s8KN9R1KpBUZsfkvmJsGGrLmX2RuydyhHT3jl6FmCbYj89Uf0-9yglafgo8iVXRefn-NCB6u2QEAOUcu8PhNQzwpHLe8WQhUUXzoZxa2dyUWzrcAcaj7_WkXPdqQ5J4uDqB-jkI9XIUGFh-2NfVTO1_yxRCg9qo7ytv9svUpRWGuVE8YwZtvhUXfpwe7YABAYkQUwE9i8FXKabvcbRExmbCLFzZIdlXf6LU4PZxkNqBjhCvUT4LSgtrL81iwZvi8FWceora2-xbggmxnvQgOtzW8iNSF2dHy5um1lNyW9H1ecsKW1mJjSL5orJM-DhIG-v31sMQ-QB37fSexccARDPCJSbaMDoSGEC-VUv0G7uCJeTiGWD806dcFaUHktGp69DAL5i7t68RRlqkfQ12rIbLRLzkEeP5VvyIqTrp3j_GMqoaKk33cOoXttNlyDA5W5umFQ4TwStN2ydIoNYJVsua3pYzvmjJzU_1UNHkM9uVpuuQgaElnuUV7iIjSlIb3AdJJMF8Lp2ke1TjZcZy77bnKroi8OFNVkYS9OGQrqTANEkDr4r5QBfKG4PQM_uGNnQieNYBBsQHRdyDhApYATjaVvMQUbixYbOEb1Qhf1MFHfqH5MIHXrCPJhyt8DWiZ3TpH8aYm8Y80FPJZKuUUjRkXf9-kwcwTczWq0taab6ioEzX1VtoXfhit_R_0TXxgqTiwWRhGjMSQNME7G-ogpoPi-AzYcQOCkqz-gqFxzFmK22QfpOOuPyFQfpPLKmGAnTIOI_9c7ACzcDCf9kJhFCikcCuInL5G1_21fWJ53fA_kanqyBNz0ujmjtjYzHUi9WJhnPBnDatxE3ilTMDV9hsczudWEeAFc2srUn762Fy3t3YjmJ-9AJS2LOu_9lzB7TUPKWaG6_1DYyLugBKWMj9SH1r0JHOWsbc7G5HwfVPzZSkUt0rbLlkKUjH7VxAbjEYshbwsBXZ4Dgdiyh54AMD4a-HXl_Jv4z5YzwjWXgZom-C-eHJSwVKqxrmvRl7lzrejDnkLb4rRyV0piCyDi8akFu345_MkgNa9dVwR7BLPxKxfm7OHJDDGgYIu-eeBwZH_T1SC6pwt-Ymx-fheaTLHt5ngmxSHCMLTgZ-RBppGpxkhCOXG5CKiyAiKMIOp-GQXRLxQOccol641PxERANuSN8e0YORrGsj4fBuHT68fHxY73uGNtsW-31DJAC6zpIY4M0jvFqD3jCVq2WeYYVc46RAZysJgLAddLoVaRIMfp_a3cL8sPkmaAs8ZQc1rraGRUgKy-HknfkQSTCDpfoX7nUngXoSAy4FQsyoKRlA_AuV71q2QoT62fb55R50UmV3ebWyKLZyCXJCMRlQUPuWPBcUTOdCiBun2Kg9kDhFbP7QTGDSsHXXGCZWBryfBsXkU-8VH0v5On5EMXJp1cx33CHQwfq_Jj_w_9ZAskx0NTyIZu9UOXOdSbRHBMhtr8jpMVcAGKOZESVYJOPeuycUem8oXwzM0cGUq4tjXBKvpkV5qIAZPRd1tI1Hx-Nz3-3iNJPRtJli6w6Iall6SaiPEQjyYkAVfGA0YDRhaZd8AepE55a2Al6xna58kFs7a7PXl1kQY4b0Dx4RTeQ3pOFXWZt_-ryH9SF3Zn4yz4hS3RURfTNT_g0LboWn2BVsQzyrlrO6rsxtk9_tBmcVoQbjyL0mgRwNjfdZ2E9ZFVAVbvU2ul8nHSB3S-hB9ovAiar830qBvnMyUI3cLiKuJ3vf6tWoYIwif4X77dQPB-msgq9O5rE64USwfKCx7ZOT23fgGKDuzrT82-CEH4iima5WoSbp8zZm4RxnhjPHtm4ko221MmLWL__cojCgrQt0FRHBPdfSNDd5hBGmI7TgU0jy2j0eov1ZgXErm10ZOTlmOB2KTmMd4jgQarR71mh5LJVioHe0Y4Jmno-nynQazgzzPzUO0qtmBdhI3_XRuaVjgeeUlDCsWfM6X2KMQFLI2PaFOgUhFkl4BnnA7k7j7rSdCP_dj0fVwLjxS_Zu8D2aEPMdyCP1ac8GGvAwz5BAuEB9iAEI8-SSvSyJzyUsELz0RBwuIteNqGu3x7-gdonWz9w9dK_Gy0emHhlBOcCaoEWNulKDNxIOIFaihd7HnOQcJb0WmgCpXnUWC02Ex2_szZMs-dGb3rNjTLS_HBkWABK_3PxM9aigZVkDbu5dFnlDPwYkEljDvHmtYL29s_Am6oLBDu1oIGMisZiYDtmducKUeL-y8NcADII3GP_LFWFed4XeOppQS9xK6Y5pp06P2k46cWFVKdgIb9-TqhDXoYXRnYWhaeHEPSmK8wmTUTYbG3qh4NTDubZVK6B8T5QhqyVPf4GKXp6GB-TlMRPiE5Ot6atCcZbAMckGRP0a7rBRWqqZzF_k-UviPpFOzUxZl4WwOZHBs6JRD03S0sha9Iujvw3EQ8-06sE-qkpwiJu_UHSG8IMa1p-Dq9JgqXlhRT7u8tU2Wgd6K-g5iun0anKLGAmBs-sumuLpf3HnrERE5cEe_lVHKxtGkzIbdYHVv6TTqgGB_JrX1UqBkenwtxqumVUM9iM79-BcuAA37nDhD6xbMwwQFWtBXGKnNQeLt0qyLyj4T5seU-rf8mnk9HXhTM1xWiEyYgfFiKuElrjydw9qhJPHBaXiP81d0-OpQAmUgONQGbYKaUlRTA51674p49VoZrHQZP4yOSH06R48027ZMtriiq-tLi2azmAEz7jSjOH4qG7p-9woN-Y8RXuKkYQDX6L0L1JNotPj7KZ_Z0cK3NpP9QEdvrfyFKz6l9sCLkKTjpt4nB07LFrwSpUpzZFvem-GXNOlnJzcyOfFDRl9AftavDqPt5xIfBND1RHJC2YvrATnM-ee6WKkh-cDnEizn1V2PRIZTrzlfqldNMhAiSucgPBM80dqTKmJS62USODpNKQixXycg-2FBPuVBi0FgGireMDQUL0ezpHifa9moBERcR9foDnqcZaGvE083yjaOO0tLWcp4JL5W4jTIFWx5NWzpTC6eFqO5eO9nLOGg8NMLWKHlEDFHmN43pBUgBH7rIZ6z0coHT-ibp_PXDMmlvKAznCzZ-Gee57FkMLYIXD3GUnEQYjMSejauMQmQqxj08Dab0au-54V07v2qqZgI=" - } - }, + "version": "da70596e4d6660394388a14875926d752e51464f", + "protocolState": "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", "bestChain": [ { - "protocolState": { - "previousStateHash": "3NLaGT4vk7t6s19p3FxYM15yZCWjpAShkuDRPJ4BwJadxbyCta1t" + "stateHashField": "10739247575158192228739553163490698149584648921391242737049516468492645783469", + "protocolStateProof": { + "base64": "_AzFacptM6EI_IuGEn36D_DDAPyJALP-mtaLe_wRKLlqjdLzswD8wQc1hnC4z3P8nOfrwyXsm3IA_CVPq1cotlsK_PKA6zqDmK-xAAAAAAAAAAAAAPy5KqdWtHBzrfz8nvHVI_lPNgD8AHwvjmIch1n8h8wmonP2x5wA_K_ytp4dglQj_H71ffbRa7nVAPz2hpCg0Pd7FPxoKiRAzmJeYgD8Dq1WMmMbxq_8--EfoRBygAkA_JFBrMq-Hlj5_KbJtz6Z1R5XAPy9w2TNo1BOqvxoxf7BCucU2AD8bd5egt-sHbL8pQfbxReiCP4A_H-q5unWD06C_Cx_uU6YOvb8APzKBBtxK4gxw_wpJq62x6w5kQD871GB_UePD9z8h5U7xEN6qQAA_L8yhtEe2Dhg_KsFqqJwvLP5APxaR6_l4NJ1lPz20sOuAqfL0QD8BHwt-fYPeL78VOL7MpFYPeEA_BN1MbgSt3DG_Ag-SJozzHUWAPzRuMqxorDBSPzOsXHA4wRmGwAAAhAAAAAAAGKZVEkV8JvnwXkRRC0lSEBTtFkF259BVjBh_X28MtMPrNdShffBok_HsebifDwWOlWmsec2OQMdBOulXlAEBRb8b7_mrMmzgjP8Yxh2-VhDl3kA_JeHiOkGKzrd_MehRClA5nrdAPzLn5z0MOXoxvzdnKDNZbvdBwD8Expph6JZLFP8e29lKrC8IakA_IsHEI-xd5zi_O4Ma98AX1z4APyHnLAHLae9HfygJl_p4pcbTQD8EV-AVnx0dZz86PHO-mlj_qEA_E1g6dvfiitc_Jv3EPKMcYxaAPxIa-BRXLPAIvztbalAc4uIpgD8bmR2XrXXB5D8Eo5O2zmLxsEA_MkrPzde40VE_OXNjPwVx0CdAPxOqrxLhIKYQvy8t6_Q1yeplwD8d279_1s9ypn8lEJcFVVq5u8A_FSZlyFxsn1L_EDIk2Hgoh-VAPyzRweyvszRLPwdAmTyPN7RWwAA_G-_5qzJs4Iz_GMYdvlYQ5d5APyXh4jpBis63fzHoUQpQOZ63QD8y5-c9DDl6Mb83ZygzWW73QcA_BMaaYeiWSxT_HtvZSqwvCGpAPyLBxCPsXec4vzuDGvfAF9c-AD8h5ywBy2nvR38oCZf6eKXG00A_BFfgFZ8dHWc_OjxzvppY_6hAPxNYOnb34orXPyb9xDyjHGMWgD8SGvgUVyzwCL87W2pQHOLiKYA_G5kdl611weQ_BKOTts5i8bBAPzJKz83XuNFRPzlzYz8FcdAnQD8Tqq8S4SCmEL8vLev0NcnqZcA_Hdu_f9bPcqZ_JRCXBVVaubvAPxUmZchcbJ9S_xAyJNh4KIflQD8s0cHsr7M0Sz8HQJk8jze0VsAAAAAAki1NuhGVKVfT_3__fWRvZ08oXBLzvBcpZ3CZEje39MRaxosRN0hx81ZVe8Zw_OruEIOG3rlFxTe14qETSIH9QVItTboRlSlX0_9__31kb2dPKFwS87wXKWdwmRI3t_TEWsaLETdIcfNWVXvGcPzq7hCDht65RcU3teKhE0iB_UFAvy5KqdWtHBzrfz8nvHVI_lPNgD8AHwvjmIch1n8h8wmonP2x5wA_K_ytp4dglQj_H71ffbRa7nVAPz2hpCg0Pd7FPxoKiRAzmJeYgD8Dq1WMmMbxq_8--EfoRBygAkA_JFBrMq-Hlj5_KbJtz6Z1R5XAPy9w2TNo1BOqvxoxf7BCucU2AD8bd5egt-sHbL8pQfbxReiCP4A_H-q5unWD06C_Cx_uU6YOvb8APzKBBtxK4gxw_wpJq62x6w5kQD871GB_UePD9z8h5U7xEN6qQAA_L8yhtEe2Dhg_KsFqqJwvLP5APxaR6_l4NJ1lPz20sOuAqfL0QD8BHwt-fYPeL78VOL7MpFYPeEA_BN1MbgSt3DG_Ag-SJozzHUWAPzRuMqxorDBSPzOsXHA4wRmGwAA_Lkqp1a0cHOt_Pye8dUj-U82APwAfC-OYhyHWfyHzCaic_bHnAD8r_K2nh2CVCP8fvV99tFrudUA_PaGkKDQ93sU_GgqJEDOYl5iAPwOrVYyYxvGr_z74R-hEHKACQD8kUGsyr4eWPn8psm3PpnVHlcA_L3DZM2jUE6q_GjF_sEK5xTYAPxt3l6C36wdsvylB9vFF6II_gD8f6rm6dYPToL8LH-5Tpg69vwA_MoEG3EriDHD_CkmrrbHrDmRAPzvUYH9R48P3PyHlTvEQ3qpAAD8vzKG0R7YOGD8qwWqonC8s_kA_FpHr-Xg0nWU_PbSw64Cp8vRAPwEfC359g94vvxU4vsykVg94QD8E3UxuBK3cMb8CD5ImjPMdRYA_NG4yrGisMFI_M6xccDjBGYbAAA6PGEyR9EE3YxctI9ZycvlAjfZwksavOFt5bC5qZVPN_K6SgIy3_BdUryusTZvur9-D_wscMYan9MzTVYfUu4NAZFybfMU6ohMg5uZyYwMBIrJb9mVY02jrYcwm4cGvRcyAUT9NbzTqkpk-PtboA1O3r06rPJeW2l4qXOi4SMKH7IWATZiy6C9nok12DD8i9j3LiUazqifKXguHbIEIH9mj8oiAbKXgLylZHSdFvnkYWGGjhuw1S9UqCqifTqeahbmA8UYAQ5hecZuoLB8gtts0SMPxhaSut1RZ_qIt2lXmtJv8bgGAY_qMJcltWdvZuLn3kzz0Ofd5oeojuv-gZOm2sWDR8E6AaYUXjamNkTUesbOkhefo26mF6KY8Qg86Im0ygmvUcYcAd_ZeC_e6MMuV6Bh2DMnbL9XzTgkAcTcKX919ukIDPASASmkGJFHwKWqDsHf_kowkf2HW53CH-dCQzTYOfRUgxUjASmQRP-Dv9Mjjkm-oa-BgycS2r5STXExtnEV6Q8EEIQyAYhpJddFLTbQ574zHGl3Hc5L0gGM2A31KzvTmN5ADRc8Abtd8iY33R5xkzi0OfdZQ2cg0BiNXxG_9ZIjMXgQNH80AZgpRK5PEVqA6-eAg4lBWhIj4KpWHaTCOMcaz0aKS_woAY1SjIZXKSTQBUTGZ1AkDAWVDeDYc1FAc78m89OAYMUQARMjnkaifpINMJNbzWollLJGbVZ4t4eFtG8OAlVUlrEXAdIsMwcSIrttuMXHi69UgcoLP7-85gfIZ28tK5XBbb4gATKKvX0ohceTcr_LtpFLUeLLPnvdLU4jc0XYdC6Sv3UnAWZA7oB1BZZmSe32gQ-A0zA2BGrQM4XdH2mAJQyv_XAIAYgoFDGCTKmZM4cKyk9cg2U7tz1E7G-9TYQchXUhnscPARVKU4BojQx-yjve2IP1gIfv949-v96DB3FGgL9-l8YOARmqpJkw6bKiRBto0Z1j1xOgVpfygHMRMzlSlPZku2IRAcUV9RcO3D8JcVj42YlI5rJFwHjeSBTxUXie80n5FAQCAUPBQCz_koAF-2QRQgrQVvZysAJ1VX0s1u1F61VJ_L86AeFVD0JCRca10RW7_010nTo4zrBV0gv_OybE4oEosfstAap9Qy5G7Ag87unSTftDg3E6QoakqfdrTJnY2VyYztgxAUm3AonxovG_2xV1nZ5um1pteu2vhhsl61mRofM70JgPAQjbjCLm7Tn6plqfs9roiHsbc5usddtSM52OTe76vm84AegRmK03P__TnOWemols3AdERSLCXz0UeUrSretqNDQkASRQhAtW8jVeb8al0MstOxegNz1L-Bm0GmMcti2AcQkUAbOINmA9szxWEdW8hv5wQZl7frZbY2eItk_pLmsRENIEAAEvwOjTlWCgsCMWjWpRghNlWQE8N9FewsLuEoPGubd7HQHCYmpoFFNIbqXUE_DqAwz11zHwq9_mMsdKKmmDte4PFwGFWckwTe35TyNm1Niq88nCr1wqszmKWu9My4OaUN68NQGdCffOVUZW4gI_IpwEhZc-V2_3Eo1FkGiWw61W-xkgAQGtC9t5svFvTRQn4Nr-cMBjEPpGBrk-tEKCU4-D2ijxPwGV0WIswKfy24qZ2BVlNNVyB6rzu8alpqGjFc2SQmiCHwFS0reBvhwwDB3LQCBfYCQHWpkLPtZAaF6khi9l6UbpGgE2iY4ANf6-Fu6V2JAx31oQ1WHZmK7QZi9deLsMF8vYDAFxI5ougXdG8pcPqt7xrkNRXIrf_CCxbxlGt8LnQLK-MgEhErp_10lnQVY7lIh4YSpf6hH-4X9Iu7ALrs9733jkIwHu3CQpAe6rrMu2XSVx_8Jo__W7ZvdUJaWnt1n_4rMoDwF7DTz4lANzls8z1DLGEf_TNvmGWkqP0h9NuNNHbmBoOwFdyzC-_PLz2ZYuTi5MogrWTHpyxzBwlHIaR1F3n8oiIwHEbrA7kGr-BD0iUMbnHPhQd3bBvCJGInmA_EJ3BP4qBQEKzCtv_aYC-uIHNevghsaQ__iLWwvw3e2xnwM6vm3wJgE3jMlSF-_fiEjkbNvvN-xMoO8jqbkknuJIHbkZU5CCCwHhXODBNtpjzl85oYYtmwUEuH7GswTgiAeZfYZLKuXnAwENViE30_FxaxBbMuOMCBvP-iB4vqKIjSdvNUlKRR2ZMAG7wdpIm816ZRuiURpesbuExUAOd4IrVVru3_BarFqZGAFXzb1Ke2lZRwF_8Qw00e8J5Amy1Wvmx1y8wnSsHygTCwHmfEbSm7zz9JhzAnA_Y4w2DABjmIxM_PL6LQTr-clhAgE2UeOYb14khXPRV7mNhBzZXQm-zOQGSghRK_9pOIFfEQGRF9HtRRuJy7tDdTHSQMC1RmrWUR_NGb4AGrz0YbR-CwFsw2cP7MfLQA1G7MePPyAHoM6iXjrMdjBp3nwxS_e_LAGlY8mV8f-Px-qgGxOywW301TZCoZuobwfO4e3v-zItHgGLn3KkrMs34UEblCpceb73vxW2dKSyuq6hrSM1J3gVFgF5PVHTzv6k90PIbpYsCsMX634CwZIIFGgJln0oBJBeOwH5pqK5yQpGt0OQozIY9TfNYVfubRpsu5t5cm45cp-7OQEADEZptNyvuzC6VEKWLA41KBizlxVqpZwAfh8q-Ym5OAFAX7cR6un8p4h12422YYnFbUJv6gaPKCb-XLCwr-BqDgABDlAZ71lbeW-HLtrodN8-a9HpRCSu17pNesX-WuIlJBUBzs6SSvEomyJvu2y--Am5RCKp2R8Hgq2g2H78g9AZuRsBSk7p2M7zfnBNV4NuK9QsaWRm4nGX4WblpKyHr28XqSQB3n5X7QI17RMV7nx2WC_oXvE0EFcadTe81705GfJm7B4BfqjA-yV-URjlSNnH1Z9YWMoVO594UGIxPSUOJOIDKRQBnVPIW9vIufiV_TzyhUCa3iTQd8ax-4hL6O0DpgkgehUBmYTeWtMJHFI_kNtnklJrNrPQk2vaiqiqghEnSOGq-y0B0j1EVVxWkyQGfYKBdjKktIvjFCZxAaCYcxlyddAoTwUBjR744krPNeaPQESAMkNS6SFkW8NUsFZE571Os6gOnRMBrbGvz6_-dWlla1TVzjn3wRpVlY9j9DLvupqpYzTj8BMBDRntusuc8Cu_XBwQU9QiR5UmhVA4wHJ3KgqXDzpU1SUBiaxwUsNvUKibzQYLpn-pRG3-sLbYCnTvYX3Ur2bMIDkBrF0QVebcheaWzeLkzVjkEXVWYi3mFsBLNCfrz055ITkBouBUxluRSy7Mo6m6ozWg1qUBnPuxnOBz6tUuHw-WPzAAAd5kv_MWM4OvImh3TSn5c4JlaSWjhG4I0bnb_YEHCVAIARp5ySBnrzqT4447erVR7TDLJZi-PVMa_LMWH_RkUnkMAcMYHYfQq0qZzsiFs9TeUbC8oyswbr7OjcoahyvA78QdASiIwnFkuQs0GpeogsVFT1hoqNaHlrPxjvVCgO4_lig6Ac_m9fzHUjk9y_yUElbCuoSZ0yIorhrdEg0PvszZOJIzARfm_NoAYyHSb2jilosISHY2B_gy-a2wuqcaFbkveYglAf_bTpCddyllde8WLbcxWBaTqK4aJijp17EU9uZIMjAKAUASitwyPOzSS19N7_g0vpYMkKXJfRbObRI-3oyVsr88AZL1_NwMTNP23kJ5SLB4MS4LN0S2STK1WvYUHOj-btgsAUyx4bzshD-rfjd4D0SIDVjr-jwotMDJE65BSVpbz1sZAcDITf6hUwa7licVuSHAEX_enz-d_6lzT8qXfK6GVJA3Aa1s8ln_6tGNOv04L0EOdxo9XQ8mFFT6aZaT2BxFzIA8AAAAAAAAAAAAAAAAAAAAAAAAAADfFIsPJvAfi1Zu3B5RbKkhShEa2pj61ErHDi6kSQlXOwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwBf7WaQKIibHJKl8UFjM_lwQ-QbckeUvnrUlLEJ60YwCKQbb6CBlRSd_nBliNNvqE0Zdomu94rAdJl0dllnhoEDaXlKoIgKPevyE8Q3Is6g9kqXaFp6s5Pa9ImS8BYyrBV2Z2Ql6HY3BcSnLE6gxakcHe6oNmQPRnIuciJP6PlEMkxFg96rSncZ6lI7T1YmX1kb9UTfY8tIEqLV7B8ZfxwUqQo6KIPhdezV26TVKEkCtWuqotEd7mZ3BHUPkF8gViC8g8fic8QRW0ZfoCzNCwubnnZI3YXl18iekvMFsKIBL54BSppTlA0iMXbnXCsKD3xmU36vbVLAwPQNXY_GbuU11EsiOTZOB4lB-rhHtowcba9M0zzvJ--ghUBS4RJqhw4D-zakbniFVJhfE_Box0riSjfoTpwGbDxBKQIMAmgBAXjLfxEI_zI-1yEANarSOeGWBh8e6_NBSMJlhAITPVAHEDdmitoyunH7NCrgAZf_-UEnOr6ftLtFR23A66Llzh7925nQAmDVYr65rJoeft2Ltn-r-EjSB5jdxEvzs-NDNMuAYPrSN6yrwVKFMNHCgdsaHXAfUphv7q6aRzZlRbgL2TwlrTTBFZYLae1PZY5eylm0lHeq-X9jF1v364JkGDmm1mQmI697mWJvqN9qiomxij8tDsBTI_Wzf2njemAiKzltKoUJcMS3ZZr5zwUN1BQ5OlolEVYJ7FWXeIF8v-YGX41FSQNwr56cZdku_ZOW17EWJCs5tdFwQAYjD6bj_RwWPtny9tH3Ez-NXk3u-Ugbapncl6cU5HooP0RKrOngJ9M3OBLWVOT99iM6ZLZK39OtRifN5qXW1xuJg_Y_ZkwpTMVLMejFlc_Ym2R8zwv5VCO2FQXJoST5pQG3-FIABTLMCWoZ1eNoKa5cd2_0OBNLa6l9DIXrFpoF23Qg1hw9GoZ7_oRnIF8wPyS5TJcUO7YIjyMaictxksPOuWhHUX8Ni8xLg5ERG4_WJ1D02y8FBJotAZF0Z_LIIhrZ9OG4sQB8T_Y7BnpEbXeeH7nOBTZ65vQc_-b9iWcTC6FnSMc8A2n8c09qr_Mu4CArkm5n0QPKiNDoM74GePT3UpGmmO8y4i_MC-fg9HbN7iLECVbnILy6j3uVaZNCuQmHxs_ccTAh6iZi-hN-UhsQ5w1HgFkY9za-n6HqUMBpKV6AkVPTDjVfCgpHQu2BNFGm-XdohA2Relb5tmcXBBk4z9lTCtQ3ZW4VBuwhUXqAieE42n7RTbRe2KGx6PDxo65FryquySoAhJZ8MnB0A6hoc-3LMlPaDUL1skkSGeaYvb9Zk806HDolU5b8bMIWKc72o42cmG5QMWu0Lh8oo-Gvhx91afrLDUbP63XVP6rb3GBVTJm83WqFJfKm9OewqCPtQN1Q_A0AaQqY2UshcO37P1ab1t7vqcyhOwk9lZsTbuAdL5hrDSRujobz21FKPf2s93UGaAvqMNDoRcPA1lf6TGTJWhslKBL2qIf5m8UVM-ZRmBDHndf-fNgPjYy0g6T2UmRnynMeO9d3ZgCHqNalqD9kAAa8p8E238w1kwjrxET-AOaCaxhzF2u7xMNaQMsC-NlyGMrNmPJj3Vi1ro_BuBXyycXdKTxhquw6m2ESb7OBlZ-VdgeUrx1ipTlIIzC8SDu5aUwGtZQxUPGqxd5TYjuLrV_6Y2WOq7xjjnpjJ7H_qSsxeh6yc7C8cf_r8cXE4BSKZekGWySIh7vomWB9AvEXDHtGAuVJuaNsucaBdRfn1m36cfu22AmU21N_m1GSfPMNcIQndTPev6o9ei-4Vn0Zv2JWFGyivBIbUjz75CeS4LNTIixX-p-2cb4NijEVBPExIhGGoYvgRHcQcwxLuqdMo0jeMvTR8Icwfpal3S1B_SIBfAnkkG9WJMmp5w6FFYMr1Ew1AYXvV5AAHL5uTgiUQPxSJJx5u00xIIr3xdiBCNzHiRbcPj_HougTcGBQNflgy4hU-4M1GYbMiDP933r_OvywFVNJr1CR480YwJLtlXvjcdebyj4aM78Pg4isGJEllEEE5yK_CzhPwUg7pQ2JRgTcVUbkNMTKtgAcwrxZ-seYWip6SoSnVl8V8rXKTA3N8Z-Zk3EJuWsh56VB0UIBJBZRNugJP1bEjlQA_tXCqGro2zOFY_Wn6jGmay0IM-K3OtYMpmFjPtSXHsOlATjbtnx9SEK__u-xA-WNk0Aa9wT0zB32gT5x8SH7qmYdy4CUXvEYPsPPELfGNxhKUDsarpEIC1K-m_DwuxGRnVBt8Du4n_a1OpLW-A8Blh3FQCVcmFQgfliyT9Ip77FuEgWmS1y7mGVmr4Qa7GpNjaVCAF05dhWXmvgmC8zpJ5X0EjjPNNd7Q2Dh5BTRx5N9rGt5503lOfNyjRaA4QloG0tvgBH-pqdY-Okn3C4W7PPEGb5vlXYWeGT_NZ1qIHtyPxh_d4YV0vBzKzevFpl3lM-DSWTYeTknpnU-PBa5iSHVPRhUAuh08xioGf3y86xmZyYgRaqKJmZOfKb-k_FR8GlQi4Jq1dBscVSTGMvJEdprdNBu_igGAC5TYFuAGtf-p0XpdmrdjantM1iddY-zOf7UDDKcWaont3qHiLB_fNHJxhYYdVzKPQ0wOnsJYSTODALcX0UaDwMuHmhzHQC4RyADiCN3fsZSLZoenjZZIMPnzgZK3gwuHtltYuVKCknTpEyRnrSwiTM9ZKI27c2hkhJ0rGkDutk3zOOnjfokLYxT6JRnzJht_TMtuYfXbGbnc1pH7zTpDyjDfWkshHOqmiRruF5cQyPNDFpp5LnOGuFg-WFEfDGuLtgtOHF4Qr3jFxV-3xhqWypawqA1oGmxihu3kNihtg4maZTicPKEpVfEGK_r-qyieUyK9qR2yxuUeMIF6KkBFw9xcRXllxPIT4i6vi7AKSUYBg0syCtU6anJotKofOkeFV3ZPJssP87jD6NJYPJHL80E2d6EhvY1ybltd2-uMSIfqE-UoNbWS-C5cEm5KuLFioy5Pnkhefq1f6MsRpWr5yQsfGqlEjtBqo6s6Fp-7rjrsiIZyTU7knZxEZmqqAGCFxbrouvan-rEQuKe-Sk_XEV2kz1TGm48B1GONSJBBV893PWy4SRTuDacQg52raD7bG4XPyJxqhnsbbgBARJhFgUANTYtmG8gxZjlPD3guPxBMASEJDFyr4k8yZyhmaoWFjzwlR5qOF-06oteLPDonlSAepmTiwq2nHfxubIQoF0VLje--p2Axij7iz9_UxaRLBdUJqCtmoPbeAhH1jbxzKsJ4A02zCtgdsIxhARsCioGIIUhVkT-KVSaYlICUFW9-xxr3yMOwHqRUxnGBq2TDEHdfwlyIq2id2pITnVf6y1JHO6AK-r03brztpaYaJ1-drZwyqZd29khlyJ6sMjfujYktcmNOogeqtVgDYmSDf-DAlB50nvePOrdFEJb_IpA0xDARBYoASUZ12_vAQdDTcVrsXTn0WEM3i_IbWqnK3WtGs1xyK_hpxny5eg_znlB-5oxPiuSYkgK-mhnXc-rZLIK5YAJPSQEBvZoSzE85AZpvVuhyN8-1TztL0c8A3rxmgiazJTZw-e932ajI9gr9UUZu48vW91I_s60WoveCqegOZahBkIRtSvDTSZYeHUHJOjVUq6c6PrlSSx9FKnmbnUXzioSgyJqnNMLk4KXtDxWzAUyzyCAcSQAOd4bI87hZwsPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbUb_BCBPxFRvEbI6OLjq80C0DMk7W2pv-_yQMNv0Ldi8fkz2DkvS4mRSG-22i6f-ldZg8bw7cDMXRjeHquvUVNQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQb" } } ] diff --git a/batcher/aligned/test_files/mina/parse_proof_query.sh b/batcher/aligned/test_files/mina/parse_proof_query.sh index e163fcda11..1999be6204 100755 --- a/batcher/aligned/test_files/mina/parse_proof_query.sh +++ b/batcher/aligned/test_files/mina/parse_proof_query.sh @@ -1,2 +1,3 @@ -cat mina_mainnet_protocol_query.json | jq -r '.data.bestChain.[0].protocolState.previousStateHash' >protocol_state_hash.pub -cat mina_mainnet_protocol_query.json | jq -r '.data.block.protocolStateProof.base64' >protocol_state_proof.proof +cat mina_mainnet_protocol_query.json | jq -r '.data.bestChain.[0].stateHashField' >protocol_state_hash.pub +cat mina_mainnet_protocol_query.json | jq -r '.data.protocolState' >protocol_state.pub +cat mina_mainnet_protocol_query.json | jq -r '.data.bestChain.[0].protocolStateProof.base64' >protocol_state_proof.proof diff --git a/batcher/aligned/test_files/mina/protocol_state.pub b/batcher/aligned/test_files/mina/protocol_state.pub new file mode 100644 index 0000000000..f84e708e5d --- /dev/null +++ b/batcher/aligned/test_files/mina/protocol_state.pub @@ -0,0 +1 @@ +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 diff --git a/batcher/aligned/test_files/mina/protocol_state_hash.pub b/batcher/aligned/test_files/mina/protocol_state_hash.pub index cb65342852..f72b8a4241 100644 --- a/batcher/aligned/test_files/mina/protocol_state_hash.pub +++ b/batcher/aligned/test_files/mina/protocol_state_hash.pub @@ -1 +1 @@ -3NLaGT4vk7t6s19p3FxYM15yZCWjpAShkuDRPJ4BwJadxbyCta1t +10739247575158192228739553163490698149584648921391242737049516468492645783469 diff --git a/batcher/aligned/test_files/mina/protocol_state_proof.proof b/batcher/aligned/test_files/mina/protocol_state_proof.proof index e6cb41b70d..3f9d69545d 100644 --- a/batcher/aligned/test_files/mina/protocol_state_proof.proof +++ b/batcher/aligned/test_files/mina/protocol_state_proof.proof @@ -1 +1 @@ -_AAQySM-DHEZ_K15fJcW4zcaAPzerdlIwhGBuvwnCL9EgLjF_AD8Lp5VXoHTE5H8Jit3ayVOO78A_AYsluuX2_kU_DEYpbXhTOLAAAAAAAAAAAAAAPws4anv4-L7cfzd7RRaop0RawD845bk3HBt3tz83yySaq7KsDgA_C6rdEZhxvuL_Ny7P1PoezsxAPzQOTDtJE1RtPzDv5xIFGaluQD8Iqyqpaha-1_8tkF70CX96wsA_N_9KIABc1lS_I42wuQv-0gjAPyvuSJVkQBAxvzAdBdO7fcCDQD8eEy8HA0ey1r8QXPbE2FgxzMA_OiAgTH09vvP_KX0YzJAkJYKAPzACyPGH4_TRfxTRl1sFKxvSwD8lfFob-jJPw78bulJNYkxx4kA_ILn61bG_eip_Axl2QgAIGVuAPz8EgymEEJ30fz_YMKruv5lLwD80FcnzuBFQMT8_CnSXXhdTjsA_PENvQ75rmG__AteLfNoYt8kAPxIhQSaS_MTIfzvrX454Or2dAAAAhD8O3pd2sbmO-n8RkAlHnQkLrL8P-jauPjmUX38IGOBo-dIHQsAh0XvEU7kUqSPPaFAOMqqN9hF8yU4ROwHv4MtuvfxiiXfIXqKSRycCDegj7D_imTEY1jR7vlM1wi80hbT74eIPfxiF9zp9Vsn9vwsQuMmvIqIzwD8Oa0ML44E4wf86GvDSW143VIA_LqRv8bR7jdF_Ak5sY61l4t0APw6RmhtnIaCPfwNbUN7nYnAoAD8T2wl-zdbtd38oYWcYYKsc1UA_CFbjWlod1te_ALDiTHmUc-9APySSKYd1jrKk_ztX2e2HalcywD8IxksZNzMn_P8TYjEeP8zRg0A_LIOdNDXyzSv_FUo1jcDmeFnAPwkr_IQIfRrAfxgYGnTHzIhtwD8r9Zspy-Vaw_8plc8naZttAYA_EcKgyEXgTsT_HQnHEAhCHAWAPwViPnvfG8KIvzUo-9GgK0gyAD8D9dnMuUm4Pn8RdqcqtA_KD0A_EXhOo9NCn0K_HG14D6uQvZ4AAD8OnTFQRkCkF38vhRy1PngZ2kA_BwHaTan6sfc_FvqRQL7cEWwAPwwtzxWehGwQPxDXxbzuu5_LAD8htaCPONSJPf8mhcPqk6JsHYA_EK1RdR175l8_FQUAYJ5qXclAPxwplgy7hKO6PxyMD0odH32SgD8EQE6eIdrNkH8oX5e5AFd-TsA_Cf4GmXjVukk_OetiJ9rfNrVAPyxI_DbJL-35PxZe1_t0oxChQD8Gb3RMeuPPcr8mHgWrWQ0J1kA_CLUKLrTGxFW_HKS4tIAzU-aAPw6enflag-TaPxwMHWqYMUF7gD8utE7vC71iDz84C0L2j4iMlcA_EBSVr1WIK6T_KYHorPMIlw4APyu6ZgGDOlCr_z9QcCjsgLrbwAAAAACqazEypA_gfUKLNuwoZPeUMAqOEmFCQY9uoDJz_vHPAqCKS_5BV_Y-BnqgOhDpNX8P-7uAnAdtB_InVl2kaZGLXA1ov9ccTScpRHKz5fe59ryyEfdxu1vG1js82fdZAgkmDVFHkSlWoTxNR9qDzivoj2E-Tv3sCVd4B6XX5LOOiUC_NqdKAdx6yHb_GqtUqLXV-IKAPzTtL9KMqyltvyxaRI1xmZpTwD8QZ859D-HpeH898ecVoyEyqgA_Lkswe5LXX0H_Gtpxr-PSin1APxaVG6J4BgCePzcdnWFmmQ3gAD8QSOiq2jgaQT8Xn07rKQETDgA_NlpFPKLrDlc_H074aKr4B5ZAPyQbeDXK1aYePyXxuizWJ5FNwD8VRXij_Rfa8D8fvV1jdHZ_sEA_G0PoW0A5tjS_EvdcwXT4bETAPyKe9MJ31qzrvwkFxvWPUEx3gD8TO7kpXfW6DX81XPn8hfaAJgA_O1zf0Qlxgca_ATXpQIsN2oTAPyz96CMaAgQ_PyODPdJBOwokQD8bIYJxZq3mHT8NT1yfn00NYAA_BPBknfQlZ6p_PSQk1SZi4PpAAD8uSqnVrRwc638_J7x1SP5TzYA_AB8L45iHIdZ_IfMJqJz9secAPyv8raeHYJUI_x-9X320Wu51QD89oaQoND3exT8aCokQM5iXmIA_A6tVjJjG8av_PvhH6EQcoAJAPyRQazKvh5Y-fymybc-mdUeVwD8vcNkzaNQTqr8aMX-wQrnFNgA_G3eXoLfrB2y_KUH28UXogj-APx_qubp1g9Ogvwsf7lOmDr2_AD8ygQbcSuIMcP8KSautsesOZEA_O9Rgf1Hjw_c_IeVO8RDeqkAAPy_MobRHtg4YPyrBaqicLyz-QD8Wkev5eDSdZT89tLDrgKny9EA_AR8Lfn2D3i-_FTi-zKRWD3hAPwTdTG4ErdwxvwIPkiaM8x1FgD80bjKsaKwwUj8zrFxwOMEZhsAAEDnqw-sW-RM_CPgSxArVp6jVxHkTt4kIaMJIdQRw7klS3zkD8XK6N-6wQJN6zyF68U87N6pMX7uRabTFlcSqS8BfiWHWptlPTAdr_kUV2udY-bB9YQwASpM_fUCJltBYQAB9wQ3h30G3ZLsInOqgBlbUFEie7jTtcWBiNFAoSQn7xgB7Y7O3OIQ05U1xv_RXHzadiYbj4XScTbGH69FbQP0aycB_b3VHwtutzEDzEJT0pfyYkZ8kUlt2FCijXiFEhEkPSkBWHhsPb5rho-QrvSm966vko_p8BMhQL9xKDTYsgTVBQIBUjhUyO_ie10YcTPOODVN0Cj8Kllisq2i3pf0kgnVYjcB7Ji6C5FJyi979lCnRR9KkNJE4b_JYhI6gAnFpSDMjTQB_wCQxeaXjHmAO-DjahJMsI6fq_bDVYqQzlXHFZJynAoBjZ8geOo8KTBOp_fYaz9aYyXsyZQqlxxmbN3lxhQcahEB-vgTDL9QkpCXO8fXfR11XXbaX9ih7Eg2if90WMPh8h4Br2rik6xk6mRDibE-cwNwoHqPW0WHCcXqthWarsFVDDsBdbIcrShDbq_BNg4_WOJEv4OiRRbnkre4my2lk341_DgBfFQ_bQobLvY2SUsiCm7TcPAy-rQO-YhTuOPoR-TJjRsBBgCkTIUmGVk8Y87bZaD4anEK5uboKIf5LxtqF6K8QA8BcqKnEN6dOpWPTTcwB6VzBFcLEuWmhuTORTgjq6m2kSMBV0ZkyiNPG_M_bkjEse9TnyDl-5PgsfjLdHrR-usZYTYBylwXBUjSpg0wFFAFfv2r0bD5l7cg0dfpUaqQOl2F8jEBHRG5Xcb8Oqt41H3IoO2VJJPFJhR07LKs92otASFA6R4BfMygq3m7kTqhqNEkx4HkQogeZORsT7lmcfjERDAKNhQBFg8LWZtYNdyBTrW9z2sMwsZlE-lio0A6qKZPlarSTj4BjvoH2WC5t5-4aam1nwpJqvTmt-XEr_Dw4f3EPo4OTxABPaFNLH3212YOAl5Vv3eoDEsvaFAgwU_2S8SYJTPDbAIBHK5v04nb6AbxcqC-IkFNhaR42Qrtj37ahL-xAdII1DwB0OzfyP1YpWPLVVcOhQkeLYljaw1IbXfSA76I_G2CmDkBxZ9K-JL_wRDQKWmQbiaUWUE1vBqP38t_7vObBGYcZzQBHF4ZiA8Fw8W9gFrY7FWGYRg8bNAnnfaRzbhDylA80yYBgJCSCfoHBQ6SszFh9lwMBjmfDNNCUYmyQkCdTXEeuCUBYgkJZMuEUTdngpPzw_NI6RByhO8rdtmdVQ51qFdX6DMBVXzB7dvsvMulfFppDPQPf_xnppTJA0bqJ8Ft2jPebDgByASF0e2lJQWHnaondPJTpuRwbiLVPCr5663XiYaWDB4AARGsB0XkViSM4dsMA-STxm9tC3mY2r4I6Nq6BzctaTsuATGantqQFS1Q8pky8VOvJ17wGCff5MdYpCCGQEqISwkgATrrSh_4rxteBHdOonEnRj9YB9b3fR_B1wEo_kvu-is8AdPn035jDpuOd7OdVVqd4QKQUBxgKbqj82bYXKZt7polAVnd-83WOVRzuJESHZfSld0nCVX4y7iryAaJcWepZ6EjAbP2XTVlaMXr4Jvza1s5vFVoKV_mZ10Gsqfmx9cNl3snAeEBpu4HzXV5BybAveb9pU8UYX2j3JuuGqfjYEYjg80PAUTaZFXR4udRZhPLz8AajTpGUC9QKX_s1crkTbtW0f86AeDWwmZfqAsYj5xVzLI1oTIM6A6Ehagw8aFOmVngaiA5AWEukwgSsdVn9F0eV9gt4-xOupJrGjt3zoInslMg-AIdARQtzaExHc3AoWPzfnNqdAOM7JJ1OoOT-CRofpY6pxQ2AcAxvxk8C1mGb3DcbIFsyJf66hJBs6dWZ3jrtIr7GTQ_AUOUUdZID2nQb-XtrNxfUuJMzhP06iAzyRW9Q8MpCWooAV63Q4yeimyBPqqiarCr9STQb5gtasgUQurWH-oJjasBAU6srcr0Hxj1dVygmTWMkxauj1dkzrDCi-gU0-M366gSAQM42OL3rbFaSTrTXP2vjGdhm-RBbzkmSew2gZ73O3IRATXgWJhZmXDfDrK-wUKLSGqidSPie-x3Z5nuaIYS4K4BAaLmrGuv_JhJWvXo9GeImlRVYC9cbYVwydLiGI-yatEFAfF4LGlSdOFnmSZt-If0BQMZOUaz73wE3hoF-n0O8rgPASbibDRK8Qc7Euc_B5cx-D56lGF6XW609OHM1tCtLJcLATr0WqjRMRv3lysFwj2VKedG060khu8Ei-sXIEDySJ4qAQBHMeiSgTG4e0k6V5JZmFxWB84JunvC-YJaZdkSt0gqAVIXTbygz6h9J1WUiNU5Vyn-1oAMF7_D_VUabxlk-n4tAfr2MKQiVkVUdh2gDteHB_ww96jR9dwJrFqWvZLVnXwHAfyJLV8P5UWXlwJQ7nZJ0JdtfzYDIeb_A6DEyHFl2wAaAefHdr9SlP3T5FZMjifA0atoCPT_raMLOwV17YQSoNUfAf7vtN1bDvuPOqphA5jnWKM7I9wSipYYb5-prRzyEQ0lAbCT0K8dfclIQW4SzL09IkdfLy0MMRTrUgiHEuZFj9IcAUOJzgnJWn-gEPUu-YClF9-16UNqN0Z8n4NvL1CedDY3AS1BPAUtuMzoAerOoD8G2xfBCZ4ILIKs5ErFQcFr3-gvAAGwd3dGTZ-Wf6jEZ1mwugBh9ANpURWDNoy5ITVb7IQZIQET1uqN2n-iyrfdvpy4iCYcsXkhP4YXeFr22f2oyKfyAAFdNxl4DYP0L0CbaNBTxD3-k5HbnENw2V2GoAkxNktQAgEq5eG8oDNA938c4C4BLdBzuJt6BwBra4xwWL9H7kWVPAFVpgXZKcplFNDs2yFR5P6CYaR-dtLo9vaUX8E8QSm-DQH8MkD4iJciz5Hsiw3LvFx-Rk_tFETNTXREvPxQHJeOHAF7dEOoHIgAPrDWpIAfRtlpQ9qzlbWIV32F5MRSSZuuPgEnXbSwaIxurRcLO93AUJVcGIUVn-0DBvdtEnrciLF5PQEKTlmrbsxhM62GZqYlNS_0Wrvvpe0i4CeJfTsVSHWTEAF02aNTo2HCVi1FFtwuNRP_DxeNdnygjMfSsYN96avxCAHFzL3lMrbVCLtS4OE72DPuUdMwXg4rgNGkd0cJx-ptNAGrjE73C70CtTo0DGrYaozA82jEIxQu3HzggZ96e9-qAgGOfpCnlhT59oG3apvoWh9vx07kzlJIdPhi2CZoYpjHHgG_N1Az7hb4BTcZO7kr3TivuFUszWhKgKuLmGXDU8cGBwABQm5iRE3WEcS4abe50pb8YDbE_Z4Bhd4DvffMnTMbxi4B_wahYW5Xa1QDrGWFhp_aCHxHVYRnyZ1p1X71PaNVjSMBTDAMCXJj-Z6zE7LblaxLHlvSJNjxC9Vv0XaTNtv5rjABD2jn5BbghHzXufpy9T3ul35DbKLwH9GEM4OT9NhIAA0Bz4kl_N5VRcFKpwJ4zQmTGyNpO6CaAxHLC7LSs1lrWDIBu8zjgUsSAkJ_St-rifxMmbi_fbk0lzJoxx62lco7oAUBRlPHxGij-GzTMYpoOGKZbTG8ixujbfJ45atAjnfWvD0BT8OFV4cjlm1UTZGvlKfwME6_ezLBzDIUBalLgBZ9VwMBwTtoyjAR-EDvhbbWVyUdUYljaq171tSSRqDZ1xaOlgcBPNoqK1INB2IhZC2PjUSr6ilcj2zgnKnQujeBrCTkATEBKqX-at1vESL5ip5ypSalV8sznP1nxwRxAj1hcQ2M4RkBGeBDBtE77lKFBBUyire-D6PzXRbEDbHFTJO_BFQBjhgAAAAAAAAAAAAAAAAAAAAAAAAAABaGBeAwvwmdcUsVd4krQUJnvJcl5CQGgEG-Ld_8btElVpk6pWHThFBXmUa5nshQyq5fj3P3OqRLPF9QnqCLZDxU_fAkXMpioIypdI7VqLg_o5ph8ipFHq7zDVD0ZT4MPt1Zjk9uxk_RPipPM5yWUr7iy-LqQMONRDiNoDtNKPEPX3JDfbRPgptPa0I97AoJlKLL-AHiDzMogbPEXm8VqAoFpupX5HzOQ6w2ndsE6-KBeXxLhXT14O-CIjZoQz6pNgw-RFaZwEs21NsYF_wXtMYCgDCfNHpEYgAOImU31rUaVe3_5Ot0GgpD1Yj_Mdrf7dx7yXfKdG-_hiY8d0xkdh8jOOCi3h1_rSEp88o44F0h5EIDL3-HN5VwqANhf7guDvvhne0nx8TzNRqggHipOKHifnNn8UyhZBGG7U_wfgAKrSbwKSWYOM9H_-gqNHwPhyhEr5BYZF5STtG_7qjCYBZymzpQHvXk8H1qpjCnjmb8ubTsOsdejsNfzhhv_9MRJvO2B8HZAHg7QOwI3hC53fxjAmNA-MojnIGtC_QbG54MhdIb6jjxJdd3ij35ff9o9fao9U87VCoODBNCkd8RawLcsYmDSsZyKK5pY-iCRNVJRm-5rjHB5Gek2PiQ0fpZKaTbMOKV2c_qPtYKCdfjHf5_-k71-0HpexbUCpnQJFIOAcSD89iSpMObXQlc3sFmKWYYC33EIWMv4KeGYorL6StFJEko1zL2_sLDn-i31lp1IR6Bh2ZYoGrDQlqdsaKcGNFuLy83dVZNmXJWuAIMcqiWTU6PVKrEmhL-JGEEsW08Rr5osH4fMSGjC_jFIu3o3QkfX7E6bXdICAi7yFF57SFt-HXy4dsc_eD_ByUL-51TY80rsM6Lzz1QiXxAtK2ZLe1QKzpPqiDwY5-b2Ii12wc1KMXQLTzI6nLD1vxdoYQQI_RcjhPrBRcu0sELxr2m1qltN3RNbMOBvE6xKik2mz45iYG4Wvi6o6-KGLNvLqfUm-bsbk_FrvC4M-TX0CuJLdiy4fN49rVDikZirIx94VWK3gcTl04ISJjQC7BQILEfaA2TS4WZ8O21tc9UJ8_bgfEDwgcJWmTp3Oe5zI4D-izeZU659Ueoq5yyMHbe5tu6IfX0ONKEGKkOj-7ipDTXOtZJ-gPgdT8yO_HiixGyRvJwmWFEbntdGuMbatCe-bMWldeMvTG6QRgD5dHm30hbyx-w4MhUaPE4AHZIf0SpBT3n8Pc6P0ynZpfp0iMlIDTLPavbCx_vXOjcLPEn3PqONTiQevpGGr5SbD5KwgYv3IMf4a9ZMouJBIssCUjTxB4WAGf-cADtOKECnudIof7jLcXmb-WzZRyI2QRr2N-cNmsmxalTqkuxPoMGz2QV6R8wQYnnJmkj8lc2sG_D9KinaSZy6z40tqDwEiwtYfHZl-SHU1PVVKNEv96KAx2Ns9HQACRTaLmlIuPd4hrG96Ef9D4ez298TWjp-Z3KT0ztfqQhX7qS7-Oc9Y-ufJ5qJLuxKW-9fdGrxCm21XzM7ptIjxJRJzjJvEWwe34pAQiiIlAcGyC7TVyVu_RMzYojAnq9ILsZffqfWFUjwssJV-3vMNOYu544QTb8ilgDywo4H1Q2-Sy7dyXnroq6YCi4dfz-8wKVBWYYK0BWC6I5YoZNJTEsHO8XgpdGDah25fWUrvVW7H-c4fHrjlxQicC5c_LRFUgVRhvd92zbvRD5iMU6GxrLUeIXYmxFU9EIDdTN5UkB3fLkVVqD6LeFkvi2b6sRlnwvPvM07VFY88eXqhAQqAjeHI1ty-8GWadWEjx3wIOa3mX_9hfrx-RSuo7SZSLWGWCkTL8DVsayuocZXQwOJOYt7UhIAV2DMO7JN6ucWzwpHBmZN8sVnF65KpOKEYgfh_03iTXb4k2hYQIim1-LNSGtdvIe6WGibMK1Y2VwMmLFpAmFf0unMvEokSuhcH2QC1c9Glr7XEHHxGe7TKkXWLesvQp_YN7GyUs2_fWIts8nAH3LeREsRUpp79xHZDhbIWu26uQxkZSdujzO6m8dgdkiRR05CzVxHhIz3uBNNvXPLf599RGeKGy71n3JFnvFODxoV7ysXzozLOTRJlvjdLGAmPhXy9KaLYYxgis404AkLgJ2vlUY_wdKfJicc0ll_Hy08RWVMhPjzSA_L2kBgRY_qWhznjg9zqjaWfylS_42kLD80W22-QLX6ie_n3G2ficO_wLhE_LsUR7h1pHJO7OnLz5p6S98dwVYs0x8HeVUPmjLaXK4VXks8mNl8O3vVwITaB92jQOa5uazis2pAgMLmD14yDGTleYSXjtu5SIoLO3jD-fobAlXutGdb9CGvDbNcnCzk13ZQkvAVgnmG2Uvk4zWBCJWWxow-DD_uXwcLvE71fCj9jAvyCjYoywnRYady9TPOcGmCw0vyC8xMvcTrIx9U55azmk3dhK5QB2SHPR8KeG8qz_47nSjzLp0eAS3pvWObkXauDtv_pt1RA4ThlC2DmTb7F0PXXOu_HLaPEiNIpH8ArqLdIAsm5H3vHoSb3-ZkbTUk7neVEK0AkUEZD5hOVk1xnL62BmcSv8IUx_72rEkx5RzI4IqK54j4SsELY10DX-xws3RQJufxqr-p3LmZI3tAjZnjj-34CuPO11iUIIClwWIOOiX__ubg5UGFCFWDV2zAbOnU-wAhy0gGsYNshSz1PHCGin-hqdHwEaHG25gCW0yBQjf0bI7uioHThqQhOIadWNCmm2oIURb4wya_CfCc0hxC2cXBAh7G5E15O86hNBa8nc535xNkvXnf0pcI1KCTASSOo80YmMFYH7TTdkn-dIctSDWYaMibT_GLgMBKZMstIcYmjNEuy6QMH5L3gT3EGj3gRSrqUe0P0qvQsLooq83wBIUap3WEOh_Rbfi9hHk1FsDCXUrDBEzZyZLk3Nuwf1rzgN43agzhZrygFpDj8tk_kYRFlgrB62d3Jko2b92NE_1gfp_DQOt26K3vrIsMjwXw74PFs7SSj2t6EoAAv_NdUmompIfLv9A2mMb5BxmAnJ3-kzy9olBJ0GIuTfh-8YMqqHshUIIb9gKltf-Ai9rA-qdD0oQajorMm5gJgMEplLpvgiWZg5gEM2C2D3DLpAJ7H_UU1ybdahaWTwkLR2aAjbJ3KTmC0BbxGRJWE0WsFkV6LjHZp10dANPexwu1A_51gZe6U8HRBCJiPyC0RS95UqGVSB0jrGX7m-TSQekaQ3D4geNhDZbyeNEn47tzWoJIyG34dhhbFajB0FXl22WioS2xsxyJAD4E__2pi1tGPJvXCo--eBmjkfDe_NReabLf0vRx7X8GRHkWk-qwTiSlVK_rV1sRDmMDgIrjCMJ1P2oDaH91j40t6eXKt0DwfAvC1x9BZybNLwpo5J_h1GT5FpbwhwxOTNgT48u_Ku8PbRahHVmUDhxH3xBfSOLO8Awf41ZK4cVKl6SLLpvapw7H219Ecq0XE4mXqc_gaqSBmAfWOl0aVUXVQOYGIaFgMwNUJ0ntq8ix_gNicoCfa9xlttp6IrQSg0-c29nDPtXbyN71QES62PIyZqSTqQGfR8071jJH9sOJZgtFjbo2XBcp5r-Ju5RRuLB8RoakbgG9LxVSAS9oEAWzJpd6yNFo4IHdtX4cIg7KU7-VNCsY9fhHRVgGMV1kwURwQnUorbrK3LNQOUXhq2bwW9xOeXx82IYk__3DsxXGFSpBbAzZvE28ZFitk_zOmVfcczOflcv1MGk2jgSm8s_ldrPAHhrCDxnlIa9o7oJuIFxxr210UKk_qda8QDsaTvWC0Uhq9c1pWWQu4piBGBUIMoLZIkbWLRyUYxJv6l4OxZRt94angLq4kCPHd3ujw4jbnw2Mzd5T75htpdDoTM7BiZx5trVWuhz73n-XvOMeJUn1WSIYxtZ2hvC9Y6cARJavYcaIZMeZ3SbhDSYknIz2XBEjXvlehyPRS0A9C6xCYjGyb89BLDDC-QanxEIYQRikxsXS63laQXZ31c17aQHKjXz-MNsJ0Gx7S4Fy6hlAB_eGwa8Z7U6wfh91oqW4TCctbAZEXFnv6khfCGymeOd6UUPKi_S3umCFSveIthgFYlyQU6iQ6YUXAtC8SzFD_X-fLT0CZIJMueuCmcjyzEfxZ5DurH2XZTZ1E0xMd5n8IbD2bkRGWEn4R1rIec0ZCHjX3cPIfip8hhLmuX0RBbhd71sv5kK2AJ28tcc6Q4YLlOomKjKbMeg5z28Lg51MG6VDItw_A9HTmDQ2xPjY-Q_NNWlVWwutIIUnHsTHXaQdHZ-7Mwjp-GxIwWPitI7rjS6amI_HLUWw3_P285HeUE1QvSQ7mG3ghjMT-exVufJHH5UxbrME661r6nTgYYAJWIzgEenJ7oS8X9NSXt7HvgS7tf4uaMH9nNy4cthPEZHMjza-7mlHWDWx0-qRv3_XSvOSvyI9c3P72hPB9A8_XJAf7bj79RELHGwJR1EXU6_E3wWehlPvaLTZiu4jZlZrvLJvBLM4TAXc0fRFes0j9kHcgt4P1Jt_cpSGX-w2sUeon_epWq7xUpuck6Dn6ECejcAnMt5xydQmRtwCmICzUrPMlq3YoGMvrO-sET3AVfKIQRGeFgg1US-GLHwA2DVRofB_7mE72YqBHh_xuqIzb5NMcYyFG7V459SSn_wyjm3Mu2tz12Syczm6V-E2pUGgNgwDIZhGPDFz5AshQVeJrt5DJYyi2pewgH8cHtXlF4i1hp7RwI-_-pQv-VbdC8HcdA0TzNO7CQFIDssYnBhG64SCRWWyoIubdkgvPDQNCEQzcLlPXlEVqoRy4KP36KJMWEgR6uvZz2mkd1Unwis4Z7JCiuDDpCgSeNMxSEvwpwDxjYvnfBrtpA4HjVOgbzSMidQYuQenn9mNChqdBe26jcMBva8Zvh6xo540NrObYDX9L5hXHeuyz5PcAF5FV5AyXU36i625F--9GJP5DkREwPdjOzszmUEPT3G-X0OvvZcZwvlu32ywQ-cs5ZCl60OQGvchkSgHJd0k9jjHn2LgZEsA3mPk9do3ubOxlX4MIrPHyhFGmeQbMr8gehVAykHMdUSCacQ0-4DX7iLkGuFehOZpINmDN-ZNWxu4Dvn83E1tQQXkhcDjiQnWk7cSg_aZDpB-2HIIgCJnEDMVl7BQ3w1KgAcViiLt2BQYgqVXazETA9NfOuzzMu4y96Aa96_h5FyNgjpgK4oKpYemzTlrzrkjtf_DJgtN8k9NbHDCrA_OUID4e1SdbB0h7WEFWXtazJMykRBNU_G5Slz688TeJnvgAcPTbAU9o5093n8hvaSHxRymZw1MrbLnWZ0B-UEkzWiDA1g4LZgzeyhpS4rkFjQp19VNMyI7VGrPF1xXtFa_E8bqpqEktrZ5VL69q9s8KN9R1KpBUZsfkvmJsGGrLmX2RuydyhHT3jl6FmCbYj89Uf0-9yglafgo8iVXRefn-NCB6u2QEAOUcu8PhNQzwpHLe8WQhUUXzoZxa2dyUWzrcAcaj7_WkXPdqQ5J4uDqB-jkI9XIUGFh-2NfVTO1_yxRCg9qo7ytv9svUpRWGuVE8YwZtvhUXfpwe7YABAYkQUwE9i8FXKabvcbRExmbCLFzZIdlXf6LU4PZxkNqBjhCvUT4LSgtrL81iwZvi8FWceora2-xbggmxnvQgOtzW8iNSF2dHy5um1lNyW9H1ecsKW1mJjSL5orJM-DhIG-v31sMQ-QB37fSexccARDPCJSbaMDoSGEC-VUv0G7uCJeTiGWD806dcFaUHktGp69DAL5i7t68RRlqkfQ12rIbLRLzkEeP5VvyIqTrp3j_GMqoaKk33cOoXttNlyDA5W5umFQ4TwStN2ydIoNYJVsua3pYzvmjJzU_1UNHkM9uVpuuQgaElnuUV7iIjSlIb3AdJJMF8Lp2ke1TjZcZy77bnKroi8OFNVkYS9OGQrqTANEkDr4r5QBfKG4PQM_uGNnQieNYBBsQHRdyDhApYATjaVvMQUbixYbOEb1Qhf1MFHfqH5MIHXrCPJhyt8DWiZ3TpH8aYm8Y80FPJZKuUUjRkXf9-kwcwTczWq0taab6ioEzX1VtoXfhit_R_0TXxgqTiwWRhGjMSQNME7G-ogpoPi-AzYcQOCkqz-gqFxzFmK22QfpOOuPyFQfpPLKmGAnTIOI_9c7ACzcDCf9kJhFCikcCuInL5G1_21fWJ53fA_kanqyBNz0ujmjtjYzHUi9WJhnPBnDatxE3ilTMDV9hsczudWEeAFc2srUn762Fy3t3YjmJ-9AJS2LOu_9lzB7TUPKWaG6_1DYyLugBKWMj9SH1r0JHOWsbc7G5HwfVPzZSkUt0rbLlkKUjH7VxAbjEYshbwsBXZ4Dgdiyh54AMD4a-HXl_Jv4z5YzwjWXgZom-C-eHJSwVKqxrmvRl7lzrejDnkLb4rRyV0piCyDi8akFu345_MkgNa9dVwR7BLPxKxfm7OHJDDGgYIu-eeBwZH_T1SC6pwt-Ymx-fheaTLHt5ngmxSHCMLTgZ-RBppGpxkhCOXG5CKiyAiKMIOp-GQXRLxQOccol641PxERANuSN8e0YORrGsj4fBuHT68fHxY73uGNtsW-31DJAC6zpIY4M0jvFqD3jCVq2WeYYVc46RAZysJgLAddLoVaRIMfp_a3cL8sPkmaAs8ZQc1rraGRUgKy-HknfkQSTCDpfoX7nUngXoSAy4FQsyoKRlA_AuV71q2QoT62fb55R50UmV3ebWyKLZyCXJCMRlQUPuWPBcUTOdCiBun2Kg9kDhFbP7QTGDSsHXXGCZWBryfBsXkU-8VH0v5On5EMXJp1cx33CHQwfq_Jj_w_9ZAskx0NTyIZu9UOXOdSbRHBMhtr8jpMVcAGKOZESVYJOPeuycUem8oXwzM0cGUq4tjXBKvpkV5qIAZPRd1tI1Hx-Nz3-3iNJPRtJli6w6Iall6SaiPEQjyYkAVfGA0YDRhaZd8AepE55a2Al6xna58kFs7a7PXl1kQY4b0Dx4RTeQ3pOFXWZt_-ryH9SF3Zn4yz4hS3RURfTNT_g0LboWn2BVsQzyrlrO6rsxtk9_tBmcVoQbjyL0mgRwNjfdZ2E9ZFVAVbvU2ul8nHSB3S-hB9ovAiar830qBvnMyUI3cLiKuJ3vf6tWoYIwif4X77dQPB-msgq9O5rE64USwfKCx7ZOT23fgGKDuzrT82-CEH4iima5WoSbp8zZm4RxnhjPHtm4ko221MmLWL__cojCgrQt0FRHBPdfSNDd5hBGmI7TgU0jy2j0eov1ZgXErm10ZOTlmOB2KTmMd4jgQarR71mh5LJVioHe0Y4Jmno-nynQazgzzPzUO0qtmBdhI3_XRuaVjgeeUlDCsWfM6X2KMQFLI2PaFOgUhFkl4BnnA7k7j7rSdCP_dj0fVwLjxS_Zu8D2aEPMdyCP1ac8GGvAwz5BAuEB9iAEI8-SSvSyJzyUsELz0RBwuIteNqGu3x7-gdonWz9w9dK_Gy0emHhlBOcCaoEWNulKDNxIOIFaihd7HnOQcJb0WmgCpXnUWC02Ex2_szZMs-dGb3rNjTLS_HBkWABK_3PxM9aigZVkDbu5dFnlDPwYkEljDvHmtYL29s_Am6oLBDu1oIGMisZiYDtmducKUeL-y8NcADII3GP_LFWFed4XeOppQS9xK6Y5pp06P2k46cWFVKdgIb9-TqhDXoYXRnYWhaeHEPSmK8wmTUTYbG3qh4NTDubZVK6B8T5QhqyVPf4GKXp6GB-TlMRPiE5Ot6atCcZbAMckGRP0a7rBRWqqZzF_k-UviPpFOzUxZl4WwOZHBs6JRD03S0sha9Iujvw3EQ8-06sE-qkpwiJu_UHSG8IMa1p-Dq9JgqXlhRT7u8tU2Wgd6K-g5iun0anKLGAmBs-sumuLpf3HnrERE5cEe_lVHKxtGkzIbdYHVv6TTqgGB_JrX1UqBkenwtxqumVUM9iM79-BcuAA37nDhD6xbMwwQFWtBXGKnNQeLt0qyLyj4T5seU-rf8mnk9HXhTM1xWiEyYgfFiKuElrjydw9qhJPHBaXiP81d0-OpQAmUgONQGbYKaUlRTA51674p49VoZrHQZP4yOSH06R48027ZMtriiq-tLi2azmAEz7jSjOH4qG7p-9woN-Y8RXuKkYQDX6L0L1JNotPj7KZ_Z0cK3NpP9QEdvrfyFKz6l9sCLkKTjpt4nB07LFrwSpUpzZFvem-GXNOlnJzcyOfFDRl9AftavDqPt5xIfBND1RHJC2YvrATnM-ee6WKkh-cDnEizn1V2PRIZTrzlfqldNMhAiSucgPBM80dqTKmJS62USODpNKQixXycg-2FBPuVBi0FgGireMDQUL0ezpHifa9moBERcR9foDnqcZaGvE083yjaOO0tLWcp4JL5W4jTIFWx5NWzpTC6eFqO5eO9nLOGg8NMLWKHlEDFHmN43pBUgBH7rIZ6z0coHT-ibp_PXDMmlvKAznCzZ-Gee57FkMLYIXD3GUnEQYjMSejauMQmQqxj08Dab0au-54V07v2qqZgI= +_AzFacptM6EI_IuGEn36D_DDAPyJALP-mtaLe_wRKLlqjdLzswD8wQc1hnC4z3P8nOfrwyXsm3IA_CVPq1cotlsK_PKA6zqDmK-xAAAAAAAAAAAAAPy5KqdWtHBzrfz8nvHVI_lPNgD8AHwvjmIch1n8h8wmonP2x5wA_K_ytp4dglQj_H71ffbRa7nVAPz2hpCg0Pd7FPxoKiRAzmJeYgD8Dq1WMmMbxq_8--EfoRBygAkA_JFBrMq-Hlj5_KbJtz6Z1R5XAPy9w2TNo1BOqvxoxf7BCucU2AD8bd5egt-sHbL8pQfbxReiCP4A_H-q5unWD06C_Cx_uU6YOvb8APzKBBtxK4gxw_wpJq62x6w5kQD871GB_UePD9z8h5U7xEN6qQAA_L8yhtEe2Dhg_KsFqqJwvLP5APxaR6_l4NJ1lPz20sOuAqfL0QD8BHwt-fYPeL78VOL7MpFYPeEA_BN1MbgSt3DG_Ag-SJozzHUWAPzRuMqxorDBSPzOsXHA4wRmGwAAAhAAAAAAAGKZVEkV8JvnwXkRRC0lSEBTtFkF259BVjBh_X28MtMPrNdShffBok_HsebifDwWOlWmsec2OQMdBOulXlAEBRb8b7_mrMmzgjP8Yxh2-VhDl3kA_JeHiOkGKzrd_MehRClA5nrdAPzLn5z0MOXoxvzdnKDNZbvdBwD8Expph6JZLFP8e29lKrC8IakA_IsHEI-xd5zi_O4Ma98AX1z4APyHnLAHLae9HfygJl_p4pcbTQD8EV-AVnx0dZz86PHO-mlj_qEA_E1g6dvfiitc_Jv3EPKMcYxaAPxIa-BRXLPAIvztbalAc4uIpgD8bmR2XrXXB5D8Eo5O2zmLxsEA_MkrPzde40VE_OXNjPwVx0CdAPxOqrxLhIKYQvy8t6_Q1yeplwD8d279_1s9ypn8lEJcFVVq5u8A_FSZlyFxsn1L_EDIk2Hgoh-VAPyzRweyvszRLPwdAmTyPN7RWwAA_G-_5qzJs4Iz_GMYdvlYQ5d5APyXh4jpBis63fzHoUQpQOZ63QD8y5-c9DDl6Mb83ZygzWW73QcA_BMaaYeiWSxT_HtvZSqwvCGpAPyLBxCPsXec4vzuDGvfAF9c-AD8h5ywBy2nvR38oCZf6eKXG00A_BFfgFZ8dHWc_OjxzvppY_6hAPxNYOnb34orXPyb9xDyjHGMWgD8SGvgUVyzwCL87W2pQHOLiKYA_G5kdl611weQ_BKOTts5i8bBAPzJKz83XuNFRPzlzYz8FcdAnQD8Tqq8S4SCmEL8vLev0NcnqZcA_Hdu_f9bPcqZ_JRCXBVVaubvAPxUmZchcbJ9S_xAyJNh4KIflQD8s0cHsr7M0Sz8HQJk8jze0VsAAAAAAki1NuhGVKVfT_3__fWRvZ08oXBLzvBcpZ3CZEje39MRaxosRN0hx81ZVe8Zw_OruEIOG3rlFxTe14qETSIH9QVItTboRlSlX0_9__31kb2dPKFwS87wXKWdwmRI3t_TEWsaLETdIcfNWVXvGcPzq7hCDht65RcU3teKhE0iB_UFAvy5KqdWtHBzrfz8nvHVI_lPNgD8AHwvjmIch1n8h8wmonP2x5wA_K_ytp4dglQj_H71ffbRa7nVAPz2hpCg0Pd7FPxoKiRAzmJeYgD8Dq1WMmMbxq_8--EfoRBygAkA_JFBrMq-Hlj5_KbJtz6Z1R5XAPy9w2TNo1BOqvxoxf7BCucU2AD8bd5egt-sHbL8pQfbxReiCP4A_H-q5unWD06C_Cx_uU6YOvb8APzKBBtxK4gxw_wpJq62x6w5kQD871GB_UePD9z8h5U7xEN6qQAA_L8yhtEe2Dhg_KsFqqJwvLP5APxaR6_l4NJ1lPz20sOuAqfL0QD8BHwt-fYPeL78VOL7MpFYPeEA_BN1MbgSt3DG_Ag-SJozzHUWAPzRuMqxorDBSPzOsXHA4wRmGwAA_Lkqp1a0cHOt_Pye8dUj-U82APwAfC-OYhyHWfyHzCaic_bHnAD8r_K2nh2CVCP8fvV99tFrudUA_PaGkKDQ93sU_GgqJEDOYl5iAPwOrVYyYxvGr_z74R-hEHKACQD8kUGsyr4eWPn8psm3PpnVHlcA_L3DZM2jUE6q_GjF_sEK5xTYAPxt3l6C36wdsvylB9vFF6II_gD8f6rm6dYPToL8LH-5Tpg69vwA_MoEG3EriDHD_CkmrrbHrDmRAPzvUYH9R48P3PyHlTvEQ3qpAAD8vzKG0R7YOGD8qwWqonC8s_kA_FpHr-Xg0nWU_PbSw64Cp8vRAPwEfC359g94vvxU4vsykVg94QD8E3UxuBK3cMb8CD5ImjPMdRYA_NG4yrGisMFI_M6xccDjBGYbAAA6PGEyR9EE3YxctI9ZycvlAjfZwksavOFt5bC5qZVPN_K6SgIy3_BdUryusTZvur9-D_wscMYan9MzTVYfUu4NAZFybfMU6ohMg5uZyYwMBIrJb9mVY02jrYcwm4cGvRcyAUT9NbzTqkpk-PtboA1O3r06rPJeW2l4qXOi4SMKH7IWATZiy6C9nok12DD8i9j3LiUazqifKXguHbIEIH9mj8oiAbKXgLylZHSdFvnkYWGGjhuw1S9UqCqifTqeahbmA8UYAQ5hecZuoLB8gtts0SMPxhaSut1RZ_qIt2lXmtJv8bgGAY_qMJcltWdvZuLn3kzz0Ofd5oeojuv-gZOm2sWDR8E6AaYUXjamNkTUesbOkhefo26mF6KY8Qg86Im0ygmvUcYcAd_ZeC_e6MMuV6Bh2DMnbL9XzTgkAcTcKX919ukIDPASASmkGJFHwKWqDsHf_kowkf2HW53CH-dCQzTYOfRUgxUjASmQRP-Dv9Mjjkm-oa-BgycS2r5STXExtnEV6Q8EEIQyAYhpJddFLTbQ574zHGl3Hc5L0gGM2A31KzvTmN5ADRc8Abtd8iY33R5xkzi0OfdZQ2cg0BiNXxG_9ZIjMXgQNH80AZgpRK5PEVqA6-eAg4lBWhIj4KpWHaTCOMcaz0aKS_woAY1SjIZXKSTQBUTGZ1AkDAWVDeDYc1FAc78m89OAYMUQARMjnkaifpINMJNbzWollLJGbVZ4t4eFtG8OAlVUlrEXAdIsMwcSIrttuMXHi69UgcoLP7-85gfIZ28tK5XBbb4gATKKvX0ohceTcr_LtpFLUeLLPnvdLU4jc0XYdC6Sv3UnAWZA7oB1BZZmSe32gQ-A0zA2BGrQM4XdH2mAJQyv_XAIAYgoFDGCTKmZM4cKyk9cg2U7tz1E7G-9TYQchXUhnscPARVKU4BojQx-yjve2IP1gIfv949-v96DB3FGgL9-l8YOARmqpJkw6bKiRBto0Z1j1xOgVpfygHMRMzlSlPZku2IRAcUV9RcO3D8JcVj42YlI5rJFwHjeSBTxUXie80n5FAQCAUPBQCz_koAF-2QRQgrQVvZysAJ1VX0s1u1F61VJ_L86AeFVD0JCRca10RW7_010nTo4zrBV0gv_OybE4oEosfstAap9Qy5G7Ag87unSTftDg3E6QoakqfdrTJnY2VyYztgxAUm3AonxovG_2xV1nZ5um1pteu2vhhsl61mRofM70JgPAQjbjCLm7Tn6plqfs9roiHsbc5usddtSM52OTe76vm84AegRmK03P__TnOWemols3AdERSLCXz0UeUrSretqNDQkASRQhAtW8jVeb8al0MstOxegNz1L-Bm0GmMcti2AcQkUAbOINmA9szxWEdW8hv5wQZl7frZbY2eItk_pLmsRENIEAAEvwOjTlWCgsCMWjWpRghNlWQE8N9FewsLuEoPGubd7HQHCYmpoFFNIbqXUE_DqAwz11zHwq9_mMsdKKmmDte4PFwGFWckwTe35TyNm1Niq88nCr1wqszmKWu9My4OaUN68NQGdCffOVUZW4gI_IpwEhZc-V2_3Eo1FkGiWw61W-xkgAQGtC9t5svFvTRQn4Nr-cMBjEPpGBrk-tEKCU4-D2ijxPwGV0WIswKfy24qZ2BVlNNVyB6rzu8alpqGjFc2SQmiCHwFS0reBvhwwDB3LQCBfYCQHWpkLPtZAaF6khi9l6UbpGgE2iY4ANf6-Fu6V2JAx31oQ1WHZmK7QZi9deLsMF8vYDAFxI5ougXdG8pcPqt7xrkNRXIrf_CCxbxlGt8LnQLK-MgEhErp_10lnQVY7lIh4YSpf6hH-4X9Iu7ALrs9733jkIwHu3CQpAe6rrMu2XSVx_8Jo__W7ZvdUJaWnt1n_4rMoDwF7DTz4lANzls8z1DLGEf_TNvmGWkqP0h9NuNNHbmBoOwFdyzC-_PLz2ZYuTi5MogrWTHpyxzBwlHIaR1F3n8oiIwHEbrA7kGr-BD0iUMbnHPhQd3bBvCJGInmA_EJ3BP4qBQEKzCtv_aYC-uIHNevghsaQ__iLWwvw3e2xnwM6vm3wJgE3jMlSF-_fiEjkbNvvN-xMoO8jqbkknuJIHbkZU5CCCwHhXODBNtpjzl85oYYtmwUEuH7GswTgiAeZfYZLKuXnAwENViE30_FxaxBbMuOMCBvP-iB4vqKIjSdvNUlKRR2ZMAG7wdpIm816ZRuiURpesbuExUAOd4IrVVru3_BarFqZGAFXzb1Ke2lZRwF_8Qw00e8J5Amy1Wvmx1y8wnSsHygTCwHmfEbSm7zz9JhzAnA_Y4w2DABjmIxM_PL6LQTr-clhAgE2UeOYb14khXPRV7mNhBzZXQm-zOQGSghRK_9pOIFfEQGRF9HtRRuJy7tDdTHSQMC1RmrWUR_NGb4AGrz0YbR-CwFsw2cP7MfLQA1G7MePPyAHoM6iXjrMdjBp3nwxS_e_LAGlY8mV8f-Px-qgGxOywW301TZCoZuobwfO4e3v-zItHgGLn3KkrMs34UEblCpceb73vxW2dKSyuq6hrSM1J3gVFgF5PVHTzv6k90PIbpYsCsMX634CwZIIFGgJln0oBJBeOwH5pqK5yQpGt0OQozIY9TfNYVfubRpsu5t5cm45cp-7OQEADEZptNyvuzC6VEKWLA41KBizlxVqpZwAfh8q-Ym5OAFAX7cR6un8p4h12422YYnFbUJv6gaPKCb-XLCwr-BqDgABDlAZ71lbeW-HLtrodN8-a9HpRCSu17pNesX-WuIlJBUBzs6SSvEomyJvu2y--Am5RCKp2R8Hgq2g2H78g9AZuRsBSk7p2M7zfnBNV4NuK9QsaWRm4nGX4WblpKyHr28XqSQB3n5X7QI17RMV7nx2WC_oXvE0EFcadTe81705GfJm7B4BfqjA-yV-URjlSNnH1Z9YWMoVO594UGIxPSUOJOIDKRQBnVPIW9vIufiV_TzyhUCa3iTQd8ax-4hL6O0DpgkgehUBmYTeWtMJHFI_kNtnklJrNrPQk2vaiqiqghEnSOGq-y0B0j1EVVxWkyQGfYKBdjKktIvjFCZxAaCYcxlyddAoTwUBjR744krPNeaPQESAMkNS6SFkW8NUsFZE571Os6gOnRMBrbGvz6_-dWlla1TVzjn3wRpVlY9j9DLvupqpYzTj8BMBDRntusuc8Cu_XBwQU9QiR5UmhVA4wHJ3KgqXDzpU1SUBiaxwUsNvUKibzQYLpn-pRG3-sLbYCnTvYX3Ur2bMIDkBrF0QVebcheaWzeLkzVjkEXVWYi3mFsBLNCfrz055ITkBouBUxluRSy7Mo6m6ozWg1qUBnPuxnOBz6tUuHw-WPzAAAd5kv_MWM4OvImh3TSn5c4JlaSWjhG4I0bnb_YEHCVAIARp5ySBnrzqT4447erVR7TDLJZi-PVMa_LMWH_RkUnkMAcMYHYfQq0qZzsiFs9TeUbC8oyswbr7OjcoahyvA78QdASiIwnFkuQs0GpeogsVFT1hoqNaHlrPxjvVCgO4_lig6Ac_m9fzHUjk9y_yUElbCuoSZ0yIorhrdEg0PvszZOJIzARfm_NoAYyHSb2jilosISHY2B_gy-a2wuqcaFbkveYglAf_bTpCddyllde8WLbcxWBaTqK4aJijp17EU9uZIMjAKAUASitwyPOzSS19N7_g0vpYMkKXJfRbObRI-3oyVsr88AZL1_NwMTNP23kJ5SLB4MS4LN0S2STK1WvYUHOj-btgsAUyx4bzshD-rfjd4D0SIDVjr-jwotMDJE65BSVpbz1sZAcDITf6hUwa7licVuSHAEX_enz-d_6lzT8qXfK6GVJA3Aa1s8ln_6tGNOv04L0EOdxo9XQ8mFFT6aZaT2BxFzIA8AAAAAAAAAAAAAAAAAAAAAAAAAADfFIsPJvAfi1Zu3B5RbKkhShEa2pj61ErHDi6kSQlXOwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwBf7WaQKIibHJKl8UFjM_lwQ-QbckeUvnrUlLEJ60YwCKQbb6CBlRSd_nBliNNvqE0Zdomu94rAdJl0dllnhoEDaXlKoIgKPevyE8Q3Is6g9kqXaFp6s5Pa9ImS8BYyrBV2Z2Ql6HY3BcSnLE6gxakcHe6oNmQPRnIuciJP6PlEMkxFg96rSncZ6lI7T1YmX1kb9UTfY8tIEqLV7B8ZfxwUqQo6KIPhdezV26TVKEkCtWuqotEd7mZ3BHUPkF8gViC8g8fic8QRW0ZfoCzNCwubnnZI3YXl18iekvMFsKIBL54BSppTlA0iMXbnXCsKD3xmU36vbVLAwPQNXY_GbuU11EsiOTZOB4lB-rhHtowcba9M0zzvJ--ghUBS4RJqhw4D-zakbniFVJhfE_Box0riSjfoTpwGbDxBKQIMAmgBAXjLfxEI_zI-1yEANarSOeGWBh8e6_NBSMJlhAITPVAHEDdmitoyunH7NCrgAZf_-UEnOr6ftLtFR23A66Llzh7925nQAmDVYr65rJoeft2Ltn-r-EjSB5jdxEvzs-NDNMuAYPrSN6yrwVKFMNHCgdsaHXAfUphv7q6aRzZlRbgL2TwlrTTBFZYLae1PZY5eylm0lHeq-X9jF1v364JkGDmm1mQmI697mWJvqN9qiomxij8tDsBTI_Wzf2njemAiKzltKoUJcMS3ZZr5zwUN1BQ5OlolEVYJ7FWXeIF8v-YGX41FSQNwr56cZdku_ZOW17EWJCs5tdFwQAYjD6bj_RwWPtny9tH3Ez-NXk3u-Ugbapncl6cU5HooP0RKrOngJ9M3OBLWVOT99iM6ZLZK39OtRifN5qXW1xuJg_Y_ZkwpTMVLMejFlc_Ym2R8zwv5VCO2FQXJoST5pQG3-FIABTLMCWoZ1eNoKa5cd2_0OBNLa6l9DIXrFpoF23Qg1hw9GoZ7_oRnIF8wPyS5TJcUO7YIjyMaictxksPOuWhHUX8Ni8xLg5ERG4_WJ1D02y8FBJotAZF0Z_LIIhrZ9OG4sQB8T_Y7BnpEbXeeH7nOBTZ65vQc_-b9iWcTC6FnSMc8A2n8c09qr_Mu4CArkm5n0QPKiNDoM74GePT3UpGmmO8y4i_MC-fg9HbN7iLECVbnILy6j3uVaZNCuQmHxs_ccTAh6iZi-hN-UhsQ5w1HgFkY9za-n6HqUMBpKV6AkVPTDjVfCgpHQu2BNFGm-XdohA2Relb5tmcXBBk4z9lTCtQ3ZW4VBuwhUXqAieE42n7RTbRe2KGx6PDxo65FryquySoAhJZ8MnB0A6hoc-3LMlPaDUL1skkSGeaYvb9Zk806HDolU5b8bMIWKc72o42cmG5QMWu0Lh8oo-Gvhx91afrLDUbP63XVP6rb3GBVTJm83WqFJfKm9OewqCPtQN1Q_A0AaQqY2UshcO37P1ab1t7vqcyhOwk9lZsTbuAdL5hrDSRujobz21FKPf2s93UGaAvqMNDoRcPA1lf6TGTJWhslKBL2qIf5m8UVM-ZRmBDHndf-fNgPjYy0g6T2UmRnynMeO9d3ZgCHqNalqD9kAAa8p8E238w1kwjrxET-AOaCaxhzF2u7xMNaQMsC-NlyGMrNmPJj3Vi1ro_BuBXyycXdKTxhquw6m2ESb7OBlZ-VdgeUrx1ipTlIIzC8SDu5aUwGtZQxUPGqxd5TYjuLrV_6Y2WOq7xjjnpjJ7H_qSsxeh6yc7C8cf_r8cXE4BSKZekGWySIh7vomWB9AvEXDHtGAuVJuaNsucaBdRfn1m36cfu22AmU21N_m1GSfPMNcIQndTPev6o9ei-4Vn0Zv2JWFGyivBIbUjz75CeS4LNTIixX-p-2cb4NijEVBPExIhGGoYvgRHcQcwxLuqdMo0jeMvTR8Icwfpal3S1B_SIBfAnkkG9WJMmp5w6FFYMr1Ew1AYXvV5AAHL5uTgiUQPxSJJx5u00xIIr3xdiBCNzHiRbcPj_HougTcGBQNflgy4hU-4M1GYbMiDP933r_OvywFVNJr1CR480YwJLtlXvjcdebyj4aM78Pg4isGJEllEEE5yK_CzhPwUg7pQ2JRgTcVUbkNMTKtgAcwrxZ-seYWip6SoSnVl8V8rXKTA3N8Z-Zk3EJuWsh56VB0UIBJBZRNugJP1bEjlQA_tXCqGro2zOFY_Wn6jGmay0IM-K3OtYMpmFjPtSXHsOlATjbtnx9SEK__u-xA-WNk0Aa9wT0zB32gT5x8SH7qmYdy4CUXvEYPsPPELfGNxhKUDsarpEIC1K-m_DwuxGRnVBt8Du4n_a1OpLW-A8Blh3FQCVcmFQgfliyT9Ip77FuEgWmS1y7mGVmr4Qa7GpNjaVCAF05dhWXmvgmC8zpJ5X0EjjPNNd7Q2Dh5BTRx5N9rGt5503lOfNyjRaA4QloG0tvgBH-pqdY-Okn3C4W7PPEGb5vlXYWeGT_NZ1qIHtyPxh_d4YV0vBzKzevFpl3lM-DSWTYeTknpnU-PBa5iSHVPRhUAuh08xioGf3y86xmZyYgRaqKJmZOfKb-k_FR8GlQi4Jq1dBscVSTGMvJEdprdNBu_igGAC5TYFuAGtf-p0XpdmrdjantM1iddY-zOf7UDDKcWaont3qHiLB_fNHJxhYYdVzKPQ0wOnsJYSTODALcX0UaDwMuHmhzHQC4RyADiCN3fsZSLZoenjZZIMPnzgZK3gwuHtltYuVKCknTpEyRnrSwiTM9ZKI27c2hkhJ0rGkDutk3zOOnjfokLYxT6JRnzJht_TMtuYfXbGbnc1pH7zTpDyjDfWkshHOqmiRruF5cQyPNDFpp5LnOGuFg-WFEfDGuLtgtOHF4Qr3jFxV-3xhqWypawqA1oGmxihu3kNihtg4maZTicPKEpVfEGK_r-qyieUyK9qR2yxuUeMIF6KkBFw9xcRXllxPIT4i6vi7AKSUYBg0syCtU6anJotKofOkeFV3ZPJssP87jD6NJYPJHL80E2d6EhvY1ybltd2-uMSIfqE-UoNbWS-C5cEm5KuLFioy5Pnkhefq1f6MsRpWr5yQsfGqlEjtBqo6s6Fp-7rjrsiIZyTU7knZxEZmqqAGCFxbrouvan-rEQuKe-Sk_XEV2kz1TGm48B1GONSJBBV893PWy4SRTuDacQg52raD7bG4XPyJxqhnsbbgBARJhFgUANTYtmG8gxZjlPD3guPxBMASEJDFyr4k8yZyhmaoWFjzwlR5qOF-06oteLPDonlSAepmTiwq2nHfxubIQoF0VLje--p2Axij7iz9_UxaRLBdUJqCtmoPbeAhH1jbxzKsJ4A02zCtgdsIxhARsCioGIIUhVkT-KVSaYlICUFW9-xxr3yMOwHqRUxnGBq2TDEHdfwlyIq2id2pITnVf6y1JHO6AK-r03brztpaYaJ1-drZwyqZd29khlyJ6sMjfujYktcmNOogeqtVgDYmSDf-DAlB50nvePOrdFEJb_IpA0xDARBYoASUZ12_vAQdDTcVrsXTn0WEM3i_IbWqnK3WtGs1xyK_hpxny5eg_znlB-5oxPiuSYkgK-mhnXc-rZLIK5YAJPSQEBvZoSzE85AZpvVuhyN8-1TztL0c8A3rxmgiazJTZw-e932ajI9gr9UUZu48vW91I_s60WoveCqegOZahBkIRtSvDTSZYeHUHJOjVUq6c6PrlSSx9FKnmbnUXzioSgyJqnNMLk4KXtDxWzAUyzyCAcSQAOd4bI87hZwsPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbUb_BCBPxFRvEbI6OLjq80C0DMk7W2pv-_yQMNv0Ldi8fkz2DkvS4mRSG-22i6f-ldZg8bw7cDMXRjeHquvUVNQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQb From d11ed56a203b9369df620cf4421224d1cdb708d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 22 Jul 2024 17:14:57 -0300 Subject: [PATCH 2/8] Query from new Devnet node --- .../aligned/test_files/mina/devnet_vk.json | 492 +++++++++++++++++ .../mina/mina_devnet_protocol_query.json | 506 ++++++++++++++++++ .../test_files/mina/parse_proof_query.sh | 7 +- .../test_files/mina/protocol_state.pub | Bin 2029 -> 4757 bytes .../test_files/mina/protocol_state_hash.pub | Bin 78 -> 78 bytes .../mina/protocol_state_proof.proof | 2 +- 6 files changed, 1003 insertions(+), 4 deletions(-) create mode 100644 batcher/aligned/test_files/mina/devnet_vk.json create mode 100644 batcher/aligned/test_files/mina/mina_devnet_protocol_query.json diff --git a/batcher/aligned/test_files/mina/devnet_vk.json b/batcher/aligned/test_files/mina/devnet_vk.json new file mode 100644 index 0000000000..0e5160bb6f --- /dev/null +++ b/batcher/aligned/test_files/mina/devnet_vk.json @@ -0,0 +1,492 @@ +{ + "commitments": { + "sigma_comm": [ + [ + "0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC", + "0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37" + ], + [ + "0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC", + "0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4" + ], + [ + "0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB", + "0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D" + ], + [ + "0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05", + "0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E" + ], + [ + "0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB", + "0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B" + ], + [ + "0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1", + "0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5" + ], + [ + "0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555", + "0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224" + ] + ], + "coefficients_comm": [ + [ + "0x26EC10122354E7DEC10E83F7D26D4311863753F37489FFD2F5D634958C876CB4", + "0x25AB47DC77226E515B05BD2C1DFB025477F54FFBB9B62F4B2914306C2D1AEB6D" + ], + [ + "0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922", + "0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28" + ], + [ + "0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F", + "0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6" + ], + [ + "0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236", + "0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A" + ], + [ + "0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614", + "0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E" + ], + [ + "0x2EA4EF211B04C50C1680CE1E38DACAE3EC40FAC3216A6D4157B29D6053C812E8", + "0x310B3ECB01C946FE01F766DF1249FD36E4AE2EAEB450D93DFDE08AE9D24BB7BC" + ], + [ + "0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121", + "0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E" + ], + [ + "0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA", + "0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B" + ], + [ + "0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F", + "0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89" + ], + [ + "0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766", + "0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE" + ], + [ + "0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036", + "0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455" + ], + [ + "0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103", + "0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4" + ], + [ + "0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E", + "0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645" + ], + [ + "0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF", + "0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF" + ], + [ + "0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39", + "0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567" + ] + ], + "generic_comm": [ + "0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B", + "0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C" + ], + "psm_comm": [ + "0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324", + "0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B" + ], + "complete_add_comm": [ + "0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B", + "0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688" + ], + "mul_comm": [ + "0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5", + "0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689" + ], + "emul_comm": [ + "0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9", + "0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9" + ], + "endomul_scalar_comm": [ + "0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD", + "0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244" + ] + }, + "index": { + "domain": { + "log_size_of_group": 14, + "group_gen": "0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7" + }, + "max_poly_size": 32768, + "public": 40, + "prev_challenges": 2, + "srs": null, + "evals": { + "sigma_comm": [ + { + "unshifted": [ + [ + "Finite", + [ + "0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC", + "0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC", + "0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB", + "0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05", + "0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB", + "0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1", + "0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555", + "0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224" + ] + ] + ], + "shifted": null + } + ], + "coefficients_comm": [ + { + "unshifted": [ + [ + "Finite", + [ + "0x26EC10122354E7DEC10E83F7D26D4311863753F37489FFD2F5D634958C876CB4", + "0x25AB47DC77226E515B05BD2C1DFB025477F54FFBB9B62F4B2914306C2D1AEB6D" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922", + "0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F", + "0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236", + "0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614", + "0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x2EA4EF211B04C50C1680CE1E38DACAE3EC40FAC3216A6D4157B29D6053C812E8", + "0x310B3ECB01C946FE01F766DF1249FD36E4AE2EAEB450D93DFDE08AE9D24BB7BC" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121", + "0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA", + "0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F", + "0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766", + "0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036", + "0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103", + "0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E", + "0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF", + "0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39", + "0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567" + ] + ] + ], + "shifted": null + } + ], + "generic_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B", + "0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C" + ] + ] + ], + "shifted": null + }, + "psm_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324", + "0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B" + ] + ] + ], + "shifted": null + }, + "complete_add_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B", + "0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688" + ] + ] + ], + "shifted": null + }, + "mul_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5", + "0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689" + ] + ] + ], + "shifted": null + }, + "emul_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9", + "0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9" + ] + ] + ], + "shifted": null + }, + "endomul_scalar_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD", + "0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244" + ] + ] + ], + "shifted": null + }, + "xor_comm": null, + "range_check0_comm": null, + "range_check1_comm": null, + "foreign_field_add_comm": null, + "foreign_field_mul_comm": null, + "rot_comm": null + }, + "shifts": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3", + "0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6", + "0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D", + "0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4", + "0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484", + "0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1" + ], + "lookup_index": null, + "zk_rows": 3 + }, + "data": { + "constraints": 16384 + } +} diff --git a/batcher/aligned/test_files/mina/mina_devnet_protocol_query.json b/batcher/aligned/test_files/mina/mina_devnet_protocol_query.json new file mode 100644 index 0000000000..ed998cfe7a --- /dev/null +++ b/batcher/aligned/test_files/mina/mina_devnet_protocol_query.json @@ -0,0 +1,506 @@ +{ + "data": { + "version": "a3df8f2ba1aa5764eb6649593b676173d2bd32ae", + "protocolState": "{\"previous_state_hash\":\"3NKRZtyrCKs2PqDNkVaz8Y43fMNMv1t2ffQMG8EsNxU2Stqjkean\",\"body\":{\"genesis_state_hash\":\"3NL93SipJfAMNDBRfQ8Uo8LPovC74mnJZfZYB5SK7mTtkL72dsPx\",\"blockchain_state\":{\"staged_ledger_hash\":{\"non_snark\":{\"ledger_hash\":\"jxumUuE4BtbvRRcyBp4f4L2bVHbTZmtE48AhLEGyN9gH5Pid9Hz\",\"aux_hash\":\"V3xNvkc2r1H4rBHformqaAMFVxeEt2dpHgs4e5DBR9LM1Q9rfi\",\"pending_coinbase_aux\":\"XSaU7RWhUY1ErNV4HYe69kqdr3VX2LXWSiQ1DwWhavovtzcWKo\"},\"pending_coinbase_hash\":\"2n1A8AbAGCq3ycYJVXHpgvzHgfkRAwPCr65TGKEDzU95saQSx6kf\"},\"genesis_ledger_hash\":\"jy1wjiJgTkzXr7yL8r5x4ikaNJuikibsRMnkjdH6uqGCsDmR2sf\",\"ledger_proof_statement\":{\"source\":{\"first_pass_ledger\":\"jwQqW9ss8pf44DRWEEwRBXH3TcNJ9YVfkXg2ehwgKvMxMRfFh91\",\"second_pass_ledger\":\"jxb35uzFJ4vhqwacrh1bt87pfLeJ4FvBpXeMfFamdMUTJ4bGRDa\",\"pending_coinbase_stack\":{\"data\":\"4QNrZFBTDQCPfEZqBZsaPYx8qdaNFv1nebUyCUsQW9QUJqyuD3un\",\"state\":{\"init\":\"4YywuJ6WVapxSP9qd6pYfjfeu4bypupbFy3Hp1y8C69uXvdrLYNn\",\"curr\":\"4YywuJ6WVapxSP9qd6pYfjfeu4bypupbFy3Hp1y8C69uXvdrLYNn\"}},\"local_state\":{\"stack_frame\":\"0x0641662E94D68EC970D0AFC059D02729BBF4A2CD88C548CCD9FB1E26E570C66C\",\"call_stack\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"transaction_commitment\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"full_transaction_commitment\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"excess\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]},\"supply_increase\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]},\"ledger\":\"jw6bz2wud1N6itRUHZ5ypo3267stk4UgzkiuWtAMPRZo9g4Udyd\",\"success\":true,\"account_update_index\":\"0\",\"failure_status_tbl\":[],\"will_succeed\":true}},\"target\":{\"first_pass_ledger\":\"jxJCnb7NTT6LEdSpfQxmM9QzTsFwjvpF8K32A4WvTMCYzPtuisb\",\"second_pass_ledger\":\"jx5DMNjpqc9zWEG7QWF8nencXxfJavS2KfJHfhb3v9xVbjmXmY6\",\"pending_coinbase_stack\":{\"data\":\"4QP5pBRZPoQzZkk7mqUbvSaGfYBqRs8sZEjP1kDFygUCg1oxvBkG\",\"state\":{\"init\":\"4YywuJ6WVapxSP9qd6pYfjfeu4bypupbFy3Hp1y8C69uXvdrLYNn\",\"curr\":\"4YxVkQa5uGLRaBDyc5zWW6z8KGDekZt8JdMwXcS2JiL4Zoqs5sJu\"}},\"local_state\":{\"stack_frame\":\"0x0641662E94D68EC970D0AFC059D02729BBF4A2CD88C548CCD9FB1E26E570C66C\",\"call_stack\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"transaction_commitment\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"full_transaction_commitment\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"excess\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]},\"supply_increase\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]},\"ledger\":\"jw6bz2wud1N6itRUHZ5ypo3267stk4UgzkiuWtAMPRZo9g4Udyd\",\"success\":true,\"account_update_index\":\"0\",\"failure_status_tbl\":[],\"will_succeed\":true}},\"connecting_ledger_left\":\"jxb35uzFJ4vhqwacrh1bt87pfLeJ4FvBpXeMfFamdMUTJ4bGRDa\",\"connecting_ledger_right\":\"jx3CAQSbdmeZ2zQyAotdGRXyUoPCc5wSMHfStte1cRX1tr8Ps5t\",\"supply_increase\":{\"magnitude\":\"12960000000000\",\"sgn\":[\"Pos\"]},\"fee_excess\":[{\"token\":\"wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf\",\"amount\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]}},{\"token\":\"wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf\",\"amount\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]}}],\"sok_digest\":null},\"timestamp\":\"1721678220000\",\"body_reference\":\"39ea5c0d1067856f17d4a7d9c9857b0942602d6ea1a89516506cee955b36a286\"},\"consensus_state\":{\"blockchain_length\":\"330000\",\"epoch_count\":\"6\",\"min_window_density\":\"3\",\"sub_window_densities\":[\"3\",\"2\",\"5\",\"5\",\"5\",\"4\",\"5\",\"6\",\"5\",\"2\",\"3\"],\"last_vrf_output\":\"MZAv2mZyzs-n8a-4YIp8Q2pjCpF8Keygn9MQnB00DgA=\",\"total_currency\":\"1435195618000001000\",\"curr_global_slot_since_hard_fork\":{\"slot_number\":\"49899\",\"slots_per_epoch\":\"7140\"},\"global_slot_since_genesis\":\"495759\",\"staking_epoch_data\":{\"ledger\":{\"hash\":\"jxPwLUTNkdzTf2KkVEhEQvnge9fxv6uNHgdHLpEehN3QbcYccgQ\",\"total_currency\":\"1428304893000001000\"},\"seed\":\"2vbUPSjsNDa14bSGWFgPhHU8w8bBxnhjRd1XMmpPjAfDWhj8uQJ4\",\"start_checkpoint\":\"3NLnwCHTKESzD8b6Pgk2uMzYJ1zGZMeSYdaQLh4z5fYkVQNMZQTD\",\"lock_checkpoint\":\"3NL1BXat9KbW83ZeZC2zq2GfkxXwn5oEWr5jcXbbA99W36G2iM26\",\"epoch_length\":\"4831\"},\"next_epoch_data\":{\"ledger\":{\"hash\":\"jwDgw8sN3nTEYbakxPzrfmLGE4Zvd7U3kQG5XfV1kt7GdqquXkh\",\"total_currency\":\"1431775924000001000\"},\"seed\":\"2vbNJ414VQrAopwdXTLptW1cQzf918TeNcM3HQEBd6Bo4jpJ7M84\",\"start_checkpoint\":\"3NKos86VkmYDMegTpCBwgKDCM5dNX8fjtgD46jVCq7CHTmY1RV5Q\",\"lock_checkpoint\":\"3NKJPRJBMfmQ2WfUqwAhcim3tFVShWW3599Ry3e68ctK5kK8jGV1\",\"epoch_length\":\"4730\"},\"has_ancestor_in_same_checkpoint_window\":true,\"block_stake_winner\":\"B62qk9b6erTiHJvHHSYALu9JQUjwzCuhNJ5hwdaBw18yAoii6z44V2A\",\"block_creator\":\"B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX\",\"coinbase_receiver\":\"B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX\",\"supercharge_coinbase\":true},\"constants\":{\"k\":\"290\",\"slots_per_epoch\":\"7140\",\"slots_per_sub_window\":\"7\",\"grace_period_slots\":\"2160\",\"delta\":\"0\",\"genesis_state_timestamp\":\"1712696400000\"}}}", + "bestChain": [ + { + "stateHashField": "16412661142465658765200930280227063269394874967846688806078394970172348915896", + "protocolStateProof": { + "base64": "_NBU-GbyQE3C_I3-TYU-_iSsAPyA1juF6iSHCvwYCsRF2PnvmwD8sm0Os6h-t-L8ltrYS7uQxyYA_II9B3gxH5iZ_GW1-Drzj4IzAAAAAAAAAAAAAPybMJf1k1s1MPypZ9_rRcL9sQD81czx15sCo_D8TvZ8NbUZnIQA_JHU2QjsVuHP_A0yEnILaCD7APx-G7pYD4UIVPw2nbYCml7QBgD8YwnpcNcB2J78k1kDrX5lEFQA_CunGruCEN36_IM4sDjVkISMAPxcosxgZWZaHfwR-SS7Vkq0CQD8mDmgknds6V38AYeIy6eVh10A_NIcKu-XbV_g_JjwWHzHkdAeAPxtNJVpN58TCPyuwykxGMFu8AD85kdyAJ4Ej938fEFanGC3ObIA_F6KftP1B-B1_GJXNEwuufheAPyEL8ynhE0eQfzZZ6b8LCJfUQD8v274cUzfzNn8_GqTiJqDskIA_EJokncjoo-f_CsC83OnWOFGAPw1JPy98oU0o_zSwrIuP2IZfwAAAhD8TbWGl1NYCeb8i66leoq1J678-Zp3k7o-OC_8hGT-2zXyLi4APZ8lDDyrEaj5NfM3taQ9ak3DIviEb--Ea5JWxSDEwj_Iyz74aluDImX64fJ_RYLRWs2uy_FdDPFBefYWHZcQAfzniq8bevRhJPwVj1mGpyfzowD8T_4lOtRi_Cn88yNijnfNYTcA_BVZhWSj_jvN_NcvQXgQWMkCAPzG1BYPGGlFBfz8e-zu8p9igQD8f8MwCkRK6Fb8fP6aRh9k7tEA_JokRS_HBQ4Y_BZgE5oeerbTAPyMhkngxzTtNvz3ELiIn6DaeQD8-ZY35wcFRL78pORLkI9yYUEA_J6lghULJ_m6_F_WaE6MhrCLAPwvK8qs316PH_z8unBlI_irNwD8HMYeczgbOF_8zL3z9mV987sA_KkqNpwZtpSO_MPTCl-EodeBAPwQoMtonNIWPvy8gJ--NMugbwD84DlvJks4s5L8KVV05DCOEEUA_F3R3YhBYjfi_NeR_7kCPygSAAD8pIwBZQhesfj8e_Ncj_9jyCAA_NaPy_-f3qiw_MLOdYjBaXTrAPxGGstTZARs7fweWmiV0pqKDgD8c4_E1Ap52H78qzXIGnkwocAA_CKYAa421H2p_MdN4rT5mCrjAPzi0U_zWbRVO_yOn4ruzDMoHAD8R88Zm5dadM_8HlCLX5rnlV8A_H8-0QK9y18U_LLEo2Vf1XR6APxQ_kwy7AsbqvwslD01YubG6gD8-DtxOAuKJAz8yTmQfJk0hKkA_CjKPhh88smB_EMspQD_hwsdAPzQUhtYzi4E5PwdPegNIsCieQD8vBOkmjupb6_8347xKSIa-E0A_PVwkIb6sKBT_LX4416wI4q9APy0UWbkmJLq0vzXFOe5V6BTuwAAAAAClVFMsWAaBMrv2gZTc9O2Xac9ojM6duOz0Yh0umsYDTqrevm8vuw-gGgFrkmms-q2ZkNlKZif5txA2rpCjYuXCJhQ7elzkBcvjwNhL7-ORx3jeOeocH8uEZG_K8n8y-gVgXNOttJGRzgVroqzVQM26uKJ9lIbdqKycYbkzVHqtTIC_F85NAb0GR3j_K2rkBd-tsH1APzcv9D3Wc2oU_xedqoUTiJ_tQD8C734FVWfEuH8DIImWWKhEoAA_CvOyrOz9IO__F1Qyts5mWUTAPy356l7ypMcOvzHzUevDh0W4AD88EBSo0IJ8Y38Yu6eN-H78RYA_HiHmxMwnn_K_AD3AGPj5NADAPzCQ0YHDw7QCvw8bD0M3R7eTwD8B8WnrVYE4Qr8OBpOYsaoeRcA_DjxnAPB21UT_KFUvusb0eMBAPyXbwAjE1dZIvxP1ppzSSK7eQD8dNlA5aHxUCn8e0W7-zUQYdYA_JtB_vbU4mz7_NYaMpo-2oF1APxXySXhzLMzvvz7Iu579CxOowD8r0TEFhYP-Vj8eLLPmsqYrMYA_LsAH2Y_RmeC_Ba7m3itc2E_AAD8uSqnVrRwc638_J7x1SP5TzYA_AB8L45iHIdZ_IfMJqJz9secAPyv8raeHYJUI_x-9X320Wu51QD89oaQoND3exT8aCokQM5iXmIA_A6tVjJjG8av_PvhH6EQcoAJAPyRQazKvh5Y-fymybc-mdUeVwD8vcNkzaNQTqr8aMX-wQrnFNgA_G3eXoLfrB2y_KUH28UXogj-APx_qubp1g9Ogvwsf7lOmDr2_AD8ygQbcSuIMcP8KSautsesOZEA_O9Rgf1Hjw_c_IeVO8RDeqkAAPy_MobRHtg4YPyrBaqicLyz-QD8Wkev5eDSdZT89tLDrgKny9EA_AR8Lfn2D3i-_FTi-zKRWD3hAPwTdTG4ErdwxvwIPkiaM8x1FgD80bjKsaKwwUj8zrFxwOMEZhsAABU8LbU4Y9KF-ig7cyFiRsy9DpaLb5IWH77CJnJ2SacAewscD_FU-Xi1g7LHqWM02Q9ziXHD8hoRO8ffjVHbUSABG-zVLn0QyvA7EiOgMgSOhpMgXHpWpkYtvjo-LEpn4BYBZ4KdK4NvznO_BGVhtkFNUkZjdS8Osi8cVIdg7LGrbDgBPv2L9sIFdQs_K8nm66BhtnDCF0CGQ_kk1s3vvEugchQBGX_IGGEF0Vz8OLBLjbILsxIdwkW8Ee28_gNvLiIhaxIB9amNFrMHMYCCbyfH2zWXXVvMotGZOEtOSsZkAioe_CEB-rfytFSc2vva3RJsQ4ZqZOaoFQ3tc9ZxZmxiXDmpozMBbg_SFJwBer1MOefaktSFGnBXBPG0Lnty4-smncSLWT4BDAqstrtjPl9UH0xkJycqK7hNE8Tpkbj07fMumycisQABdLtjXFuAWEyT71_NpkJ_crxTJu5yPyRK0kZwRmJZ4x8BgIEbsLe0Wn1Pa-GYND4EAzhM7NTUbcWQRjPIYfVETAcBECnmHZa-jtGqta9sMstypnN_6LOLh09XgNvTmnWCMTUBEGJ559ut9z0bQC7xKkdReRV3m9woJjspdatr6oSUtAUBNZnwE37A5jvf9oPspatxKrqKb1H1iGcZtpfxDKQ8ED0BIcJVF6CixytLW4Le2QA_L-L_D-F7icen0mmCyU7o5DIBeW70NcsrNLb5FF-NiIF0PVKU4TtQX1WNFX4nAwvOVC8BHkubRy4uhJtubgwO-Pkw0F27MLFOPaqv1r-WNM7isBcB5Lvtt-k9KwGcWZm9FkvqS0F5oIm6xwXxv9RobqYqxgABUwRpncC-uMCyvthKGn46OrPfOmC5xm-Tx7bIzbuHdQ8BbsgdAzTDxCaI1fu6gA3Zlzu5K4Vl4NuigfGrMtpZaioBy8pI0zlb6m8tD7IcPm53VdJTvFTK2Y3wUnxTniCHPSwBaBAYEY8y3ttUjD7bC1q8lHQYeWy_86zyVu3DxngpmCsBfONIgx6_quTQze2lmCxHHa8vt8b170kJN9Es8-tSrg0BvoOv232xApa3edjO3iUNlEuhYzIx4qzeCZZ_OQkMzREBIfvEfB_ra_7fulTecKLzLbCAC5MvJbLCbvaTfzrjhhcBSWg_5LQTakff8Azlxc1QTl9ULYHy3TB9RDNZSPWNoyQBzub_XJX0YIGIghIOT9f8aeUrrgda2_OScorZs8xCBi0B1y_qJTsYVDtsZz8Tr8cs1x_cGROX-BH8JM1tfGE42wABZgzxJLgMguWzk1MRpawQw83gj2mgjpAb0dQwV3_bhxkBpCPbgTG6X7xhX-ucNcb0kOXZzTVDmCT6UokcgwW9dxEB5yMzn7x3MIiDSdcdbe2u4AAHAw1VhBNaNZsrLdPZiDQAAU28fZGQ4cOuS3JBzi4hgy7-1ZMgNpot1jsbJVIfSPUSAYF-8g_gI9qkT05OO9Wq9se0WpEdWfIK7mdzGirDWZsSAa6-87bChEIeVNnHXYXXqq36sIgef5lobzDGgqzOTwMqAdBDmeGNpr7-neEmUhLoDmnb8W0jbPmaT1hGmFD4oEYDAR5fIPJQQPDK0FyV8P-jkLmvljCTyS6DOUdW0qj5ADMzAQWzC2adiWYfU0QT50AjqWk9Icyg6gRIebkcbEUkIn8CAQompizmoSDlMssgiVOOTYSSrzZ7HPj1DtIPCzc5yjIrAZzNUn-h_kwXXgr6c0F5r9BTdQLE5W1ukM99DkVhBx4EAa88lxAfZ56lJXuGFSzK2760ybZqbx0h4C2hs69uY6k7ARudG8MWMODW3lDW2FdXZRXBuKgt2LdQXICQyQzyxIAoAY5kn7DzY64pdOAdmq_WI5Y2fekZ0Y4mD4b8uGBSFWEaAVsAMoCd8NMgcyhGm0C6NmkKFpn2UxMMtx1k5oOA_XQ1AfSHgv1ZIVI5ONuFrW4Th7GvlvcRyFSA_e8avo3sUYYjAVyot_U5vf3yGynXWx5rUWVURelBF5pnTxHjsFztIlYkAX5XXSR7EocQLj4hdvGSTa21ohGUaICVbSt8Up_hRHIXAZcY2m1HLRlSXDe9KIZsWnDV84cwXM-A_LiHd0q_7sw7AUFZKOGFF6QiFQekgBubHRPEXuboljgy7yBW2i_MPn0BAWxv-SBQ8jWQYdd0RUr9lM5bdtMgCR_EbgvRtiPpL8YTAV9KRre7wf5wVea3Qs8wMu14rIiY7J__B-eIGRpztlkUAcjnN0_9oytJXgqpG7NnP6lwkDfECE3fYO8MvVCM68kPAQWH6uwjt-Xj5PMVLxDG2gNV0iZccobX1oSYfC_XyUcMAcb7kX-i83vZ4mkW7c1HYKwG5dQbjCpdw7mwTQQQt2wiAZ6lopL-0zSjtigsJ48AOYmkV2SKieAlOotfiDPutoADAQDA8S36nMxfmNYQHR2s-j3sMLRaUjqx6ED7hRnpT5w8AQmP94XBB13-2f_VAzbCw5DnKnxxItv9EjyFQtr1mZoOAbpAC6HNoyhcZMCrTw2MoTOJaTej4nAn59pa8aV9sVU_AUH7QnwbcqVrVqPwH1Jl7Wx0huSBOnOJ3Gx3Cj6sXJo5AYRlzlc_gKid3Oxco9tUYP00xlhUxbM-GJFcwF6Pe_IUATmtvESnhys7sGLTcDgHZWb9HgxOHzvLn0selNAycqgtAYf_xCgHZIaekkMJLziTozEASE3dG2TeR2lTj58j7s4yAAEcQCiFIT3q7B1gYUni1nhbEDSj-cMpuO6r-qy00Xx4JAHhlCfguOYsj8AgRjBbnMB7xeLnknIvVmRlhBzJvAImAgFCzHLWmqSTiMu6eeZl-JmFTEWtt88QGAZdZWSlRJZyOwEMUwciI72008TatUbK8mI3L-s88JZAreKaxpAZKrAxPwF21R-pfU4tFfeMg6vERUQ7jor7M3TGFU9hvhHVgacYBgFaI4GlQC9JfHJEB1ssAnpmz_L5AJGm25HoaFrJv6Z-GgGBTfJZE4aTeggDEt7sQTg5sA54XmJbY8jKpl6XnYsxJwFLzZllXJUwOqrMS267MLRjpsk4I1wXdl2HgJ2e4wJQGAHlBiV6OcEsodrkLebXrYOAlIZgWflObnmyqmQIM9GUAgGjxMs021okKEStE1CKuS3fDO-LmEZFoE13uFGxYMQ_FwEoj3gw4lIlGYaNXPKvKgop1XOnYqx_jtdkU8vo4Y9TAgFfj3u1p8ytISS99QxVh6EedJniPrepX3Df9zUeyVhCNgF9u71ljCX_OjyQA3KnY9IxNzb_VKyIyN8UIWdQKUbhKgF2WrhfRYpRNevrJt4zZSq6FUX-DXIaynxH2ZREwI0jLwABN-m5mzIiZ0R5B_lRkaPOCCu3FFWBs4pRL3FiALvkJjQBAW-Z5ZY9rxLjlJZvrbptLloPUZhD6lqrgfNJsBFLkz0BQjXFHn7tdOtgwrGPrK5znPEDd5QjzYwZHmwVLm2eTykB_OraMSNlzfyyAJUTYXMNCalH1o9EBP241ox_oyFS2wwB-0V6aR7O1od3PWtMqLxpKRN3lHjkkFYRcAKhIlwTYx0B-_ChMiVyf1c5ReSQLpSvOCqO4UJH6Fs02I260IanhhIB91Vd2bZihlsH9GXgySoccZycYxzUOd66I_cdgDQpWC8BFnmAMAqowshSeaZ5F-tmINaYohJdhK0S40awD4cydBsBeLHxgJhSW3ysZOjN3z_U9rD8Z_OF-yD8ddeOtcpvXT8BauL7FpSqRnIfEbgl7-Ki7ZT0zaMtcCQbE7GP3MjrkjMBWHxIQ_0vmyfxFLgTklpybn7Z9wYgAr6RWTaONhklfwAB_7AqDJwqGMmKnGxtUYACkMj6SPeknod1ckHbCxDFTR0AAAAAAAAAAAAAAAAAAAAAAAAAAN5lVQleObsKQ6bGOvVhoTVxU0-fVPWUHD8FaaAey98-MmIM6pMuXf-V6xrjfVv-GohMK6a162CHKz-B-0yu4Re8hb1Jz5J_D1d9KupvhpyA7eCnfBl3zB0sLMUPWW90GnAfmIxmZLSbArX0g16PkpY5NS6Am1YEg5g9SxQLdmg6KyIhI7CtobIFJANecY6_o8nk7zRzpYOSnV0TI9PnMR2mKadoifWFS0QBGb8tVRpu0oWbpexM1RYSUSFYZ0T4LVhe-qjs9KRVLfnaSierehAP61MecCw2CMyqW9uJPy8e-b_X-My6nqs3SFGZ97ZV4I8Abuzd1jAuX-30Iw7uPg9dGDfWT1XH2WhvNI5wXesQhRYMazlmqySWAgMrhpgtNSXhT98P3QOzUmPdapI22G96x4hizhfvdyICopTARloX5cO6FEqEU5vZcggOpB8mEz7CYzPc8O6uf7fvFSxpQxq6oO_LU4wVofoUTEEbFxwJbwoiSm1Gy2H1FwjjK5NgK2wlvqoLIbcbumg1o-r9TxnXNMRcMb-_k-5smN84rPQrWoihmD0w7UeMPjWSSmUDb3zhlb4p8d0ybjf9KxFbGDS0nqm1f4t4NsEHbhiApJIlA0lGeY1Xbl0SDQaWrMcqBEX2pZEwFGVne09w9xktNXruuxqgKAwBbF8055iqkbU3POzcK81fFIXrvpOZbH4_7_GAbUyqoTzi7P2NBcVM9h6X3shjbz-17FAxUtl-xIb8udM7qCOkCT0Ct3IFBvxMIx9Orn-J6IZ51TtVz4j-7lnC83nxFwgAdRLNYcU1NcISbNMuoeUffTmbmUO-F3E2TnOZg7-OxEmY4UR5Y85ylS8f4QIr-CiQY9VgA2tRifk520aoLHprYIYmhOf8-O6lEEwYGywALw8kXJdsH4chk-W7YreTMt-BLj3YrkBUGOo37iyHjwwJzcMkBGKhykvRcITcj2mnlsG3O7UJSDU-gxMk1GJXaSxWD40VPeIkdTjxzDZY6TWS4XkRpDJEtjZ6M2_NYeisCqP0sR3B0nNgQijc5emrmb19vixLJWHVwZU7y7hSvjBTigpPoeT6JAavYun6n5sMs7xyGaRjE5ltWz69Q9Yizkg3nXiHHCMFcFywjEZ81r5asP8zkYRR-w6MPrJ-Hi8dspCcVnJN0xd4TJG8tzWeM4sIBVQTrFmE7M0ykFgnW8pv5TaWOyseJNXET1TvDp1Mpmy8mxcbJy94PQZ0_WQT3jhG_4xEH0oyH4uZ-K7XEdGi68YMCHMziPgNLeeg87tqpwDfFj1EQe7St9K3LVtvH66hVmcKrOxOvZIxAELjbpPf8mRIE2zfcLnNYhZVEyKIP2Jx5kF1FPPjXy4I2AKQwneyz9juQe-9p9cEfB1t-3eWh1XPfyHsLCugXSS5SxwX3Fwg4qL8o-NAfhsQCn8L2EUy2mUCENxofSMFMvIwTEZLhlkze2qhUJahz962gIkKNw2EU1pgGtyrAW8ChrdFF3Rmv-w58gciM2qj4LiCWNJOhOgjn2aN1S9XgS7PEwAyktD_hhC4TeRZTK-_QknM34dfYJcprU_KQ_raGweAkEw8aagOD0rt65bzuFhRBp161YRkUh_NhnHPySQYDFKnIGRZFRZ8S7M4-7LizemdG0JnDtQKk5RyvPr1ViMHJCx6Lv__jdqAmtbZoze2fetdQO0wgRQ9WD11MkpQKR2nKAOk-mNaFNMbTRdrargqZpe5GRlfe3xTU7uP3UofnxFo9Ls7Y7BrKTPaxNA6mLdDsX9cGormf770ELDSkTanKH34BxJEvgjUbfclfOJPR_hdPST_QYw1BrhenD33DXRHd6rwROh8aWTb5BYjTzTkRTUvMzLcoy89HYUS_cAwNeXjB4gSDke11luwoeVVNiWUmliEetfk6o-fllIIKDDaaATSdiQHnte7S5H5anxrAwE9CKfkSfwcxKcu-59mHVDLG2X05EULnncsC8IKDn1UI_SrBjNg63pEDtjypQYTAM2WyExxLFnUGha5L9uF58RWgkD5-eS_4kxk_XH0XsoXFkSz4uN0qHx487paeCjNyDgjCMJk-pgNkRR4WSzhnDIDB2zBb_soraSgRivBIc1gnNux1Bzzgo_VYB4ZNgJaLOi8DqVSNQXfzfZnadi07WSo2HcT63ob55i8vmOiedcdLjhgIGxViaq7fw8G24TAOio2XS7bMcFc5IEkLMPxrCCCl6YdvLLg6ebMF5NbUN7yROd3jfgpkXiIX7RcdlyVHiUM5Lgk6fi5sZEfyTMHYtlyevlANt5ujRu_8visTLgyaXr40g66EGZ8LTdt151Kiod_jcNGdywZ5DTc9ZY2WgWgGAPYfD894saNoK0uFwb0Wb8NB9upbUwYma5gr31cHPKdQ4Gqsz7engO5tdeR5ZJAOqG-xYpKc2puepSTo5AvqiE3J7c0SbtsBQCocFgEuWSZZaQ6PhWDCNTjeNdnUxasqrF2HR3LyF5i04ZjQCczCBhyI8CQCNbhd5a3T3_zDOCcSNiRtT0YS6XpXnyqRHE7BNbT3es4DTSxIApGD_gxD364tTY57QV7k-1fBZKfW_7WiScsCXqcMeWqqSQeZzd9yBkvyrR_wgrQpZ37uNsmjK_RAPHWtskOmbY5FcxoNEzPiZFztAOL8Fx3VPE-ihVRNRW3mGSlJkhNRTeVj581HefC1G2-aTojqVPmNaUyebHG2IrTJevxRRdgVS12gBMP6P2Re7ctH2banZa5zEfkrMDxyxQ0UVD95jYQ7IgCLTV9uibR6kqhavoXXHkaeQqGoq84IMrzKGsbRv1Acl47-ckBk4q2audn0zss6tSXUC6GBahwkbXh9Br3bKFO-Qvhyoe47EVAof9SkRcFXr8m80By0LWUK6axGvjd733PEE4dhNQZ19Z4nMNbqWnwetqhA9FpGD5itTsVyh26YmYxmzaVZZNArjlxxkYeIFdTPkkC2KWw-1N9AZnEpLyGZieuQHBA9zSskKpU_1nTubGCoOB9tS94vUPiYxxyAFVSJOFNOg25Uphr0AiGOUnVCAapO3T141Jcq_rzlQ49qSgHO5jOoUff9h2_jgYZs1AxeRdssXuAAO3ovkfjWlY6nRK5AAQ7OUmbum-M6C85L4NE6NCdbG9wmRhM7EWR5mv6AF6HNLlsW88GWK4tVcOzgZqwXtTlmNbsx93QhpWkB_MNhlKDLPTecL9u_3UXhbPj-vLG7v2zjQ9ZaCrPqwf-owf5u_yOpiWQKpkUiucV9U9xeUh6fCD2YXbwcI9oNpUnCwCuh-pcPqo-QPU9s-9XBR1cqRm5vhCpfHGzJOpUq1cYNW26dd7ua3BnFiireEt8Tgm7vSc1f9Z1xm3rDs61saQYy4h90kIQHLBb_YL5seq_EPVvTOASJd1RQiYHJHoaGR49pLab4O3fLMe_8pIF87kEHBQQ_iiYmOXW8vzRV65qN_BjoA1tEe4tmrzc8i3a3cDRq1BHtKlTn1-FS-LOTOIjtkEkB5Ibg3W9EJGTrzJkPehwCam172uJnqN0McBKODecQgJSD0EQKirp8x3uB6kgBkhYvljLcUKj5n7fDyJFHRe-_JQDOLEf59GoRoSmOgzZqCyAhnXVHcSoSCLcMpYhKWCFtxJ7aIv-i4F-F8Pg6YFq7zKJarvj40nGeNHfwTgLSx2MW6frCSPys2oaZGrdS6azL1r6HBDRDD_yPUzBGAMRjjvbs585RIpC9oaO5BRKuUwbh0szere1wtQkpi8ClEi03bPVuW8axswORWqYeY2sF6V0H_QTaJjhHodLbR8KiQiqYiqyQkgPA4eeyMEd0IkHtfO8MM5ApLnQe5N7PSWJAQA6hMVEJOvlag972RTzmqeulCb8ZSv-Sw_neI80yIoO1YFm2qSgyQLcsQRQ5WET5pTdASrBqXG6noMGhBG1ODO-2Sywr42639kE1J_G0bHsOEjUpz7ewSxQIcxNLr1K0yiwSqRngfUUweFRV6_xQxt8it-He5z9-QHaGD0BMU65XIQP-HAjsL46cGUGVI-1HcKa8vwDydbnhPvAewLrWAaDRladHOsaeb54Rj3_hiO8H7o3KH-jXA3J70tTOJ1FVqC-McYcHEgRxuFIAa_kIN0GFhQOx30Jy3XyFh8sOm98c3C8AGCUX5Y0_6upfboCxhXi3V6lbRfeJwELZCkbfopYYFjLGXkZWVkVSPEtMT5SrQD01tSd3b5KSOiEHHLHIyNz021mVkyCca3Ldb77U9EtBkE4kd3897Iqc40Pq8xXGOixtfCwRHAiE4KLUhtPFrEKhIyiOOx9LxW7HCcg6QKG1-aqeG3E0to-vmk9G7wJd69SC4eVGxQIXQuHIB3lQFaKVpNs0mzBWSLW_CUM-GY-INezLxFgmJA9VzosnejH0eLTTXUvRGPEJoMCuJFpjbvtP70rfA1yhBtqzBLc9IJPfKdLIUPjQWRwg_djwFOcrPwdy1Q0Y5Qmd3U4PchNXXRiRAT6wPgedoWNB9lWjvLBc6vojZL-IqyaylE4AqThmlgre-e0J2iLPGopx7o4v45cVM9okyx8V7dWZgUA1g8FaYn0OTfGJHHCL8CFBk5MISQExcRPl35eYW7BHRxt55dxTcxwmQW8U4F7r8pEackK_7VhKCFqTudHY4lmM1vKYA3puK4lTyY8WNYdsBQ2mOuQwrqvR7Ud_SmkLn4WQLMl2lt2qrzGvQecynIo9nyPa1V8dQE_M5FXKB-QVBh4dLy8pcn2_Gs0oa5G3vgSDSeVGTEexrxIpZIRgNR8BrAZ3iRpAq70SMT4MJBxwgliP8lR9pT_89Jo99k8Kf4iso2uIpz0RoElin06mFSC6wqiSO-hWrQm56RGTLXPlyPJ5qncZ5c8W8B2rAXqAumkniJOy68lIHWX4LwB38VpC_ZVRbQMT8kxwXoCFml_cXzrH5xi676DJysDjvXhE7oqdTTVgfhKmMs8HVGjllOw9UWkJCx_Udsi1JBtLJMyfTh0wCDntH8HtM3AKxJS5qt1bSLnjQXfY1aO7MtdegzQMhQAguHK9HWzZeGtIeDLOY68V9WUFaww9G1DdWIkDpEWAPG7DLy1EVvgfqZ3bWk961-p6Vz9Qk2iapDKStjIxSmPbnNG2rLiALNz0YSMqaDeVSfTk4AxyiMhzgj1gYoDIQCWXBe8qVkTIQ5EymX-FCb64FO1SdU1OSAywcT1lGV-O4BW-3hNwtLR3tLirCcIDwLKdGF_-FyFWyS84C0lKwMKOTPVpOehZa-Kd0J62I0Fn98WO4bldeog7WCQcq3kbCqCasRsG6ZWRoLjAkxZwE4OwJ_VbSKrRz8Xu2ArPLurI32hiHJGDki1OplLiiNirXT9j-KU0mbLGmGrPwc6AhcVaR2gKUYx7UWLNMAeA9YgCM-7vhNEaHTHOBO4RonbYD-59RKisvWg5PDM7vpder9tsOBOamIW8ao_k4UuSc69Cjz-8hY-7DMwofZdS0JjEpRRqOw4Ok7GapnFdUkdWGcAsgF39rnHTmfYau_VHWk_2nWYg-f849ixw1yeaI9GlzBcO4JLxyvt7eiFi_UfZGalPOKgy3WBb5fjE-VPtrqHEEd3Zm8mAqrWQ-KHvxO1OItzn756Ghi1N1uH192RQLcvOooAz6QnZ1f19GYBr07EbsVioLInxjEBExdS6em0KgKbepO2p3_CGnVviNDBQQux4Fq97bNes4iY__ZSQueaHA-sokjtk5C5-xfzRspO2O809IO5FbXpwTs7N4TN0kAjGI2shmHmPaJi7xn0broqYmLAoYnOcVIQYcpO7D-dbYQKDaDEOWX9vvxv2NRRgc6LA60-in8SliMCXPxkxJaGbxULYlhMnNtyi35mtQKO9kpkWL3827XkBy_FdmhVwEImFPD_S9-PFxgrxFJihogl7x-v85fuMrmKQO5hTLLbVSQbH0jEKDFAVtJtze1_X-4NX1NOyL2vQmmboBVYBkJV6QdA5QEYgZNWjRCDirk1LIvzETHZpDJcIiWEYa49K3QrDYVh75EmvQdSEGxoOV28fwKWniC11xbE2zZtX0QuvXYMEGqML-Qz35AdJKpKlJDNpAEES1NQUjeaD70ub2XBxTC7cFUTyVMLxLc0JOIw_VylEt5QjrjK4xlkvBPXlw16KMOZ0vS7pqbaPhSvRQWLGyxSxWQFaUlZlM-f1DH2dwcFhyYjP10dHgQqgrAjA_e5EbFjibptSTVEBhfDxKy5Mzzu4JuzuOwjRiFQheE5HKHpDpQqdA5RcTVch-peiznZHfSKLJRlRlGAI5ANdKWnWmeoq_VpBHdEI94HIayFwt4N8lJgZfTv4H8SPhogschD-6IxdxuF1krXxH9pycL83R3hfIqfRzU5NwLGxnGOtY6iZHKOKJNpB9tvnNy8F9glC2weKW6sX9IdWNUVjvRxRAE1eQmTAvupM2j3gq-QeE489LKpS4wdQ4fBCxB6exZQEA6raqJFEpUKAZ7WKld1lTPvpjDzQh_uTW6E3T01o6ST4YM6F490OdbQtJguYGXNO8Tt8v8aKrfkTVKgBhF-3MAxokcGuTHuAaX48voBj4cWb0PuOm3O9CZaTF2iMk1nBqoOnnXSdoEPf0V84aelywFhv-Ha19SU3rgwlEgNc5324xfBawOGa__oyT45RoQZL493yr3KTQeio_kTnlnUFHbWkTfVKzLni1GIRMM3f1Iw595bAlFZNQv_Hk_F9MN7FoJqP2JaDwIvFcr2Zzjp8z9dr1BRJuDYX836yF4eZgHWJ_QwtBzp8ivRJR5cGKB7MM-b8Ge840VHxVfNQZO45u9pwgUI_UeSCNOoOeeYHIQeCiGJ2o4tke604ScBfiUtY74jE-9atuuJNngg7H6zvRE5T89eC0pb2Yx0_itSph-hnc0DlpGPwPpXcHtq8MvbJAeF_Ryn6FrVyLOaUGFeHLo3tqWZx3E4lQnRfhrFxkofBuxLKdfXVq1eUr_19O_otVsWtD6EXA-mhUXRWU2lrC7WB0RLGcw8hiHf8aYGwikGpqFbJfcaOhSThmFwqovIJoCaQfiIt-sJ0p-vFmszOmBzknIZY5Z7aE-J9H6UTyAb96jmAsOCQ75_4MEZwf2yiz-yT41x1xxFFENdxjqqpB6DFOH-B0PX2o5QTvKW_q3dOz8K9krmLGLozVsX_83lDcCyaUqCtCn2v2CBxa0etYPQh79wWS4s84fzSO092pYges_6o5Dczw3MIfDATEdOpnx5OCumeHkUzPHZmnethxVyDV6aLjp9w_cunifHMjBDpqRANec_l5kuoK84hSibJYHDGUTlzaZxBzMT6LW600di-5fX-z0uGQ6v95qSdvogA9W2ySkhZjWz_bJyWd2dMurZ4ZQWIo4XqXZ7zS-ODx3148_hYKzjSZ1cVnujYWJwr0wa0LBS5-HAEWXUaO1oPxK5eIZQzh2GK185biihI9fd5nQ2O8rLJFk7Knq9L04sQFG7Ul7Z4N3xCn_vLZQN6SVr-CNjmHeahCTZeR5J-yLzdZwlTuRZZ6Wjn202EhA_MdqcjYVBdjAYfG3fpNH4OvqM_PIIFftRQnC8EV6qzDeqTISb_cfKj3JwLHmeUsQbebgCw5uFeIzQYkUVJH9o_GVtjmtZxyQe9cNCMJo4ehDnc7ZDWTPJ5L-B4EgUVNI5zxd_k93e1e14WHDcL3p_NWgPKX87i5G375xGFttZrJ_IC59kZsfDQ9RPcodRF-IyirJzWSkjs8qwo0djRC4OxzE1xkPRng6zFu3e_4yyLBTJ6HhNc0RQ-vzVPhz3LhhhvC2mXJ6TeUqRKc-HgZwhHKHLB7CqEkGc8GGJkB2aztxJE4bUsSWyacAUKuf5TYQ3xANUDQnK9t2eIWEgOoFyS0WeZ4kgUoh4rQB4Fx0cPyd3rFBuoEhBuYjDmvjdJW666h8kgC41_5HLfUmh-srwFsgHwdPdV5STJodpAXbZixmEFU4DT9h8-GYMJwbZSWIXi7n6t7SiZ23X3D9pYB54k_YODkFvPxju62RXqwm6IwwktUuLE7-qa2yuVbO-fRwUde6ZzYkRtZS-42_ZMLajH3-pFJ-GoBbfSmuYE30wjBa5mT_tzF_4vBDdzTvCJlY7Ucwf2KnQDQFCMCDXUFfrDi2Yna3_HtVaX-GmF0breQauWk8mENfLF0kPwCSXxuCHkue8JBYmdpSvY9i_HkZKD8GNSuLQ-rxiqOUeLt268lJ1DQ3TA4aiEwvmkc0ejagrV32KXmJcuqcP55odTqDwNYBiP7c0RAzxd0oK2kTHNT3mNG0umFbq0G5DJA_7i1Tk06wtlQzylekeblJoKS_jPCAugwGydRx51Hx6YKwggRk3DDGUspQBLzhWraVLLI4hWovdQurUY7IYeSCruMeakocT3N56ahNJ9OQvLJML6yi0Vc6E9oAL6u-8FfJ-F8aCuq00ooCOxoMn-2JP8DD1M3dSogZapJI8XSahDF2LgfpUgW0NHFPPAFEAPs6cqUgO2Kf9w47PueA2WkioLwXzcCmKvfQpWLmso9gpIc473z4=" + } + } + ], + "blockchainVerificationKey": { + "commitments": { + "sigma_comm": [ + [ + "0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC", + "0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37" + ], + [ + "0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC", + "0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4" + ], + [ + "0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB", + "0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D" + ], + [ + "0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05", + "0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E" + ], + [ + "0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB", + "0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B" + ], + [ + "0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1", + "0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5" + ], + [ + "0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555", + "0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224" + ] + ], + "coefficients_comm": [ + [ + "0x26EC10122354E7DEC10E83F7D26D4311863753F37489FFD2F5D634958C876CB4", + "0x25AB47DC77226E515B05BD2C1DFB025477F54FFBB9B62F4B2914306C2D1AEB6D" + ], + [ + "0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922", + "0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28" + ], + [ + "0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F", + "0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6" + ], + [ + "0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236", + "0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A" + ], + [ + "0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614", + "0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E" + ], + [ + "0x2EA4EF211B04C50C1680CE1E38DACAE3EC40FAC3216A6D4157B29D6053C812E8", + "0x310B3ECB01C946FE01F766DF1249FD36E4AE2EAEB450D93DFDE08AE9D24BB7BC" + ], + [ + "0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121", + "0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E" + ], + [ + "0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA", + "0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B" + ], + [ + "0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F", + "0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89" + ], + [ + "0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766", + "0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE" + ], + [ + "0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036", + "0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455" + ], + [ + "0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103", + "0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4" + ], + [ + "0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E", + "0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645" + ], + [ + "0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF", + "0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF" + ], + [ + "0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39", + "0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567" + ] + ], + "generic_comm": [ + "0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B", + "0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C" + ], + "psm_comm": [ + "0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324", + "0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B" + ], + "complete_add_comm": [ + "0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B", + "0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688" + ], + "mul_comm": [ + "0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5", + "0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689" + ], + "emul_comm": [ + "0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9", + "0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9" + ], + "endomul_scalar_comm": [ + "0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD", + "0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244" + ] + }, + "index": { + "domain": { + "log_size_of_group": 14, + "group_gen": "0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7" + }, + "max_poly_size": 32768, + "public": 40, + "prev_challenges": 2, + "srs": null, + "evals": { + "sigma_comm": [ + { + "unshifted": [ + [ + "Finite", + [ + "0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC", + "0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC", + "0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB", + "0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05", + "0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB", + "0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1", + "0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555", + "0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224" + ] + ] + ], + "shifted": null + } + ], + "coefficients_comm": [ + { + "unshifted": [ + [ + "Finite", + [ + "0x26EC10122354E7DEC10E83F7D26D4311863753F37489FFD2F5D634958C876CB4", + "0x25AB47DC77226E515B05BD2C1DFB025477F54FFBB9B62F4B2914306C2D1AEB6D" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922", + "0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F", + "0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236", + "0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614", + "0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x2EA4EF211B04C50C1680CE1E38DACAE3EC40FAC3216A6D4157B29D6053C812E8", + "0x310B3ECB01C946FE01F766DF1249FD36E4AE2EAEB450D93DFDE08AE9D24BB7BC" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121", + "0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA", + "0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F", + "0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766", + "0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036", + "0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103", + "0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E", + "0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF", + "0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF" + ] + ] + ], + "shifted": null + }, + { + "unshifted": [ + [ + "Finite", + [ + "0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39", + "0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567" + ] + ] + ], + "shifted": null + } + ], + "generic_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B", + "0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C" + ] + ] + ], + "shifted": null + }, + "psm_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324", + "0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B" + ] + ] + ], + "shifted": null + }, + "complete_add_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B", + "0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688" + ] + ] + ], + "shifted": null + }, + "mul_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5", + "0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689" + ] + ] + ], + "shifted": null + }, + "emul_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9", + "0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9" + ] + ] + ], + "shifted": null + }, + "endomul_scalar_comm": { + "unshifted": [ + [ + "Finite", + [ + "0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD", + "0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244" + ] + ] + ], + "shifted": null + }, + "xor_comm": null, + "range_check0_comm": null, + "range_check1_comm": null, + "foreign_field_add_comm": null, + "foreign_field_mul_comm": null, + "rot_comm": null + }, + "shifts": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3", + "0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6", + "0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D", + "0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4", + "0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484", + "0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1" + ], + "lookup_index": null, + "zk_rows": 3 + }, + "data": { + "constraints": 16384 + } + } + } +} diff --git a/batcher/aligned/test_files/mina/parse_proof_query.sh b/batcher/aligned/test_files/mina/parse_proof_query.sh index 1999be6204..f1c2f8ebcb 100755 --- a/batcher/aligned/test_files/mina/parse_proof_query.sh +++ b/batcher/aligned/test_files/mina/parse_proof_query.sh @@ -1,3 +1,4 @@ -cat mina_mainnet_protocol_query.json | jq -r '.data.bestChain.[0].stateHashField' >protocol_state_hash.pub -cat mina_mainnet_protocol_query.json | jq -r '.data.protocolState' >protocol_state.pub -cat mina_mainnet_protocol_query.json | jq -r '.data.bestChain.[0].protocolStateProof.base64' >protocol_state_proof.proof +cat $1 | jq --raw-output0 '.data.bestChain.[0].stateHashField' >protocol_state_hash.pub +cat $1 | jq --raw-output0 '.data.protocolState' >protocol_state.pub +cat $1 | jq --raw-output0 '.data.bestChain.[0].protocolStateProof.base64' >protocol_state_proof.proof +cat $1 | jq '.data.blockchainVerificationKey' >devnet_vk.json diff --git a/batcher/aligned/test_files/mina/protocol_state.pub b/batcher/aligned/test_files/mina/protocol_state.pub index f84e708e5ddcc7313e8e048f4d0124f5e44c1327..86dd4c5b9cd31a8532440180c1368dec3df55703 100644 GIT binary patch literal 4757 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 diff --git a/batcher/aligned/test_files/mina/protocol_state_hash.pub b/batcher/aligned/test_files/mina/protocol_state_hash.pub index f72b8a42410553e8bd336716c2945de90fb471ed..aedb7ac207bb3497da14e1f19f6d0566316cc393 100644 GIT binary patch literal 78 zcmWN_!2!TP2m-KyEaQ08P^hz=-jZ@q-&Q)taz G%lUqKh!64r diff --git a/batcher/aligned/test_files/mina/protocol_state_proof.proof b/batcher/aligned/test_files/mina/protocol_state_proof.proof index 3f9d69545d..0034568150 100644 --- a/batcher/aligned/test_files/mina/protocol_state_proof.proof +++ b/batcher/aligned/test_files/mina/protocol_state_proof.proof @@ -1 +1 @@ -_AzFacptM6EI_IuGEn36D_DDAPyJALP-mtaLe_wRKLlqjdLzswD8wQc1hnC4z3P8nOfrwyXsm3IA_CVPq1cotlsK_PKA6zqDmK-xAAAAAAAAAAAAAPy5KqdWtHBzrfz8nvHVI_lPNgD8AHwvjmIch1n8h8wmonP2x5wA_K_ytp4dglQj_H71ffbRa7nVAPz2hpCg0Pd7FPxoKiRAzmJeYgD8Dq1WMmMbxq_8--EfoRBygAkA_JFBrMq-Hlj5_KbJtz6Z1R5XAPy9w2TNo1BOqvxoxf7BCucU2AD8bd5egt-sHbL8pQfbxReiCP4A_H-q5unWD06C_Cx_uU6YOvb8APzKBBtxK4gxw_wpJq62x6w5kQD871GB_UePD9z8h5U7xEN6qQAA_L8yhtEe2Dhg_KsFqqJwvLP5APxaR6_l4NJ1lPz20sOuAqfL0QD8BHwt-fYPeL78VOL7MpFYPeEA_BN1MbgSt3DG_Ag-SJozzHUWAPzRuMqxorDBSPzOsXHA4wRmGwAAAhAAAAAAAGKZVEkV8JvnwXkRRC0lSEBTtFkF259BVjBh_X28MtMPrNdShffBok_HsebifDwWOlWmsec2OQMdBOulXlAEBRb8b7_mrMmzgjP8Yxh2-VhDl3kA_JeHiOkGKzrd_MehRClA5nrdAPzLn5z0MOXoxvzdnKDNZbvdBwD8Expph6JZLFP8e29lKrC8IakA_IsHEI-xd5zi_O4Ma98AX1z4APyHnLAHLae9HfygJl_p4pcbTQD8EV-AVnx0dZz86PHO-mlj_qEA_E1g6dvfiitc_Jv3EPKMcYxaAPxIa-BRXLPAIvztbalAc4uIpgD8bmR2XrXXB5D8Eo5O2zmLxsEA_MkrPzde40VE_OXNjPwVx0CdAPxOqrxLhIKYQvy8t6_Q1yeplwD8d279_1s9ypn8lEJcFVVq5u8A_FSZlyFxsn1L_EDIk2Hgoh-VAPyzRweyvszRLPwdAmTyPN7RWwAA_G-_5qzJs4Iz_GMYdvlYQ5d5APyXh4jpBis63fzHoUQpQOZ63QD8y5-c9DDl6Mb83ZygzWW73QcA_BMaaYeiWSxT_HtvZSqwvCGpAPyLBxCPsXec4vzuDGvfAF9c-AD8h5ywBy2nvR38oCZf6eKXG00A_BFfgFZ8dHWc_OjxzvppY_6hAPxNYOnb34orXPyb9xDyjHGMWgD8SGvgUVyzwCL87W2pQHOLiKYA_G5kdl611weQ_BKOTts5i8bBAPzJKz83XuNFRPzlzYz8FcdAnQD8Tqq8S4SCmEL8vLev0NcnqZcA_Hdu_f9bPcqZ_JRCXBVVaubvAPxUmZchcbJ9S_xAyJNh4KIflQD8s0cHsr7M0Sz8HQJk8jze0VsAAAAAAki1NuhGVKVfT_3__fWRvZ08oXBLzvBcpZ3CZEje39MRaxosRN0hx81ZVe8Zw_OruEIOG3rlFxTe14qETSIH9QVItTboRlSlX0_9__31kb2dPKFwS87wXKWdwmRI3t_TEWsaLETdIcfNWVXvGcPzq7hCDht65RcU3teKhE0iB_UFAvy5KqdWtHBzrfz8nvHVI_lPNgD8AHwvjmIch1n8h8wmonP2x5wA_K_ytp4dglQj_H71ffbRa7nVAPz2hpCg0Pd7FPxoKiRAzmJeYgD8Dq1WMmMbxq_8--EfoRBygAkA_JFBrMq-Hlj5_KbJtz6Z1R5XAPy9w2TNo1BOqvxoxf7BCucU2AD8bd5egt-sHbL8pQfbxReiCP4A_H-q5unWD06C_Cx_uU6YOvb8APzKBBtxK4gxw_wpJq62x6w5kQD871GB_UePD9z8h5U7xEN6qQAA_L8yhtEe2Dhg_KsFqqJwvLP5APxaR6_l4NJ1lPz20sOuAqfL0QD8BHwt-fYPeL78VOL7MpFYPeEA_BN1MbgSt3DG_Ag-SJozzHUWAPzRuMqxorDBSPzOsXHA4wRmGwAA_Lkqp1a0cHOt_Pye8dUj-U82APwAfC-OYhyHWfyHzCaic_bHnAD8r_K2nh2CVCP8fvV99tFrudUA_PaGkKDQ93sU_GgqJEDOYl5iAPwOrVYyYxvGr_z74R-hEHKACQD8kUGsyr4eWPn8psm3PpnVHlcA_L3DZM2jUE6q_GjF_sEK5xTYAPxt3l6C36wdsvylB9vFF6II_gD8f6rm6dYPToL8LH-5Tpg69vwA_MoEG3EriDHD_CkmrrbHrDmRAPzvUYH9R48P3PyHlTvEQ3qpAAD8vzKG0R7YOGD8qwWqonC8s_kA_FpHr-Xg0nWU_PbSw64Cp8vRAPwEfC359g94vvxU4vsykVg94QD8E3UxuBK3cMb8CD5ImjPMdRYA_NG4yrGisMFI_M6xccDjBGYbAAA6PGEyR9EE3YxctI9ZycvlAjfZwksavOFt5bC5qZVPN_K6SgIy3_BdUryusTZvur9-D_wscMYan9MzTVYfUu4NAZFybfMU6ohMg5uZyYwMBIrJb9mVY02jrYcwm4cGvRcyAUT9NbzTqkpk-PtboA1O3r06rPJeW2l4qXOi4SMKH7IWATZiy6C9nok12DD8i9j3LiUazqifKXguHbIEIH9mj8oiAbKXgLylZHSdFvnkYWGGjhuw1S9UqCqifTqeahbmA8UYAQ5hecZuoLB8gtts0SMPxhaSut1RZ_qIt2lXmtJv8bgGAY_qMJcltWdvZuLn3kzz0Ofd5oeojuv-gZOm2sWDR8E6AaYUXjamNkTUesbOkhefo26mF6KY8Qg86Im0ygmvUcYcAd_ZeC_e6MMuV6Bh2DMnbL9XzTgkAcTcKX919ukIDPASASmkGJFHwKWqDsHf_kowkf2HW53CH-dCQzTYOfRUgxUjASmQRP-Dv9Mjjkm-oa-BgycS2r5STXExtnEV6Q8EEIQyAYhpJddFLTbQ574zHGl3Hc5L0gGM2A31KzvTmN5ADRc8Abtd8iY33R5xkzi0OfdZQ2cg0BiNXxG_9ZIjMXgQNH80AZgpRK5PEVqA6-eAg4lBWhIj4KpWHaTCOMcaz0aKS_woAY1SjIZXKSTQBUTGZ1AkDAWVDeDYc1FAc78m89OAYMUQARMjnkaifpINMJNbzWollLJGbVZ4t4eFtG8OAlVUlrEXAdIsMwcSIrttuMXHi69UgcoLP7-85gfIZ28tK5XBbb4gATKKvX0ohceTcr_LtpFLUeLLPnvdLU4jc0XYdC6Sv3UnAWZA7oB1BZZmSe32gQ-A0zA2BGrQM4XdH2mAJQyv_XAIAYgoFDGCTKmZM4cKyk9cg2U7tz1E7G-9TYQchXUhnscPARVKU4BojQx-yjve2IP1gIfv949-v96DB3FGgL9-l8YOARmqpJkw6bKiRBto0Z1j1xOgVpfygHMRMzlSlPZku2IRAcUV9RcO3D8JcVj42YlI5rJFwHjeSBTxUXie80n5FAQCAUPBQCz_koAF-2QRQgrQVvZysAJ1VX0s1u1F61VJ_L86AeFVD0JCRca10RW7_010nTo4zrBV0gv_OybE4oEosfstAap9Qy5G7Ag87unSTftDg3E6QoakqfdrTJnY2VyYztgxAUm3AonxovG_2xV1nZ5um1pteu2vhhsl61mRofM70JgPAQjbjCLm7Tn6plqfs9roiHsbc5usddtSM52OTe76vm84AegRmK03P__TnOWemols3AdERSLCXz0UeUrSretqNDQkASRQhAtW8jVeb8al0MstOxegNz1L-Bm0GmMcti2AcQkUAbOINmA9szxWEdW8hv5wQZl7frZbY2eItk_pLmsRENIEAAEvwOjTlWCgsCMWjWpRghNlWQE8N9FewsLuEoPGubd7HQHCYmpoFFNIbqXUE_DqAwz11zHwq9_mMsdKKmmDte4PFwGFWckwTe35TyNm1Niq88nCr1wqszmKWu9My4OaUN68NQGdCffOVUZW4gI_IpwEhZc-V2_3Eo1FkGiWw61W-xkgAQGtC9t5svFvTRQn4Nr-cMBjEPpGBrk-tEKCU4-D2ijxPwGV0WIswKfy24qZ2BVlNNVyB6rzu8alpqGjFc2SQmiCHwFS0reBvhwwDB3LQCBfYCQHWpkLPtZAaF6khi9l6UbpGgE2iY4ANf6-Fu6V2JAx31oQ1WHZmK7QZi9deLsMF8vYDAFxI5ougXdG8pcPqt7xrkNRXIrf_CCxbxlGt8LnQLK-MgEhErp_10lnQVY7lIh4YSpf6hH-4X9Iu7ALrs9733jkIwHu3CQpAe6rrMu2XSVx_8Jo__W7ZvdUJaWnt1n_4rMoDwF7DTz4lANzls8z1DLGEf_TNvmGWkqP0h9NuNNHbmBoOwFdyzC-_PLz2ZYuTi5MogrWTHpyxzBwlHIaR1F3n8oiIwHEbrA7kGr-BD0iUMbnHPhQd3bBvCJGInmA_EJ3BP4qBQEKzCtv_aYC-uIHNevghsaQ__iLWwvw3e2xnwM6vm3wJgE3jMlSF-_fiEjkbNvvN-xMoO8jqbkknuJIHbkZU5CCCwHhXODBNtpjzl85oYYtmwUEuH7GswTgiAeZfYZLKuXnAwENViE30_FxaxBbMuOMCBvP-iB4vqKIjSdvNUlKRR2ZMAG7wdpIm816ZRuiURpesbuExUAOd4IrVVru3_BarFqZGAFXzb1Ke2lZRwF_8Qw00e8J5Amy1Wvmx1y8wnSsHygTCwHmfEbSm7zz9JhzAnA_Y4w2DABjmIxM_PL6LQTr-clhAgE2UeOYb14khXPRV7mNhBzZXQm-zOQGSghRK_9pOIFfEQGRF9HtRRuJy7tDdTHSQMC1RmrWUR_NGb4AGrz0YbR-CwFsw2cP7MfLQA1G7MePPyAHoM6iXjrMdjBp3nwxS_e_LAGlY8mV8f-Px-qgGxOywW301TZCoZuobwfO4e3v-zItHgGLn3KkrMs34UEblCpceb73vxW2dKSyuq6hrSM1J3gVFgF5PVHTzv6k90PIbpYsCsMX634CwZIIFGgJln0oBJBeOwH5pqK5yQpGt0OQozIY9TfNYVfubRpsu5t5cm45cp-7OQEADEZptNyvuzC6VEKWLA41KBizlxVqpZwAfh8q-Ym5OAFAX7cR6un8p4h12422YYnFbUJv6gaPKCb-XLCwr-BqDgABDlAZ71lbeW-HLtrodN8-a9HpRCSu17pNesX-WuIlJBUBzs6SSvEomyJvu2y--Am5RCKp2R8Hgq2g2H78g9AZuRsBSk7p2M7zfnBNV4NuK9QsaWRm4nGX4WblpKyHr28XqSQB3n5X7QI17RMV7nx2WC_oXvE0EFcadTe81705GfJm7B4BfqjA-yV-URjlSNnH1Z9YWMoVO594UGIxPSUOJOIDKRQBnVPIW9vIufiV_TzyhUCa3iTQd8ax-4hL6O0DpgkgehUBmYTeWtMJHFI_kNtnklJrNrPQk2vaiqiqghEnSOGq-y0B0j1EVVxWkyQGfYKBdjKktIvjFCZxAaCYcxlyddAoTwUBjR744krPNeaPQESAMkNS6SFkW8NUsFZE571Os6gOnRMBrbGvz6_-dWlla1TVzjn3wRpVlY9j9DLvupqpYzTj8BMBDRntusuc8Cu_XBwQU9QiR5UmhVA4wHJ3KgqXDzpU1SUBiaxwUsNvUKibzQYLpn-pRG3-sLbYCnTvYX3Ur2bMIDkBrF0QVebcheaWzeLkzVjkEXVWYi3mFsBLNCfrz055ITkBouBUxluRSy7Mo6m6ozWg1qUBnPuxnOBz6tUuHw-WPzAAAd5kv_MWM4OvImh3TSn5c4JlaSWjhG4I0bnb_YEHCVAIARp5ySBnrzqT4447erVR7TDLJZi-PVMa_LMWH_RkUnkMAcMYHYfQq0qZzsiFs9TeUbC8oyswbr7OjcoahyvA78QdASiIwnFkuQs0GpeogsVFT1hoqNaHlrPxjvVCgO4_lig6Ac_m9fzHUjk9y_yUElbCuoSZ0yIorhrdEg0PvszZOJIzARfm_NoAYyHSb2jilosISHY2B_gy-a2wuqcaFbkveYglAf_bTpCddyllde8WLbcxWBaTqK4aJijp17EU9uZIMjAKAUASitwyPOzSS19N7_g0vpYMkKXJfRbObRI-3oyVsr88AZL1_NwMTNP23kJ5SLB4MS4LN0S2STK1WvYUHOj-btgsAUyx4bzshD-rfjd4D0SIDVjr-jwotMDJE65BSVpbz1sZAcDITf6hUwa7licVuSHAEX_enz-d_6lzT8qXfK6GVJA3Aa1s8ln_6tGNOv04L0EOdxo9XQ8mFFT6aZaT2BxFzIA8AAAAAAAAAAAAAAAAAAAAAAAAAADfFIsPJvAfi1Zu3B5RbKkhShEa2pj61ErHDi6kSQlXOwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwBf7WaQKIibHJKl8UFjM_lwQ-QbckeUvnrUlLEJ60YwCKQbb6CBlRSd_nBliNNvqE0Zdomu94rAdJl0dllnhoEDaXlKoIgKPevyE8Q3Is6g9kqXaFp6s5Pa9ImS8BYyrBV2Z2Ql6HY3BcSnLE6gxakcHe6oNmQPRnIuciJP6PlEMkxFg96rSncZ6lI7T1YmX1kb9UTfY8tIEqLV7B8ZfxwUqQo6KIPhdezV26TVKEkCtWuqotEd7mZ3BHUPkF8gViC8g8fic8QRW0ZfoCzNCwubnnZI3YXl18iekvMFsKIBL54BSppTlA0iMXbnXCsKD3xmU36vbVLAwPQNXY_GbuU11EsiOTZOB4lB-rhHtowcba9M0zzvJ--ghUBS4RJqhw4D-zakbniFVJhfE_Box0riSjfoTpwGbDxBKQIMAmgBAXjLfxEI_zI-1yEANarSOeGWBh8e6_NBSMJlhAITPVAHEDdmitoyunH7NCrgAZf_-UEnOr6ftLtFR23A66Llzh7925nQAmDVYr65rJoeft2Ltn-r-EjSB5jdxEvzs-NDNMuAYPrSN6yrwVKFMNHCgdsaHXAfUphv7q6aRzZlRbgL2TwlrTTBFZYLae1PZY5eylm0lHeq-X9jF1v364JkGDmm1mQmI697mWJvqN9qiomxij8tDsBTI_Wzf2njemAiKzltKoUJcMS3ZZr5zwUN1BQ5OlolEVYJ7FWXeIF8v-YGX41FSQNwr56cZdku_ZOW17EWJCs5tdFwQAYjD6bj_RwWPtny9tH3Ez-NXk3u-Ugbapncl6cU5HooP0RKrOngJ9M3OBLWVOT99iM6ZLZK39OtRifN5qXW1xuJg_Y_ZkwpTMVLMejFlc_Ym2R8zwv5VCO2FQXJoST5pQG3-FIABTLMCWoZ1eNoKa5cd2_0OBNLa6l9DIXrFpoF23Qg1hw9GoZ7_oRnIF8wPyS5TJcUO7YIjyMaictxksPOuWhHUX8Ni8xLg5ERG4_WJ1D02y8FBJotAZF0Z_LIIhrZ9OG4sQB8T_Y7BnpEbXeeH7nOBTZ65vQc_-b9iWcTC6FnSMc8A2n8c09qr_Mu4CArkm5n0QPKiNDoM74GePT3UpGmmO8y4i_MC-fg9HbN7iLECVbnILy6j3uVaZNCuQmHxs_ccTAh6iZi-hN-UhsQ5w1HgFkY9za-n6HqUMBpKV6AkVPTDjVfCgpHQu2BNFGm-XdohA2Relb5tmcXBBk4z9lTCtQ3ZW4VBuwhUXqAieE42n7RTbRe2KGx6PDxo65FryquySoAhJZ8MnB0A6hoc-3LMlPaDUL1skkSGeaYvb9Zk806HDolU5b8bMIWKc72o42cmG5QMWu0Lh8oo-Gvhx91afrLDUbP63XVP6rb3GBVTJm83WqFJfKm9OewqCPtQN1Q_A0AaQqY2UshcO37P1ab1t7vqcyhOwk9lZsTbuAdL5hrDSRujobz21FKPf2s93UGaAvqMNDoRcPA1lf6TGTJWhslKBL2qIf5m8UVM-ZRmBDHndf-fNgPjYy0g6T2UmRnynMeO9d3ZgCHqNalqD9kAAa8p8E238w1kwjrxET-AOaCaxhzF2u7xMNaQMsC-NlyGMrNmPJj3Vi1ro_BuBXyycXdKTxhquw6m2ESb7OBlZ-VdgeUrx1ipTlIIzC8SDu5aUwGtZQxUPGqxd5TYjuLrV_6Y2WOq7xjjnpjJ7H_qSsxeh6yc7C8cf_r8cXE4BSKZekGWySIh7vomWB9AvEXDHtGAuVJuaNsucaBdRfn1m36cfu22AmU21N_m1GSfPMNcIQndTPev6o9ei-4Vn0Zv2JWFGyivBIbUjz75CeS4LNTIixX-p-2cb4NijEVBPExIhGGoYvgRHcQcwxLuqdMo0jeMvTR8Icwfpal3S1B_SIBfAnkkG9WJMmp5w6FFYMr1Ew1AYXvV5AAHL5uTgiUQPxSJJx5u00xIIr3xdiBCNzHiRbcPj_HougTcGBQNflgy4hU-4M1GYbMiDP933r_OvywFVNJr1CR480YwJLtlXvjcdebyj4aM78Pg4isGJEllEEE5yK_CzhPwUg7pQ2JRgTcVUbkNMTKtgAcwrxZ-seYWip6SoSnVl8V8rXKTA3N8Z-Zk3EJuWsh56VB0UIBJBZRNugJP1bEjlQA_tXCqGro2zOFY_Wn6jGmay0IM-K3OtYMpmFjPtSXHsOlATjbtnx9SEK__u-xA-WNk0Aa9wT0zB32gT5x8SH7qmYdy4CUXvEYPsPPELfGNxhKUDsarpEIC1K-m_DwuxGRnVBt8Du4n_a1OpLW-A8Blh3FQCVcmFQgfliyT9Ip77FuEgWmS1y7mGVmr4Qa7GpNjaVCAF05dhWXmvgmC8zpJ5X0EjjPNNd7Q2Dh5BTRx5N9rGt5503lOfNyjRaA4QloG0tvgBH-pqdY-Okn3C4W7PPEGb5vlXYWeGT_NZ1qIHtyPxh_d4YV0vBzKzevFpl3lM-DSWTYeTknpnU-PBa5iSHVPRhUAuh08xioGf3y86xmZyYgRaqKJmZOfKb-k_FR8GlQi4Jq1dBscVSTGMvJEdprdNBu_igGAC5TYFuAGtf-p0XpdmrdjantM1iddY-zOf7UDDKcWaont3qHiLB_fNHJxhYYdVzKPQ0wOnsJYSTODALcX0UaDwMuHmhzHQC4RyADiCN3fsZSLZoenjZZIMPnzgZK3gwuHtltYuVKCknTpEyRnrSwiTM9ZKI27c2hkhJ0rGkDutk3zOOnjfokLYxT6JRnzJht_TMtuYfXbGbnc1pH7zTpDyjDfWkshHOqmiRruF5cQyPNDFpp5LnOGuFg-WFEfDGuLtgtOHF4Qr3jFxV-3xhqWypawqA1oGmxihu3kNihtg4maZTicPKEpVfEGK_r-qyieUyK9qR2yxuUeMIF6KkBFw9xcRXllxPIT4i6vi7AKSUYBg0syCtU6anJotKofOkeFV3ZPJssP87jD6NJYPJHL80E2d6EhvY1ybltd2-uMSIfqE-UoNbWS-C5cEm5KuLFioy5Pnkhefq1f6MsRpWr5yQsfGqlEjtBqo6s6Fp-7rjrsiIZyTU7knZxEZmqqAGCFxbrouvan-rEQuKe-Sk_XEV2kz1TGm48B1GONSJBBV893PWy4SRTuDacQg52raD7bG4XPyJxqhnsbbgBARJhFgUANTYtmG8gxZjlPD3guPxBMASEJDFyr4k8yZyhmaoWFjzwlR5qOF-06oteLPDonlSAepmTiwq2nHfxubIQoF0VLje--p2Axij7iz9_UxaRLBdUJqCtmoPbeAhH1jbxzKsJ4A02zCtgdsIxhARsCioGIIUhVkT-KVSaYlICUFW9-xxr3yMOwHqRUxnGBq2TDEHdfwlyIq2id2pITnVf6y1JHO6AK-r03brztpaYaJ1-drZwyqZd29khlyJ6sMjfujYktcmNOogeqtVgDYmSDf-DAlB50nvePOrdFEJb_IpA0xDARBYoASUZ12_vAQdDTcVrsXTn0WEM3i_IbWqnK3WtGs1xyK_hpxny5eg_znlB-5oxPiuSYkgK-mhnXc-rZLIK5YAJPSQEBvZoSzE85AZpvVuhyN8-1TztL0c8A3rxmgiazJTZw-e932ajI9gr9UUZu48vW91I_s60WoveCqegOZahBkIRtSvDTSZYeHUHJOjVUq6c6PrlSSx9FKnmbnUXzioSgyJqnNMLk4KXtDxWzAUyzyCAcSQAOd4bI87hZwsPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbUb_BCBPxFRvEbI6OLjq80C0DMk7W2pv-_yQMNv0Ldi8fkz2DkvS4mRSG-22i6f-ldZg8bw7cDMXRjeHquvUVNQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQb +_NBU-GbyQE3C_I3-TYU-_iSsAPyA1juF6iSHCvwYCsRF2PnvmwD8sm0Os6h-t-L8ltrYS7uQxyYA_II9B3gxH5iZ_GW1-Drzj4IzAAAAAAAAAAAAAPybMJf1k1s1MPypZ9_rRcL9sQD81czx15sCo_D8TvZ8NbUZnIQA_JHU2QjsVuHP_A0yEnILaCD7APx-G7pYD4UIVPw2nbYCml7QBgD8YwnpcNcB2J78k1kDrX5lEFQA_CunGruCEN36_IM4sDjVkISMAPxcosxgZWZaHfwR-SS7Vkq0CQD8mDmgknds6V38AYeIy6eVh10A_NIcKu-XbV_g_JjwWHzHkdAeAPxtNJVpN58TCPyuwykxGMFu8AD85kdyAJ4Ej938fEFanGC3ObIA_F6KftP1B-B1_GJXNEwuufheAPyEL8ynhE0eQfzZZ6b8LCJfUQD8v274cUzfzNn8_GqTiJqDskIA_EJokncjoo-f_CsC83OnWOFGAPw1JPy98oU0o_zSwrIuP2IZfwAAAhD8TbWGl1NYCeb8i66leoq1J678-Zp3k7o-OC_8hGT-2zXyLi4APZ8lDDyrEaj5NfM3taQ9ak3DIviEb--Ea5JWxSDEwj_Iyz74aluDImX64fJ_RYLRWs2uy_FdDPFBefYWHZcQAfzniq8bevRhJPwVj1mGpyfzowD8T_4lOtRi_Cn88yNijnfNYTcA_BVZhWSj_jvN_NcvQXgQWMkCAPzG1BYPGGlFBfz8e-zu8p9igQD8f8MwCkRK6Fb8fP6aRh9k7tEA_JokRS_HBQ4Y_BZgE5oeerbTAPyMhkngxzTtNvz3ELiIn6DaeQD8-ZY35wcFRL78pORLkI9yYUEA_J6lghULJ_m6_F_WaE6MhrCLAPwvK8qs316PH_z8unBlI_irNwD8HMYeczgbOF_8zL3z9mV987sA_KkqNpwZtpSO_MPTCl-EodeBAPwQoMtonNIWPvy8gJ--NMugbwD84DlvJks4s5L8KVV05DCOEEUA_F3R3YhBYjfi_NeR_7kCPygSAAD8pIwBZQhesfj8e_Ncj_9jyCAA_NaPy_-f3qiw_MLOdYjBaXTrAPxGGstTZARs7fweWmiV0pqKDgD8c4_E1Ap52H78qzXIGnkwocAA_CKYAa421H2p_MdN4rT5mCrjAPzi0U_zWbRVO_yOn4ruzDMoHAD8R88Zm5dadM_8HlCLX5rnlV8A_H8-0QK9y18U_LLEo2Vf1XR6APxQ_kwy7AsbqvwslD01YubG6gD8-DtxOAuKJAz8yTmQfJk0hKkA_CjKPhh88smB_EMspQD_hwsdAPzQUhtYzi4E5PwdPegNIsCieQD8vBOkmjupb6_8347xKSIa-E0A_PVwkIb6sKBT_LX4416wI4q9APy0UWbkmJLq0vzXFOe5V6BTuwAAAAAClVFMsWAaBMrv2gZTc9O2Xac9ojM6duOz0Yh0umsYDTqrevm8vuw-gGgFrkmms-q2ZkNlKZif5txA2rpCjYuXCJhQ7elzkBcvjwNhL7-ORx3jeOeocH8uEZG_K8n8y-gVgXNOttJGRzgVroqzVQM26uKJ9lIbdqKycYbkzVHqtTIC_F85NAb0GR3j_K2rkBd-tsH1APzcv9D3Wc2oU_xedqoUTiJ_tQD8C734FVWfEuH8DIImWWKhEoAA_CvOyrOz9IO__F1Qyts5mWUTAPy356l7ypMcOvzHzUevDh0W4AD88EBSo0IJ8Y38Yu6eN-H78RYA_HiHmxMwnn_K_AD3AGPj5NADAPzCQ0YHDw7QCvw8bD0M3R7eTwD8B8WnrVYE4Qr8OBpOYsaoeRcA_DjxnAPB21UT_KFUvusb0eMBAPyXbwAjE1dZIvxP1ppzSSK7eQD8dNlA5aHxUCn8e0W7-zUQYdYA_JtB_vbU4mz7_NYaMpo-2oF1APxXySXhzLMzvvz7Iu579CxOowD8r0TEFhYP-Vj8eLLPmsqYrMYA_LsAH2Y_RmeC_Ba7m3itc2E_AAD8uSqnVrRwc638_J7x1SP5TzYA_AB8L45iHIdZ_IfMJqJz9secAPyv8raeHYJUI_x-9X320Wu51QD89oaQoND3exT8aCokQM5iXmIA_A6tVjJjG8av_PvhH6EQcoAJAPyRQazKvh5Y-fymybc-mdUeVwD8vcNkzaNQTqr8aMX-wQrnFNgA_G3eXoLfrB2y_KUH28UXogj-APx_qubp1g9Ogvwsf7lOmDr2_AD8ygQbcSuIMcP8KSautsesOZEA_O9Rgf1Hjw_c_IeVO8RDeqkAAPy_MobRHtg4YPyrBaqicLyz-QD8Wkev5eDSdZT89tLDrgKny9EA_AR8Lfn2D3i-_FTi-zKRWD3hAPwTdTG4ErdwxvwIPkiaM8x1FgD80bjKsaKwwUj8zrFxwOMEZhsAABU8LbU4Y9KF-ig7cyFiRsy9DpaLb5IWH77CJnJ2SacAewscD_FU-Xi1g7LHqWM02Q9ziXHD8hoRO8ffjVHbUSABG-zVLn0QyvA7EiOgMgSOhpMgXHpWpkYtvjo-LEpn4BYBZ4KdK4NvznO_BGVhtkFNUkZjdS8Osi8cVIdg7LGrbDgBPv2L9sIFdQs_K8nm66BhtnDCF0CGQ_kk1s3vvEugchQBGX_IGGEF0Vz8OLBLjbILsxIdwkW8Ee28_gNvLiIhaxIB9amNFrMHMYCCbyfH2zWXXVvMotGZOEtOSsZkAioe_CEB-rfytFSc2vva3RJsQ4ZqZOaoFQ3tc9ZxZmxiXDmpozMBbg_SFJwBer1MOefaktSFGnBXBPG0Lnty4-smncSLWT4BDAqstrtjPl9UH0xkJycqK7hNE8Tpkbj07fMumycisQABdLtjXFuAWEyT71_NpkJ_crxTJu5yPyRK0kZwRmJZ4x8BgIEbsLe0Wn1Pa-GYND4EAzhM7NTUbcWQRjPIYfVETAcBECnmHZa-jtGqta9sMstypnN_6LOLh09XgNvTmnWCMTUBEGJ559ut9z0bQC7xKkdReRV3m9woJjspdatr6oSUtAUBNZnwE37A5jvf9oPspatxKrqKb1H1iGcZtpfxDKQ8ED0BIcJVF6CixytLW4Le2QA_L-L_D-F7icen0mmCyU7o5DIBeW70NcsrNLb5FF-NiIF0PVKU4TtQX1WNFX4nAwvOVC8BHkubRy4uhJtubgwO-Pkw0F27MLFOPaqv1r-WNM7isBcB5Lvtt-k9KwGcWZm9FkvqS0F5oIm6xwXxv9RobqYqxgABUwRpncC-uMCyvthKGn46OrPfOmC5xm-Tx7bIzbuHdQ8BbsgdAzTDxCaI1fu6gA3Zlzu5K4Vl4NuigfGrMtpZaioBy8pI0zlb6m8tD7IcPm53VdJTvFTK2Y3wUnxTniCHPSwBaBAYEY8y3ttUjD7bC1q8lHQYeWy_86zyVu3DxngpmCsBfONIgx6_quTQze2lmCxHHa8vt8b170kJN9Es8-tSrg0BvoOv232xApa3edjO3iUNlEuhYzIx4qzeCZZ_OQkMzREBIfvEfB_ra_7fulTecKLzLbCAC5MvJbLCbvaTfzrjhhcBSWg_5LQTakff8Azlxc1QTl9ULYHy3TB9RDNZSPWNoyQBzub_XJX0YIGIghIOT9f8aeUrrgda2_OScorZs8xCBi0B1y_qJTsYVDtsZz8Tr8cs1x_cGROX-BH8JM1tfGE42wABZgzxJLgMguWzk1MRpawQw83gj2mgjpAb0dQwV3_bhxkBpCPbgTG6X7xhX-ucNcb0kOXZzTVDmCT6UokcgwW9dxEB5yMzn7x3MIiDSdcdbe2u4AAHAw1VhBNaNZsrLdPZiDQAAU28fZGQ4cOuS3JBzi4hgy7-1ZMgNpot1jsbJVIfSPUSAYF-8g_gI9qkT05OO9Wq9se0WpEdWfIK7mdzGirDWZsSAa6-87bChEIeVNnHXYXXqq36sIgef5lobzDGgqzOTwMqAdBDmeGNpr7-neEmUhLoDmnb8W0jbPmaT1hGmFD4oEYDAR5fIPJQQPDK0FyV8P-jkLmvljCTyS6DOUdW0qj5ADMzAQWzC2adiWYfU0QT50AjqWk9Icyg6gRIebkcbEUkIn8CAQompizmoSDlMssgiVOOTYSSrzZ7HPj1DtIPCzc5yjIrAZzNUn-h_kwXXgr6c0F5r9BTdQLE5W1ukM99DkVhBx4EAa88lxAfZ56lJXuGFSzK2760ybZqbx0h4C2hs69uY6k7ARudG8MWMODW3lDW2FdXZRXBuKgt2LdQXICQyQzyxIAoAY5kn7DzY64pdOAdmq_WI5Y2fekZ0Y4mD4b8uGBSFWEaAVsAMoCd8NMgcyhGm0C6NmkKFpn2UxMMtx1k5oOA_XQ1AfSHgv1ZIVI5ONuFrW4Th7GvlvcRyFSA_e8avo3sUYYjAVyot_U5vf3yGynXWx5rUWVURelBF5pnTxHjsFztIlYkAX5XXSR7EocQLj4hdvGSTa21ohGUaICVbSt8Up_hRHIXAZcY2m1HLRlSXDe9KIZsWnDV84cwXM-A_LiHd0q_7sw7AUFZKOGFF6QiFQekgBubHRPEXuboljgy7yBW2i_MPn0BAWxv-SBQ8jWQYdd0RUr9lM5bdtMgCR_EbgvRtiPpL8YTAV9KRre7wf5wVea3Qs8wMu14rIiY7J__B-eIGRpztlkUAcjnN0_9oytJXgqpG7NnP6lwkDfECE3fYO8MvVCM68kPAQWH6uwjt-Xj5PMVLxDG2gNV0iZccobX1oSYfC_XyUcMAcb7kX-i83vZ4mkW7c1HYKwG5dQbjCpdw7mwTQQQt2wiAZ6lopL-0zSjtigsJ48AOYmkV2SKieAlOotfiDPutoADAQDA8S36nMxfmNYQHR2s-j3sMLRaUjqx6ED7hRnpT5w8AQmP94XBB13-2f_VAzbCw5DnKnxxItv9EjyFQtr1mZoOAbpAC6HNoyhcZMCrTw2MoTOJaTej4nAn59pa8aV9sVU_AUH7QnwbcqVrVqPwH1Jl7Wx0huSBOnOJ3Gx3Cj6sXJo5AYRlzlc_gKid3Oxco9tUYP00xlhUxbM-GJFcwF6Pe_IUATmtvESnhys7sGLTcDgHZWb9HgxOHzvLn0selNAycqgtAYf_xCgHZIaekkMJLziTozEASE3dG2TeR2lTj58j7s4yAAEcQCiFIT3q7B1gYUni1nhbEDSj-cMpuO6r-qy00Xx4JAHhlCfguOYsj8AgRjBbnMB7xeLnknIvVmRlhBzJvAImAgFCzHLWmqSTiMu6eeZl-JmFTEWtt88QGAZdZWSlRJZyOwEMUwciI72008TatUbK8mI3L-s88JZAreKaxpAZKrAxPwF21R-pfU4tFfeMg6vERUQ7jor7M3TGFU9hvhHVgacYBgFaI4GlQC9JfHJEB1ssAnpmz_L5AJGm25HoaFrJv6Z-GgGBTfJZE4aTeggDEt7sQTg5sA54XmJbY8jKpl6XnYsxJwFLzZllXJUwOqrMS267MLRjpsk4I1wXdl2HgJ2e4wJQGAHlBiV6OcEsodrkLebXrYOAlIZgWflObnmyqmQIM9GUAgGjxMs021okKEStE1CKuS3fDO-LmEZFoE13uFGxYMQ_FwEoj3gw4lIlGYaNXPKvKgop1XOnYqx_jtdkU8vo4Y9TAgFfj3u1p8ytISS99QxVh6EedJniPrepX3Df9zUeyVhCNgF9u71ljCX_OjyQA3KnY9IxNzb_VKyIyN8UIWdQKUbhKgF2WrhfRYpRNevrJt4zZSq6FUX-DXIaynxH2ZREwI0jLwABN-m5mzIiZ0R5B_lRkaPOCCu3FFWBs4pRL3FiALvkJjQBAW-Z5ZY9rxLjlJZvrbptLloPUZhD6lqrgfNJsBFLkz0BQjXFHn7tdOtgwrGPrK5znPEDd5QjzYwZHmwVLm2eTykB_OraMSNlzfyyAJUTYXMNCalH1o9EBP241ox_oyFS2wwB-0V6aR7O1od3PWtMqLxpKRN3lHjkkFYRcAKhIlwTYx0B-_ChMiVyf1c5ReSQLpSvOCqO4UJH6Fs02I260IanhhIB91Vd2bZihlsH9GXgySoccZycYxzUOd66I_cdgDQpWC8BFnmAMAqowshSeaZ5F-tmINaYohJdhK0S40awD4cydBsBeLHxgJhSW3ysZOjN3z_U9rD8Z_OF-yD8ddeOtcpvXT8BauL7FpSqRnIfEbgl7-Ki7ZT0zaMtcCQbE7GP3MjrkjMBWHxIQ_0vmyfxFLgTklpybn7Z9wYgAr6RWTaONhklfwAB_7AqDJwqGMmKnGxtUYACkMj6SPeknod1ckHbCxDFTR0AAAAAAAAAAAAAAAAAAAAAAAAAAN5lVQleObsKQ6bGOvVhoTVxU0-fVPWUHD8FaaAey98-MmIM6pMuXf-V6xrjfVv-GohMK6a162CHKz-B-0yu4Re8hb1Jz5J_D1d9KupvhpyA7eCnfBl3zB0sLMUPWW90GnAfmIxmZLSbArX0g16PkpY5NS6Am1YEg5g9SxQLdmg6KyIhI7CtobIFJANecY6_o8nk7zRzpYOSnV0TI9PnMR2mKadoifWFS0QBGb8tVRpu0oWbpexM1RYSUSFYZ0T4LVhe-qjs9KRVLfnaSierehAP61MecCw2CMyqW9uJPy8e-b_X-My6nqs3SFGZ97ZV4I8Abuzd1jAuX-30Iw7uPg9dGDfWT1XH2WhvNI5wXesQhRYMazlmqySWAgMrhpgtNSXhT98P3QOzUmPdapI22G96x4hizhfvdyICopTARloX5cO6FEqEU5vZcggOpB8mEz7CYzPc8O6uf7fvFSxpQxq6oO_LU4wVofoUTEEbFxwJbwoiSm1Gy2H1FwjjK5NgK2wlvqoLIbcbumg1o-r9TxnXNMRcMb-_k-5smN84rPQrWoihmD0w7UeMPjWSSmUDb3zhlb4p8d0ybjf9KxFbGDS0nqm1f4t4NsEHbhiApJIlA0lGeY1Xbl0SDQaWrMcqBEX2pZEwFGVne09w9xktNXruuxqgKAwBbF8055iqkbU3POzcK81fFIXrvpOZbH4_7_GAbUyqoTzi7P2NBcVM9h6X3shjbz-17FAxUtl-xIb8udM7qCOkCT0Ct3IFBvxMIx9Orn-J6IZ51TtVz4j-7lnC83nxFwgAdRLNYcU1NcISbNMuoeUffTmbmUO-F3E2TnOZg7-OxEmY4UR5Y85ylS8f4QIr-CiQY9VgA2tRifk520aoLHprYIYmhOf8-O6lEEwYGywALw8kXJdsH4chk-W7YreTMt-BLj3YrkBUGOo37iyHjwwJzcMkBGKhykvRcITcj2mnlsG3O7UJSDU-gxMk1GJXaSxWD40VPeIkdTjxzDZY6TWS4XkRpDJEtjZ6M2_NYeisCqP0sR3B0nNgQijc5emrmb19vixLJWHVwZU7y7hSvjBTigpPoeT6JAavYun6n5sMs7xyGaRjE5ltWz69Q9Yizkg3nXiHHCMFcFywjEZ81r5asP8zkYRR-w6MPrJ-Hi8dspCcVnJN0xd4TJG8tzWeM4sIBVQTrFmE7M0ykFgnW8pv5TaWOyseJNXET1TvDp1Mpmy8mxcbJy94PQZ0_WQT3jhG_4xEH0oyH4uZ-K7XEdGi68YMCHMziPgNLeeg87tqpwDfFj1EQe7St9K3LVtvH66hVmcKrOxOvZIxAELjbpPf8mRIE2zfcLnNYhZVEyKIP2Jx5kF1FPPjXy4I2AKQwneyz9juQe-9p9cEfB1t-3eWh1XPfyHsLCugXSS5SxwX3Fwg4qL8o-NAfhsQCn8L2EUy2mUCENxofSMFMvIwTEZLhlkze2qhUJahz962gIkKNw2EU1pgGtyrAW8ChrdFF3Rmv-w58gciM2qj4LiCWNJOhOgjn2aN1S9XgS7PEwAyktD_hhC4TeRZTK-_QknM34dfYJcprU_KQ_raGweAkEw8aagOD0rt65bzuFhRBp161YRkUh_NhnHPySQYDFKnIGRZFRZ8S7M4-7LizemdG0JnDtQKk5RyvPr1ViMHJCx6Lv__jdqAmtbZoze2fetdQO0wgRQ9WD11MkpQKR2nKAOk-mNaFNMbTRdrargqZpe5GRlfe3xTU7uP3UofnxFo9Ls7Y7BrKTPaxNA6mLdDsX9cGormf770ELDSkTanKH34BxJEvgjUbfclfOJPR_hdPST_QYw1BrhenD33DXRHd6rwROh8aWTb5BYjTzTkRTUvMzLcoy89HYUS_cAwNeXjB4gSDke11luwoeVVNiWUmliEetfk6o-fllIIKDDaaATSdiQHnte7S5H5anxrAwE9CKfkSfwcxKcu-59mHVDLG2X05EULnncsC8IKDn1UI_SrBjNg63pEDtjypQYTAM2WyExxLFnUGha5L9uF58RWgkD5-eS_4kxk_XH0XsoXFkSz4uN0qHx487paeCjNyDgjCMJk-pgNkRR4WSzhnDIDB2zBb_soraSgRivBIc1gnNux1Bzzgo_VYB4ZNgJaLOi8DqVSNQXfzfZnadi07WSo2HcT63ob55i8vmOiedcdLjhgIGxViaq7fw8G24TAOio2XS7bMcFc5IEkLMPxrCCCl6YdvLLg6ebMF5NbUN7yROd3jfgpkXiIX7RcdlyVHiUM5Lgk6fi5sZEfyTMHYtlyevlANt5ujRu_8visTLgyaXr40g66EGZ8LTdt151Kiod_jcNGdywZ5DTc9ZY2WgWgGAPYfD894saNoK0uFwb0Wb8NB9upbUwYma5gr31cHPKdQ4Gqsz7engO5tdeR5ZJAOqG-xYpKc2puepSTo5AvqiE3J7c0SbtsBQCocFgEuWSZZaQ6PhWDCNTjeNdnUxasqrF2HR3LyF5i04ZjQCczCBhyI8CQCNbhd5a3T3_zDOCcSNiRtT0YS6XpXnyqRHE7BNbT3es4DTSxIApGD_gxD364tTY57QV7k-1fBZKfW_7WiScsCXqcMeWqqSQeZzd9yBkvyrR_wgrQpZ37uNsmjK_RAPHWtskOmbY5FcxoNEzPiZFztAOL8Fx3VPE-ihVRNRW3mGSlJkhNRTeVj581HefC1G2-aTojqVPmNaUyebHG2IrTJevxRRdgVS12gBMP6P2Re7ctH2banZa5zEfkrMDxyxQ0UVD95jYQ7IgCLTV9uibR6kqhavoXXHkaeQqGoq84IMrzKGsbRv1Acl47-ckBk4q2audn0zss6tSXUC6GBahwkbXh9Br3bKFO-Qvhyoe47EVAof9SkRcFXr8m80By0LWUK6axGvjd733PEE4dhNQZ19Z4nMNbqWnwetqhA9FpGD5itTsVyh26YmYxmzaVZZNArjlxxkYeIFdTPkkC2KWw-1N9AZnEpLyGZieuQHBA9zSskKpU_1nTubGCoOB9tS94vUPiYxxyAFVSJOFNOg25Uphr0AiGOUnVCAapO3T141Jcq_rzlQ49qSgHO5jOoUff9h2_jgYZs1AxeRdssXuAAO3ovkfjWlY6nRK5AAQ7OUmbum-M6C85L4NE6NCdbG9wmRhM7EWR5mv6AF6HNLlsW88GWK4tVcOzgZqwXtTlmNbsx93QhpWkB_MNhlKDLPTecL9u_3UXhbPj-vLG7v2zjQ9ZaCrPqwf-owf5u_yOpiWQKpkUiucV9U9xeUh6fCD2YXbwcI9oNpUnCwCuh-pcPqo-QPU9s-9XBR1cqRm5vhCpfHGzJOpUq1cYNW26dd7ua3BnFiireEt8Tgm7vSc1f9Z1xm3rDs61saQYy4h90kIQHLBb_YL5seq_EPVvTOASJd1RQiYHJHoaGR49pLab4O3fLMe_8pIF87kEHBQQ_iiYmOXW8vzRV65qN_BjoA1tEe4tmrzc8i3a3cDRq1BHtKlTn1-FS-LOTOIjtkEkB5Ibg3W9EJGTrzJkPehwCam172uJnqN0McBKODecQgJSD0EQKirp8x3uB6kgBkhYvljLcUKj5n7fDyJFHRe-_JQDOLEf59GoRoSmOgzZqCyAhnXVHcSoSCLcMpYhKWCFtxJ7aIv-i4F-F8Pg6YFq7zKJarvj40nGeNHfwTgLSx2MW6frCSPys2oaZGrdS6azL1r6HBDRDD_yPUzBGAMRjjvbs585RIpC9oaO5BRKuUwbh0szere1wtQkpi8ClEi03bPVuW8axswORWqYeY2sF6V0H_QTaJjhHodLbR8KiQiqYiqyQkgPA4eeyMEd0IkHtfO8MM5ApLnQe5N7PSWJAQA6hMVEJOvlag972RTzmqeulCb8ZSv-Sw_neI80yIoO1YFm2qSgyQLcsQRQ5WET5pTdASrBqXG6noMGhBG1ODO-2Sywr42639kE1J_G0bHsOEjUpz7ewSxQIcxNLr1K0yiwSqRngfUUweFRV6_xQxt8it-He5z9-QHaGD0BMU65XIQP-HAjsL46cGUGVI-1HcKa8vwDydbnhPvAewLrWAaDRladHOsaeb54Rj3_hiO8H7o3KH-jXA3J70tTOJ1FVqC-McYcHEgRxuFIAa_kIN0GFhQOx30Jy3XyFh8sOm98c3C8AGCUX5Y0_6upfboCxhXi3V6lbRfeJwELZCkbfopYYFjLGXkZWVkVSPEtMT5SrQD01tSd3b5KSOiEHHLHIyNz021mVkyCca3Ldb77U9EtBkE4kd3897Iqc40Pq8xXGOixtfCwRHAiE4KLUhtPFrEKhIyiOOx9LxW7HCcg6QKG1-aqeG3E0to-vmk9G7wJd69SC4eVGxQIXQuHIB3lQFaKVpNs0mzBWSLW_CUM-GY-INezLxFgmJA9VzosnejH0eLTTXUvRGPEJoMCuJFpjbvtP70rfA1yhBtqzBLc9IJPfKdLIUPjQWRwg_djwFOcrPwdy1Q0Y5Qmd3U4PchNXXRiRAT6wPgedoWNB9lWjvLBc6vojZL-IqyaylE4AqThmlgre-e0J2iLPGopx7o4v45cVM9okyx8V7dWZgUA1g8FaYn0OTfGJHHCL8CFBk5MISQExcRPl35eYW7BHRxt55dxTcxwmQW8U4F7r8pEackK_7VhKCFqTudHY4lmM1vKYA3puK4lTyY8WNYdsBQ2mOuQwrqvR7Ud_SmkLn4WQLMl2lt2qrzGvQecynIo9nyPa1V8dQE_M5FXKB-QVBh4dLy8pcn2_Gs0oa5G3vgSDSeVGTEexrxIpZIRgNR8BrAZ3iRpAq70SMT4MJBxwgliP8lR9pT_89Jo99k8Kf4iso2uIpz0RoElin06mFSC6wqiSO-hWrQm56RGTLXPlyPJ5qncZ5c8W8B2rAXqAumkniJOy68lIHWX4LwB38VpC_ZVRbQMT8kxwXoCFml_cXzrH5xi676DJysDjvXhE7oqdTTVgfhKmMs8HVGjllOw9UWkJCx_Udsi1JBtLJMyfTh0wCDntH8HtM3AKxJS5qt1bSLnjQXfY1aO7MtdegzQMhQAguHK9HWzZeGtIeDLOY68V9WUFaww9G1DdWIkDpEWAPG7DLy1EVvgfqZ3bWk961-p6Vz9Qk2iapDKStjIxSmPbnNG2rLiALNz0YSMqaDeVSfTk4AxyiMhzgj1gYoDIQCWXBe8qVkTIQ5EymX-FCb64FO1SdU1OSAywcT1lGV-O4BW-3hNwtLR3tLirCcIDwLKdGF_-FyFWyS84C0lKwMKOTPVpOehZa-Kd0J62I0Fn98WO4bldeog7WCQcq3kbCqCasRsG6ZWRoLjAkxZwE4OwJ_VbSKrRz8Xu2ArPLurI32hiHJGDki1OplLiiNirXT9j-KU0mbLGmGrPwc6AhcVaR2gKUYx7UWLNMAeA9YgCM-7vhNEaHTHOBO4RonbYD-59RKisvWg5PDM7vpder9tsOBOamIW8ao_k4UuSc69Cjz-8hY-7DMwofZdS0JjEpRRqOw4Ok7GapnFdUkdWGcAsgF39rnHTmfYau_VHWk_2nWYg-f849ixw1yeaI9GlzBcO4JLxyvt7eiFi_UfZGalPOKgy3WBb5fjE-VPtrqHEEd3Zm8mAqrWQ-KHvxO1OItzn756Ghi1N1uH192RQLcvOooAz6QnZ1f19GYBr07EbsVioLInxjEBExdS6em0KgKbepO2p3_CGnVviNDBQQux4Fq97bNes4iY__ZSQueaHA-sokjtk5C5-xfzRspO2O809IO5FbXpwTs7N4TN0kAjGI2shmHmPaJi7xn0broqYmLAoYnOcVIQYcpO7D-dbYQKDaDEOWX9vvxv2NRRgc6LA60-in8SliMCXPxkxJaGbxULYlhMnNtyi35mtQKO9kpkWL3827XkBy_FdmhVwEImFPD_S9-PFxgrxFJihogl7x-v85fuMrmKQO5hTLLbVSQbH0jEKDFAVtJtze1_X-4NX1NOyL2vQmmboBVYBkJV6QdA5QEYgZNWjRCDirk1LIvzETHZpDJcIiWEYa49K3QrDYVh75EmvQdSEGxoOV28fwKWniC11xbE2zZtX0QuvXYMEGqML-Qz35AdJKpKlJDNpAEES1NQUjeaD70ub2XBxTC7cFUTyVMLxLc0JOIw_VylEt5QjrjK4xlkvBPXlw16KMOZ0vS7pqbaPhSvRQWLGyxSxWQFaUlZlM-f1DH2dwcFhyYjP10dHgQqgrAjA_e5EbFjibptSTVEBhfDxKy5Mzzu4JuzuOwjRiFQheE5HKHpDpQqdA5RcTVch-peiznZHfSKLJRlRlGAI5ANdKWnWmeoq_VpBHdEI94HIayFwt4N8lJgZfTv4H8SPhogschD-6IxdxuF1krXxH9pycL83R3hfIqfRzU5NwLGxnGOtY6iZHKOKJNpB9tvnNy8F9glC2weKW6sX9IdWNUVjvRxRAE1eQmTAvupM2j3gq-QeE489LKpS4wdQ4fBCxB6exZQEA6raqJFEpUKAZ7WKld1lTPvpjDzQh_uTW6E3T01o6ST4YM6F490OdbQtJguYGXNO8Tt8v8aKrfkTVKgBhF-3MAxokcGuTHuAaX48voBj4cWb0PuOm3O9CZaTF2iMk1nBqoOnnXSdoEPf0V84aelywFhv-Ha19SU3rgwlEgNc5324xfBawOGa__oyT45RoQZL493yr3KTQeio_kTnlnUFHbWkTfVKzLni1GIRMM3f1Iw595bAlFZNQv_Hk_F9MN7FoJqP2JaDwIvFcr2Zzjp8z9dr1BRJuDYX836yF4eZgHWJ_QwtBzp8ivRJR5cGKB7MM-b8Ge840VHxVfNQZO45u9pwgUI_UeSCNOoOeeYHIQeCiGJ2o4tke604ScBfiUtY74jE-9atuuJNngg7H6zvRE5T89eC0pb2Yx0_itSph-hnc0DlpGPwPpXcHtq8MvbJAeF_Ryn6FrVyLOaUGFeHLo3tqWZx3E4lQnRfhrFxkofBuxLKdfXVq1eUr_19O_otVsWtD6EXA-mhUXRWU2lrC7WB0RLGcw8hiHf8aYGwikGpqFbJfcaOhSThmFwqovIJoCaQfiIt-sJ0p-vFmszOmBzknIZY5Z7aE-J9H6UTyAb96jmAsOCQ75_4MEZwf2yiz-yT41x1xxFFENdxjqqpB6DFOH-B0PX2o5QTvKW_q3dOz8K9krmLGLozVsX_83lDcCyaUqCtCn2v2CBxa0etYPQh79wWS4s84fzSO092pYges_6o5Dczw3MIfDATEdOpnx5OCumeHkUzPHZmnethxVyDV6aLjp9w_cunifHMjBDpqRANec_l5kuoK84hSibJYHDGUTlzaZxBzMT6LW600di-5fX-z0uGQ6v95qSdvogA9W2ySkhZjWz_bJyWd2dMurZ4ZQWIo4XqXZ7zS-ODx3148_hYKzjSZ1cVnujYWJwr0wa0LBS5-HAEWXUaO1oPxK5eIZQzh2GK185biihI9fd5nQ2O8rLJFk7Knq9L04sQFG7Ul7Z4N3xCn_vLZQN6SVr-CNjmHeahCTZeR5J-yLzdZwlTuRZZ6Wjn202EhA_MdqcjYVBdjAYfG3fpNH4OvqM_PIIFftRQnC8EV6qzDeqTISb_cfKj3JwLHmeUsQbebgCw5uFeIzQYkUVJH9o_GVtjmtZxyQe9cNCMJo4ehDnc7ZDWTPJ5L-B4EgUVNI5zxd_k93e1e14WHDcL3p_NWgPKX87i5G375xGFttZrJ_IC59kZsfDQ9RPcodRF-IyirJzWSkjs8qwo0djRC4OxzE1xkPRng6zFu3e_4yyLBTJ6HhNc0RQ-vzVPhz3LhhhvC2mXJ6TeUqRKc-HgZwhHKHLB7CqEkGc8GGJkB2aztxJE4bUsSWyacAUKuf5TYQ3xANUDQnK9t2eIWEgOoFyS0WeZ4kgUoh4rQB4Fx0cPyd3rFBuoEhBuYjDmvjdJW666h8kgC41_5HLfUmh-srwFsgHwdPdV5STJodpAXbZixmEFU4DT9h8-GYMJwbZSWIXi7n6t7SiZ23X3D9pYB54k_YODkFvPxju62RXqwm6IwwktUuLE7-qa2yuVbO-fRwUde6ZzYkRtZS-42_ZMLajH3-pFJ-GoBbfSmuYE30wjBa5mT_tzF_4vBDdzTvCJlY7Ucwf2KnQDQFCMCDXUFfrDi2Yna3_HtVaX-GmF0breQauWk8mENfLF0kPwCSXxuCHkue8JBYmdpSvY9i_HkZKD8GNSuLQ-rxiqOUeLt268lJ1DQ3TA4aiEwvmkc0ejagrV32KXmJcuqcP55odTqDwNYBiP7c0RAzxd0oK2kTHNT3mNG0umFbq0G5DJA_7i1Tk06wtlQzylekeblJoKS_jPCAugwGydRx51Hx6YKwggRk3DDGUspQBLzhWraVLLI4hWovdQurUY7IYeSCruMeakocT3N56ahNJ9OQvLJML6yi0Vc6E9oAL6u-8FfJ-F8aCuq00ooCOxoMn-2JP8DD1M3dSogZapJI8XSahDF2LgfpUgW0NHFPPAFEAPs6cqUgO2Kf9w47PueA2WkioLwXzcCmKvfQpWLmso9gpIc473z4= \ No newline at end of file From d267b688d750b92aea6d3af4c57006495bb0f6e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Mon, 22 Jul 2024 17:15:38 -0300 Subject: [PATCH 3/8] Take state hash as field --- operator/mina/lib/src/lib.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/operator/mina/lib/src/lib.rs b/operator/mina/lib/src/lib.rs index b961be4b8a..e93a985ea4 100644 --- a/operator/mina/lib/src/lib.rs +++ b/operator/mina/lib/src/lib.rs @@ -6,7 +6,7 @@ use kimchi::mina_curves::pasta::{Fp, PallasParameters}; use kimchi::verifier_index::VerifierIndex; use lazy_static::lazy_static; use mina_p2p_messages::binprot::BinProtRead; -use mina_p2p_messages::v2::{MinaBaseProofStableV2, StateHash}; +use mina_p2p_messages::v2::MinaBaseProofStableV2; use mina_tree::proofs::verification::verify_block; use mina_tree::verifier::get_srs; use verifier_index::deserialize_blockchain_vk; @@ -35,10 +35,10 @@ pub extern "C" fn verify_protocol_state_proof_ffi( } else { return false; }; - let protocol_state_hash_base58 = if let Ok(protocol_state_hash_base58) = + let protocol_state_hash_dec = if let Ok(protocol_state_hash_dec) = std::str::from_utf8(&public_input_bytes[..public_input_len]) { - protocol_state_hash_base58 + protocol_state_hash_dec } else { return false; }; @@ -50,7 +50,7 @@ pub extern "C" fn verify_protocol_state_proof_ffi( return false; }; let protocol_state_hash = - if let Ok(protocol_state_hash) = parse_protocol_state_hash(protocol_state_hash_base58) { + if let Ok(protocol_state_hash) = parse_protocol_state_hash(protocol_state_hash_dec) { protocol_state_hash } else { return false; @@ -73,18 +73,16 @@ pub fn parse_protocol_state_proof( protocol_state_proof_base64: &str, ) -> Result { let protocol_state_proof_binprot = BASE64_URL_SAFE - .decode(protocol_state_proof_base64.trim_end()) + .decode(protocol_state_proof_base64.trim_matches(char::from(0))) .map_err(|err| err.to_string())?; MinaBaseProofStableV2::binprot_read(&mut protocol_state_proof_binprot.as_slice()) .map_err(|err| err.to_string()) } -pub fn parse_protocol_state_hash(protocol_state_hash_base58: &str) -> Result { - StateHash::from_str(protocol_state_hash_base58.trim_end()) - .map_err(|err| err.to_string())? - .to_fp() - .map_err(|err| err.to_string()) +pub fn parse_protocol_state_hash(protocol_state_hash_dec: &str) -> Result { + Fp::from_str(protocol_state_hash_dec.trim_matches(char::from(0))) + .map_err(|_| "error while deserializing protocol state hash".to_string()) } #[cfg(test)] From 2e2d0f3c25e41a4336a503777c46e6b6a0c885c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 23 Jul 2024 11:02:41 -0300 Subject: [PATCH 4/8] Verify newly serialized protocol state and proof --- .../test_files/mina/protocol_state.proof | 1 + .../test_files/mina/protocol_state.pub | Bin 4757 -> 2092 bytes operator/mina/lib/src/lib.rs | 73 ++++++++++++------ 3 files changed, 51 insertions(+), 23 deletions(-) create mode 100644 batcher/aligned/test_files/mina/protocol_state.proof diff --git a/batcher/aligned/test_files/mina/protocol_state.proof b/batcher/aligned/test_files/mina/protocol_state.proof new file mode 100644 index 0000000000..fa754dd479 --- /dev/null +++ b/batcher/aligned/test_files/mina/protocol_state.proof @@ -0,0 +1 @@ +_NtaiWfnKWDu_HVSL4KyVN51APzQ1rfOn7KNofxV22-KVu6I2gD8Plmciji6C2P8xt8ykOQE__gA_LcI6lbDWR7B_HytHCSAnRtrAAAAAAAAAAAAAPxqPafPLVN04vxV-BPl_tJSBwD8VKSip4SrLc78bJSmNDNCnBwA_GY1NT4zmIVy_BHpvDxX4i4NAPzktppt0P9pU_wER6r4r6yg1wD8NhkdX_P_yiH8IQM-2CINSNYA_ETP1tvTLVYq_MQNUILW8l4QAPx_Ku-5JXWx4_zgBNHYz2V9XwD88FVTVMmI33f8wBSd9_XQpC0A_CYo6UpV6_ZU_DFJDgh_lSHYAPySNiuX10LLp_wweZBq7DqOkQD8vXq_ET1IMZL8aTpJ7495_acA_N0vCYNJx9kU_O_dovQA5m5ZAPw0Rcm3jXTQQfzfoHCx8A592QD8AikrWgcfB978jnlOZxX1lq0A_KhCLa8G5X-q_BDr76fBhL5xAPxTdwHMIg2Zj_wy4MUniVG5swAAAhD8E4svWsoiKeX80-KMXpLVybz8_esxCNDv6Zr8KwXZCkclXiMAD4qiEFoT_FGRFae3dUGWUdvhRD1Jk3AaX9Gvuxd28i6b93nZTHkKoenI1kDnoEs8LKk4h2z6Bk0S9Rq05lusOfyRobD0sXI5sfwbsZVj37qNBQD8ND391-tCcLH8tEDFHiB8cc8A_C0o6hNw1m_t_JeZndLiVCGTAPxdxHpY58yYm_zDZPYtpMRsTwD87-O7rk3-WAf8jj7umt864qgA_MScKWZX2P_X_P4kkUxXIzGgAPz-uJqqGWUev_yof21m_q3pBQD86Dj5uO2X1JX899LIZ-AKYI8A_Bfiz3Ns8QO4_OdaSO0zEsd1APxX5rOzxdZSbvyqPCnZYRXUZAD80895UzJJiw_8oyx8WCVnZiUA_BDZdGO6jzIP_NGa7xLKi_1aAPwosWw-NPLRyPwacXidvwJlfAD8ZqRyLWye3sH8ik8KYEQDCmQA_M6uWVP5tlCq_BmMJ9ldHWKHAAD8zso1fQbuQhb8bzhZsWAeZZkA_M6B08aSJ3pT_Hz8v6-4BWoEAPxbWqy6GP1mfPxNC5ebJsnySwD8V-dbW0p1JO_8bMSziDAl1RUA_M2FjIqKLocn_LtmdbkzOqZ3APxqByKqLB9q7PwHNus5qnAdpQD8uYaUBcLhM3f8456zA5sqhrYA_AbRQ9fXpbw7_Ogyp1oVUiAzAPxSkCghW60f2Pw7Nq08_o0y0QD8vIhTS3KcOmv8qqDN_JV3QwoA_Hg2TX1KooPV_MbMLYCeFQZwAPyaFgVAU-LlOfzIF0orvL0oQgD8aBcmJwmglV_8yAfEVrQ722gA_DhjdBgx3Pn4_Be1nLb43J17APzsl_i7EQm3uPz6cTwSdcArDQAAAAACvjlFI5z8Q6yrVjaYIU0O9NqiyI4uiw59cmWHDXt3oydoX_NUdMy4-cReRHZCut6X7woa_MZMaAckgHpgLxAkIqBkVCKVrqnqqL2MOQyM_STKhSC6hw558srDZQQT80cq5Vl5tJ8TAADkv98JPWSuqCEB3jSc9YkJ6xrZTXtjUDAC_DQ3rNHY32dN_AIYkrL9LFB9APyYPhdd5FPeS_wTAv8zDDdk4QD88Zz8Z5_t_rH8d9071_fX35IA_El6nroPkqDd_InWZPMDWXXTAPzaD_bm4_E_RvyTMe9OQe806wD874kS9HL_lMr80zCNboD1obQA_PJ2wcRzkYTu_Ad6Hd3iacDFAPwGVa7S6fYGx_zWZbCRZ-qKFwD8lP-sLCZXgtv8bv2BAKgTMgoA_IfgZZZoXo1a_Cgjj3C-4jT7APzJOzqe7WYsQvwLN9OXjeFGhwD8qLgAGCqjv1L8IzPn-dMIej4A_OvW6O0W6QPw_FuHbbQkslrmAPypQVceHcDn4PzNGT8QMIhzRwD8e2-4NV4b36X8lhNhRnueEPIA_GDSSUCx_KCB_G7_i2Sduin3AAD8uSqnVrRwc638_J7x1SP5TzYA_AB8L45iHIdZ_IfMJqJz9secAPyv8raeHYJUI_x-9X320Wu51QD89oaQoND3exT8aCokQM5iXmIA_A6tVjJjG8av_PvhH6EQcoAJAPyRQazKvh5Y-fymybc-mdUeVwD8vcNkzaNQTqr8aMX-wQrnFNgA_G3eXoLfrB2y_KUH28UXogj-APx_qubp1g9Ogvwsf7lOmDr2_AD8ygQbcSuIMcP8KSautsesOZEA_O9Rgf1Hjw_c_IeVO8RDeqkAAPy_MobRHtg4YPyrBaqicLyz-QD8Wkev5eDSdZT89tLDrgKny9EA_AR8Lfn2D3i-_FTi-zKRWD3hAPwTdTG4ErdwxvwIPkiaM8x1FgD80bjKsaKwwUj8zrFxwOMEZhsAAJHD5j1c-m-BfIb8gUv89hNt76lB7d5R6Ac1VXae2DgWuyjYESwOSX1tmdFUjcfRDj5NAaq63KGqnUX-DNoAwxYBYFBGQ4ScdVWz3obz9xnk8NFrb8bvyI1BhkxEgI1DjQsBY3VsJLmMdha8RcD7iPN-HtXgY07dAiOWb2bPY0IYDgEBnxt7d-ERKSCJOO-qxbgjGncUSXOni7nNetQy5BjhBx4Bd7zMHOqxwOX3tlc7K89GSbMk4y8slAA3xRAPw3tqtyEBeoQf1-tL94UcR6nCClIeW52QlsxmzpxPrSmaNNO5_RMB4tt8Hzfhe7Zzg5aA13wmaI7Dl-8mRftEtRasT3APfiABEhKkY6sxQ6_XwC1AZPomGNCbT2SZiAt6-yvNbSP-aDMB8IseyW27DOwkhx-ZBISqWu3ZbKEhF2oNkrOR2DUHchwBnudNAWUkmZa7q8MhLa79PksULMkDXxF6WLLsbI-EXRQB3i7d51sa4R5szM07nRQpDI88yIzbsHuAIDUYc57LESsBUmUDw4Sq-O6lr3OQN98izJ00x-g3rihg-t3sDlWbSgUBUAQVsuaPqgybBCdV3QBRFsQ_RxLUB0IbLuJgpN5o9AYBwAiX9PXX5CRDOamSCv0IhDnSjp-ePuI7ktayP3eVdxsBWXwcVhK1hCe6Hs0Aho4xOlT2jAQ-IYrOkDtf9Du2qiABvByj7vS0G_c5RL0YcKbXZ9T6-Ojw7Co_zMuV9eqKJzgBOsLG6JShm630QKbhJFkIFYd2A3BgZiQ818GTuD92AgUBlE-7_l200uFSgViml-fJoLKkGistFvkIqDPAhblCoyUB8usarsqUh6JdHa8zSwEcIJAEWMkKZ9Jkc2m3OKr4FRIBEHy6d0Dm-WC2R99kVj0fPbm3QwebaOVQ5OMflyMR-SEBSXr8mpTfHL2YyBwhTwj1AEDDRnxQbbeyTh7zwvIfPQMBIfEg31YSvr8BVds2LpfZ-iVOn8-NDyJ--H2YYj_8CBUB6LvqMzbq-r_Da8CjKsH-SO-uRFIKz710BKxVd2YfbBkB7GUTW3PX6sKN75mwSKA_ngTkxhYtS7ItYjvYzpMHxDgBPPC0oxGwc2TRzWPOXF1TFDRm5IgNddKWofWzaxZokwQBHXttvZThdzIfLoXAWTr5icb-VbF_2hg4VF2JSGG-phoB623gialB6gAbDwnLGxWrkTtp8X3H99929OgnTcEFmg4Bd5thNzfgl_4GEyvuZC16O664IEh-kvMnY8HhV4bCXgABanWatO03kiBFvWvYyRzyhg5sjXXty7n_SLIfpowszhsBpusTW-gMCU857CCW2ChloN-sUa6RU_xYiDH35_Os2QsBkrGHVszlscMeEOBA5MCdJEMJLekQh39AKgOlostnGRMAAXvBuYUkeq_B-5rpLZexWvpkcuLt34PIqcWXfOQYHf4uAfcezVVWmFG2-A8LVIEL5yWvAQ9-stFoBBTZR26saYEhAVePGtTCgkOIU4o-mr_ZuxoYdHAxMopD4oWfXD9Kkd4RAd-2rIGhYMwQIDgSnIg-rg6N7Xgjg_V1RFLdD_lvHRk4AUI0N7YBQfiygro4yiC5eBwfi1vIxFVzBIZK-YNeQoo0ASNecMc9lITfDigClZNgqzUIp7QuT08OkQrb0HysNT4QAR0XaAK5TYzI-o2AoFq0el6sbol9OrcyVcvnTxx-ibUIAXGWeD7xQgka_kRU6H7Fnw1j6ZWNjLLwjcxQsviiLO0SAYcaPboBkPh8wKBQOpfU9d6PbySYtA07Fkn2a9-5VnA0AXjxGrXK0HTR37mT8iMYa6d1LdSkGMkSphP70Z74R1U7AZLj2NLGbqEal9A4N3if5WRztPrt4BYl1gj_pDlrH9kuATPARdABb7xOZf6YovT-ebROZycsL_po-j3qupj23sMCARNuK6eRUV97UwGJP8GWS6Pa-swhc5TjkB3zNZo1YV8GAR6hCVqUWZ-5uDYTY_QVLJ8hWbdjuLlz5P1RFHlxgaAKAc0Am5Ox_usgHPGrykcpUQKDG8D_C3aKrGkw7-V3vkQGAS7ffLt9drGMNJuq0eKu9Ck4aNCW6Z5YL4hNraHovyQQAW5-NFTVDbV3fl6Q-cDMhLmlC1DO_EN8wJyF6hWyfn8bAfSysHZf9R5xRAfyjXCUb-yGc730w6utxILWzaUio7IxAQLo0X1AY4BdSQu25u_FLSqp4rbWLDe9Ke-Pw3stQacUAQ5e3_b6Q195WvmnB2ENcarU7I1OlQVsvB4mBfKnIXcVAVZ6YwyoLXBXblAuWlm5f2x5cQ5224QGTITlt023uS8zAaAhtA0XmkOo2dsoARmACoLGYvshlvDw2CoaRlx_5uYtAVJq93xevD6nYdwwC_D1SA567ZvMX8_pk9vUHCBJYOIwAWh7S5PL2ihthiO2WRxU600CaoCWTDdOToRtE489JTsOAdMNnfX8gTXrr-BxPCjWg-d596DFB8mqa8lAZfJhTcIdASm8FtqiQ7OuqY43tSKzkIAdlrNOFdWjFMVLJCpffxwOAebQdlG36JlNLJFkxRVAidlHwk8ahQfEk6Vi7G1xOBgIAQtCQ9EFi-f1gexQ5Nn9w2KKYXRKhP3m5zSXCQGKM6QAAeb1abKzxIyxG09hun9YiRp3SE1RCxcvxLAeX9w_HsoGATI7_g8vG6skKHL5J7wX3o9IwMHacmnw-i2JnGPImJAMAAFd4YBAvNd0mScclXWEwi2zeyFOwqmIWDGE6L0wMZ6eAAFRenpEFzD12LnS2AND6pBQD16PjE2tY5Ej0yrnmwuzFAH4v6qAsQd4jyixULJL8OiAx93XaR2WZIzcLtusfxn5CgGB9oniJ7C4_DN268sEtJGjC3lT1xGlu_6CEtIhGvDAOAFCcSfJRReHdQrmrYIXbRu8-HSJdB6r5e111ew1TAu-DgEnzs1B6wMAgVvhiJ7jXh49FUr2unqFvCjXNLZnh9eJHgGjzgI1nNFsg2DveesrLoSIPShhaUjvFf3DcDtLHMsaPwEu4uIVAtQ8I5DRBean8L0PdFTb-B638_n56ICzfJtoAQGFLfFhxGsgfwW7Jf20Jjr8KhRRW8wX3bYYV9HlFCWFEAEm0i3Z1hvAicxSlzHQJ8fc5-0vlhGQUUMku9ouiZzkHQHa_eBxHqYP0980u9NBfZ8jykdRT0ashf2VWwdk0cUyGgELFsUAhpRGxthIBSaHOn70mwf_RDcqt0nNfz_bERwmNAFAOgv0vUEkvItzxWoimfrCK5Cj7Ve-z0h7m7Xmv9b9FAGHm5iIOJyby6g8SvpOo4_I_GjWpfNiBTildo3HQCVSNwABJRlfxjD8ngKuK-zluI5i80a74-oBRn_htZbzTYaICywBy8CbmJeVKKfMUca4LcTTqXZpb7Fw_Hl_CqpEYspi6BsBf4d-PmOPBOGPMtUabYB6jeg5qUL_5OGP18Ft5O89yT0BjKe4F1-WG9T1aHN9I05WMeP-CeX8yG5clXA5e8OPdyIB02tSOqsyloKfpfUb2IKbD49nOpGIF6Q4ApIg59NXEiABkl4QQ5YVSge1Z4dp31UxNkAPSWgXXSV3ULcM0tnTewQBkr7soTqBxu0ujHXZ-MMKyKe62Ob1-AQ1tX4rooDlgyMBBHMwZp5q3zBq7jEaMQPRyjIrt1JbZCm_qyDlp9xxUzsBH6a0jkdDUIIFZjmzTwrU3z05InO2Ak7-DSzJhbWsCSoB-7UlR26MAhzXVySyHUo3nLB7jPQiX6-H4_3702m54y0B8e9xa868aFwizA2MuaLOGTgsPY7OStzlpGdGcm94TTEBVAjW9pxll1yta9yEW9LODdb1dFCj97JqOflthrfrVTcAAAAAAAAAAAAAAAAAAAAAAAAAACN2wcjGLz4JKZOgzntyXl53CiDZsJhcTxmvK8zbsrUF0bPB44jAZfwwirF5N-kZveGCVQeu0HwNwz23dTWhuwjakE8apUNPWsd3B4FasT9y5Mgp3sufX92kSeB6LVl1MnK_kbpQBJpGLyC07RKcf6VS6ndnFeQb8Bb0tLHrWG0qt4-DJf1KhxIO4t4VaKgJEJI_ArPU9qEFOqjp0pjjqgaC9pf1EdcA3tPVslcxN3UKsTR9jFGmukMR3pcLmJDqKeYajCFm3ORGmir9qMdOZSyzPdGlB1QAtopcISSl_Ic7WzZGzp9lY45FGeu5Hd43FV-OY3Eh1EdvtNpxI45IEgPg12i_HNULNZwEy1Rpcc3MEM8iajgSctk5JANXXCUEPT4X1to46KnWennY0AQrk5rwXdWPqxsYvmnE5QppYI4kQMZHZ7vC-2fi8C-DMoPPuLnn6ovnVFbhAJb5YSe4uyZ9wbU-0uTwVq5ofsP2EGgqeXmDcjwEF8dOzckHub7vM3QDHmXyqNRTFsb5PVbaRnyxdRoupNRLB7hvXUXwjcw8ItZJ3J2RuD2ZLKRP9Ygei9ir5tABvx9LV0HP1F7VQyetgzQJgd9zFHsVL2lL7q_btPZk47oLftuTucyiD9pEJIFamfkdFzm9YioMvJEcbcdykLtf7lu7mIaChdaUiAMNBUpw4zY9IA2vqR4cLa9op7aYNv31libBMnWk1xPt8A7mLpMD8Z28Z-UKx5pLSxDRArloz6xqpkVhQLEXfmMhC3MKGgnyts9Yyd9iZ9LEV2KqNzj5EVWeSg_JH0s-RXYtXpDxPSb0hoYZiE4DkMkB27-rnMfDsijMujfC94IHNTTnaxg-yr2Lo4pnYN-Fy_S8Rn1ZJlDucvu6SM8KyBHYMQP5_d2QAqzZF64pFIckpCsWdKZbSKTWlgs5gfI9dZoXFQglfj67XITQIVwiVhGJks9ln9K8YPcAt26HrEOtByOLudjPXCmraD204aBAKxL4kYcYiGjJwe371hKDoPmsLkl_nqXyU8nmhwTCjp7s4uSqIkFytUrI7jhI7ECcyjAtij6p_qgRPJy7chhCtvXmAdsUAuMe9Ma0sl4OJfLtIQqkQ_YGSd3kAcTXKba_FwAGdyVuzVTV9gGjudF1om73BqR6BHzzhY0DmRKnHVUymfW-qNGGS2Mk72hOubtfPvEo9g3g63JsD5R3G5xAOY1Su0E9Q6wRRaJFEKM1__zxIzvL-BbGxqQkR2UaQf2Czm2cQu1PNdjhHRsm1PC42g4OMU3gSEnK5FCDK-bwveV1QR3CBcfCuZpvQfAgI1tgPLoZANSsT7YfAmfJrZvIvynetaLgq73XQPT6pgEgCZlSS8gnpl7CmQcLzrqqz5N9CiOgU02zvB7qZBcQz4guqvQkvhrGx4OZMQ7O4AO5RJey1i7AtRsqWHusXJdTyh8akLigLfouOg9utla0_BYXLwc8r6Il_XBvWiLHJv5Yxi_GZ-U5TBq-UOMBeSHS2nvW3n4vpkYJgXsbaGB7lYwIRXCE5Sz29aWo7pw9kPddDwJR-YF8Uc3L4AMCn-LP1NrF3-dXPJnnWGvfRW1BgfZ4qlNYKfoJLVVz1DqAxtfTllHj0fYspQLaLpxIqwKSLywQQ2uCcvocW1shaDOVFEcUUZCiBC_EZy11pBJZxtcBzOd60lVlb5NCp7gbEbfdgew_oHZAC18a06PJH5AIg2dwvUU9WiMxLCcIAciU0p8SuE-MfmMrgT-tQR3zF6K5OwToqbozwRj29_TE54I7Rc2XB8ZU8RovMRJKo_wJDNSpcy-nUcXh_c9zGz0NEBq-lG4P4xbJIyLqkdg1bd_57kAUYa_UMvwCj4llP_aYXiCAj7NtEogTfhBnzuStKuvLr0U3iJZsNhm7cGaSg_mhKHYpaugYBQIRoiKREuTUyN-JgxMMFc8uV8nkqhaZXgEM1qPp_YBuIXzjbgeTiLBCUm26uxX7ufSN7xgP_10LGGiz2z2gX64WACk6E_N5DHpNow-KxIRtw6BrivbgVol0OKPp__AjQD4QY3NGQdfb_aCAKqQkXQsoWPTX1YtP_jFh5O01_l9-pwju-L9jcAPzLFUJyF_R6ncLZOIaeOpyA6auKUZYn3RzG8wemtU2KyG0Xw7g4Ro7VX_T9o06yMdBKoJyaFUSTUkYdTdK9wo8gHtJbkj2E4YcxkVuy5wzx-6OBdeereHyvxa-tb9id3ImM47nu1oljBCE1I3IZE91gmJjCBwX2SecE_7b8MEJbnM9DGxLsHuiL0_u4xpnR5yTM5Ps8N1wntwk9LZTXUVklDGKmApyLy5CZvy1YRZbmFTokAvPrzO-2yYOIZ9qT737mzXbDmqgHvV4rICw7u1by96cf8PRAobAACokHsZncA-AUEjLlOc52Mgt8baCazo_AuHBe1glaBY3d8M5BoUBDrczRDb47jnmcrvZwXgNlECqkY2XN5wVHC86UNRVepszwrQ8yj93lOr3U8mU3Jp6xm1f2nOQa4v0GyCc4mXVGGRitcWn-BRUVr8OFbaoBMoWRktTlPalOm4FyN5sHHfyjK094UUJaumfDd6FXJk_kShCGsWTgm_efSg5axcaGniDWMf1-RAvftGDfwaa8jSaRMKsF0cQQXdjARyr3t9Nqz5b7eNlGJhbdopv_D6wbi-1LW4HbOMwbNEuUIUqgaLspeR9Y1LU7QUx9gmkNCVkx8XlewvATe24Lwwrkh46St8w5ymUyRLZcJw7ZU974UKeqjXPT6PtWzimPufo_-p5J4qUvvdJviIM7KNaarKGXcjt4NzQt_R8fakCYMFZU4up1tS0J9cHgXnW52eY4nJZaypiaz9fzCpykzJF34DR8HkDrpzkB4P_AZaZffw5jsLZRoqjymrVRyjEBY2K1q5mixATi2nSgr35_Og7b0yd60mJ8UA1G-V2QTEQlpAN3tspyw9Zozzelvb7BlpZTrmIGquPFqQ4W91dmRXl3_gss-BJOxbSYwcp_8jxFkOx7oPm-6kyOdl1j97LGaF4xx-eDqW6y3gETx-x06eu1orh8Re0cYhvd4VLjkEyA5mlcG6PiSKDtfWwhenyDEqhXfWgIqumyYhBmN6H9gfjRDxF2RgwF7XE0FQ0-QFdmga_A1terPA-pOPtRTzbPwESuniTw2UPu7MGjNulzNAMv4xORx7bRbeccxsj63wm9TdX7GWjTlKROTkP3vTuTMAhgNNQ-zkNwOUu4Ffx0zoqZ36sYbZ9VLl3TBcPSKIEBvY9UPdlANB9ZHU2mBGRGgA6rHJcAM5TbEviZ0d9ytB4I4hRwUlenePkPDg28_mhPh70UeXFiU067zdnknNklqb6s6pfcvGqD7xOJluPCKgEGEKfooVzBk56bLxq4g9SDh4S2lBHVfUsE4Ngko-p0z9G8rxUWzsnrBkp9eggdGjdLaHT85-ZxJGGqKv7GMxBJSfrLE9cEgGjC52a_CkINDEL9qkBDYDbJ6vVX5AhkfwdK8CRt-wVkmTp94HeqopaSmBbWlzLx7j-UegPAN2nZwBMBo1i-ty35kEK3UwE4zJMyS6zaQrk7xaWX__JxHflCFNXkEXZ-A_WJEYmbUwqWF50sJbShra1cPmXqkQUrxghcHmOV7JD3fsvOpdOJNi7a4t0J0x5XuU0UM0KkTKDOSjhxajb3YvW5Yjfgw9Db9NgjIrINIcD34xbJmbtUD9MJjz7TYVzMe_aINug-_vB2BlS64Gi6YdNAazBNwGOjV0ro7Wn811rvVKOXwiqEE5nL-2N_u_ED3tMH8fkPT1KVQ9LTJ6PYlOGxQwwN06N0e6YCDctieXLLLC2CrWIgnDUNY4sdHVbyHrVAnRUL0lhjOSYXFqTmmZZ7qKT4xHDA3YbZ6Z565xvlvW-48cFZopUO3BYMZOaG9hB82hbwe6iQBrhu80GbWIksG4Sar5gLn43k0Arr9X-hbmOyos1x02RFE_NiKtbMmgWAsNJKKkUHrFg-2dDvzSN4SkJQzTx128ot3AuGNYh5u7so95GBcSccenXy7MtmHHGuLa2wNIoeBP85Z9sSyNL2SbAlbq5JyT2K7xLGy1WsqWF-uTWvChtPtCtXELiGEbFOMQNZbHcIOxj6WPhyQoq85Qye-r7Ubwq6iqkxp-nF5KTsiyITiWKXXD8n75DLyF1XPfyQgu0Wh1mAiduv25OrnC2rieLrIvepUf6WYyXKGJc4RxEqSdsN_7ytHvNtnh33D6lM4FjQweO5JChLKVpM9in5vXXaIMcXVgPAGuOS8YdvWBdlAV08SycmLphMKRy-Qbyo8S1qgE8Ye5zA_7PzOHW7KoJXV0oy5vmoBMtDvlSqGNIHOVlHic23oVlyMqGIW-4bP4GlQXkmHf0X4iRW0SpF1rMjYwpot-s3zl1isAuHgGBJ0c_Q76aMHD7T_b-tWcQ-Mg3pRyDy6hkZJpFGk9MPo3kKnaVChmUhB1HzzXt44GVDEDBJMHEXS7Hd6ZcGdCdNrlcmjW5K8vbjdEGJdR4T3QiYjE5YZpElGCLtITzVXO-DGlB94DJsllj9SXE7focSqEWIgkAkRKjas_jDLti0lrt5XFWvo3mAZukDdDrNCWlqTk3eBwu8jywGNdNAEA0pyfR9UgdeCjt18NiJkbpGVD1muCUDQ0ggBBDA9XUdqiWxj7_f5IUU1B9ynvVAO1bn2SOW1E-JWrEsMOXZMu2PaGSJRbKje5C78L7L4QqAYuVUhmUjiF4IzaFQ8mKXX7sCnxYmckhmsKPgobQwGo967oBQm9ONgBRAyTYfkMPw-reOGnQjRq0_8lFlCImX18ar6uD32IWWGaebTP6X0I4N_B4FctruPXXqnIAVcAC0IZepjq-si5_8EgrIQEmaffEfLafbr9uHx3OSU3trNhCOsso2nbWJSmt4IXjTpB4V1jmWRWy1bFdSwO1XUPSnTb4696ZtDwqsaaqLf9YpuxJC1g69UBmBihQL2ZgGqXdlPlqHglrCTI7LZXofw4YNFVbn4VB7raJk_AdOWb6gkGhIS1dWgFsHKpht6Qpj87Bt5oFY5K7sfPDo5Xp-yMNaF1l743Tp34H5i7uKrgnZVpUrMEkn5lB0yVYZyJ3qr6dVe4ifJp7jzK9b087gW9fZAqZI7snCGV374btXiBam1YnDb8qYYa5FwB1lzU-uHnpKdeHmPahlz4hBQlrKMJKFmzJYMy1stBwMp-eFTtnmLlgO8z9c9nEhCcwBP9-t-xzOP1SmIx4lxQwvpEaLBm30BGyzKYarziKaT-nqZ-c0Tz9A03K16TF_A5T9eawcsGC9ItuDUI_HoF6yhtac_uUeiMfZnlDhYwvHYanMCj3xY4Zz49rRY1sFJVQHJNaZfPUQJebF7g7-Z4perY-copfL2YsOrruyuYVi6K-AfRPsaFTGpfLnYQTTiyTvyRmBhz_7RBc_QVwIdNNSgtFHDSN_Wy3CAmUaedCDNbqEeSE1ymZscGCBLK1M-qbwmouUM9Ol3Ys665nJDk7pRdvsPd40lwaB_pQK8VHgt4pak2obKbTm3IuDQ0b_SSgdLZ6eH8t2uqrf5DBAgLIS31AzVHc0HhtgenBpNHHA2FCz4hpXt1peJXccaKqZSa0GrYNnPqLuVQwcqKPf1ElI_o9fYU6SycDMXFIT_FL1GohJ3kmVz679sk_obhhmSHHvhz0xJzwvapvetg3LWKS2Lq6vpZ5opKZonKiZlwfLg-OsU_iYvsPOXHLkT3Vs9nslQBxzW8t1kKx34pbNALDDn9QKY221qELJ7O9W7dZiTST9huzn_EH5H6hFNJgfPoI08enUUcvRRZ2sf8e2RAEV_D3NQjK3CeGMV_6aUjYJhclAB0Hi80nGxGTQ2jKrgj38mAFdPaqp2dq0N6Csdg2K35APcGIx3S9KL0vmNZuT8U3T1ZUKzi1WY59F-BmNC0Rz8BLlR-eUHwk_A6FuEYNeULCWlN9t41mDE9_iBW1LymXPzFZsDddCB8SkGgJrynuszm2oleHmen3LRqFmIg4Fq1xfYJfP-Im_THZL-76ntumPHm4ZkMAsYgnLKHtduY4dB87ou5G__pNl3Qn2m2W67adVEelLZq4_n0cS3mGgRFDtJ-UeVzx-TTTPTqO82FrrglW1aBKPOxdkafyIjjNG2EyTlKOHnZq7dKxwC2dIjaLtkNAirsF5_gAEYVGcaUOWHrguNNaBEVBaPOVBcSfWEQyIJix5zIZ6aIlJ7bHsAZGvmTcWH91NFKLhRzMi4v66DjvzCSqHuPBEogGJ0TsJ2SSGr3Oc6TV8ZIOApwg_fB47MJXnl5Y_JgcF2BoBNUtrwurfcqvhQsuXcTX61UC2MYS_PUJ37HFnTXXqZoBYQmkspoBaCRVpLENwi0bymN1c9S8Bbs0unTq9lr6whulPzD818dnJjvP3sO5fkE5jUGqI9GoxR7bkdEx4Qc08Bg5Qyx3PeiCEpta2Ki2b6Rdyp5Nh5ChELgbYvoNVm0lDggrIks71LdzSD0TubnQSOgQkojq2e3sOYCBWhuM2CwmOEmifvuG-en81-6W9lncYlUIHBZGeGbg8PtFBTclm4AJ748PbiZEny9oSYtZt-FJTrl0HeUpM_mXJQpKkdvQewF6fBMXZt6Hlktra0rhDd3qLCO40fVIMkNAgRoSuqwABnkmq4Gqc0PGBrS_6ecsKsr8zHlRQhUk_pVIt_jZExoUKpt1F9LiJAYlss7oAYpn53ofnocb1JgDM8tTsE8iiTlCT7xYfQnZI0ijRqR5tJlXHHALCpTjEZKJXRfOFkrzGEIsCze-pkoLz9UMPlN9RzuLatRV01R5bSxuCtXdyIQAa8ziUbzj0uc-D9R6jWylxG3PXJsrvxZKTdYZqKHygy1lPGGw03kCd81-7hNsrnzCAZOw-_VVrben8IWYkXTIBiEyvjrQ6AYgOqu8TrLFMGFaSYQdbEVg0jnEb4F8qq49F_lHsRUXuFz9qES9UIqIn1HKeVjgoqSeaQpODAIpDzJX-Ag6z69l8eJm6flwswUIDvpKPVyXC9VqTSZ06vRHBtKLCprEqhrxxqEXHPRihcCqaZbAG_axL77zJoXjGu4GG88JxuUKwiojZ5n1anF_9nV4x8ry-i1ew-VC0oRFkzU_WBpSBohzTsyNjBs4-ENSt3mmdpcY2c1cFLbaJf_SCkTD8akwFxUzr2Pw1Q7QGVdpHbffNGcqT0QW2Bw7qAMI1T0MhUnxcXLuIlYsFUZ2-dfQYiZf1O-1pe-lXpUEZhQbOx7lv_iqyxwsd4LXC3AH8-PiQlHca6udHMljI3K5GWURpQS3cHxFLZqJIbJPoRXkeEfKk6cBz_5NL1svoQkAW4deDiryIFgzM-JZ8dzPSq1WpM2qnydXjWESuJlhEwjANbZVQ68nBR8J-ztcOxYmqOquUEPRr3gsbRoxaiLrPDoObQuJVmX6V39D8-Wp28xVJkYvBRwfk5F95-vjDYYytpOVTCq-PLVaFxY-Ppequmwxmyaysz3cOEvATxZQGQeFRkmM1SiA8QuayK8kOESOp_s1y2DcrTau_wa2W6SQBoTJQuyzAsXS0AUIvuyK629SyY1XyS7OdNogNhnDUmMBBdGJ-VwBDvxAG3DHh20hdbpfYfMzSao0f6Xit6bVuD43kW1xepHTxeWTKF6gyAhkQMOfJ3qdm7uD-uLfHqRZMYWYjrDbR8u66STA20eareXp01aLho-nDz_tgqMqxngAWdlTPCl4qNTagMAw41PSEBvIMqxgpg-2TokFtMWsmRKAqrxf8sGeEDow3RcOQMnFAsZx6ROuQKm-zCDZFRc-BepDxAegz28Q9odgUhvqhtRgs62bo46uO5lV4rxRC68tI9WkjAMP6FknuKF9AUkvVoIzjn0o4uZUVxAyhmBxZBajZVhKkcTZWNyDBf-J6puAO_xNCD7rAJJtxBEG3c8YJqfCWhqlI8gVGuugNhRPVoDt-H43yBPTY2tuVVh_Z5wkY94C0Ayd0DoWnw8hP47tTPcjG8yOrUtiiG6xSGvYhAJS78fdXph9ongkWls1C1g-pEH5n7U9uJbL8kTqt6_SFMi-zC5muZOIWnjLLnlK_-SaQh5j8ubT49mavDOLT5gQfDvslaqyxrkUKP7Gp50dWPe0ebisFL-gQFC8uI8rjy2pIcojgDW8X6cJWKED6JMsHIHjK086OOIqLda2m3s3AeOcXAWRdnN_dkBHz8mT1Lu51BY0JTc94qwyGmFfB30-gemvru4rgVfTfOwwAeAl03yml4yhMnqyUsq8reg8oTb39SQaU_GxHEVKhRK2sU6DDFgmDH0JrhElSCYEHobHLY8r5Ase8x0vEfeq-5eb37x1VnSkOb1jhSI9LrT9f_IiuF_hcnWru79ZrEnkZGjFA3Vb0a4nxlUkhoprFT6tSA3g9Bjcs0qPRsycsbiuMIFUYdDQYZWfhEvDa8qR4H6XFvBeTp0VbI-LwGMyxiZpBupdJTZ3IxpJfjP85MnauacQ4-Qr_g2V9mndtG6pyt0N9b6cj_TJQ0fEpsoFL5a4hhc= \ No newline at end of file diff --git a/batcher/aligned/test_files/mina/protocol_state.pub b/batcher/aligned/test_files/mina/protocol_state.pub index 86dd4c5b9cd31a8532440180c1368dec3df55703..8a58d369c0d0e4f7660bf1d5596c77b3fc19a0e9 100644 GIT binary patch literal 2092 zcmdT@JI<_D8VsCRa_GQ|Ab{rG!35{8s!Cpa1#WjKXie`{iH1 z{%C!RdS@DFkN5i9G<1kJ*LF+#D$K>%vi#j1##&bnh~MK z9OE+v-%PmS;X0argnGqzy-7om52?b7&cYWxPBopf5$Fg;l-7&X>REVxk%O9@AKb2i zR3PGL;&z@gp!qUO9oGGPQL#sQ`1?Hsp{ri0ESvA^iyB3oKkyRB5<|g9 zTekZd4IPE%#+Y@anTTup=YY}2gRAYQQ>-e*IrNJ<{Hp2p(r_7cHB3A5?@OdFCK&)n z${S!63#bAmc-chBQzLF+?*a4wknCcRzxUrat3{cbf?F(B9<`Xeqm}2M7^h{qnB7<1=x+CNcOlOGpknyp3g$)4MCV11J-BL$RbMa)Y~A^s z*D?T!D4^I#7SU-;t8$Dh7jIXBK!=Z>R}mURI>@CE;j0Gm|!jDG?rSjrGVm{%gkCyTFaKV1jO3dp$K7|!p&qq75Ac!Sx|Bi46;qmB~3vvP!W z8n(L$0UwGQT9d{Xju$g5Y7$qgmPG+!6yNoQflsxlRa|^Lsroiz!8@5ESFSBO2-m5+ z-$*Rg#^t(mLXIt6VQhL~FKs5G9gF3?v`Szj;uLG#m`uXtdF?D@ED3-Tixe-~GRc&WipTYxx&gpZx(upBmx{`3p~_!BBb Bo)7>4 literal 4757 zcmeHL*^Z+~7M*YLbG2l4D5)RJVl&tvgE#C_%L*V^&0>Phl|?YA>TLIMxX<<9SG*F^fNyON%1t1;A2}O7+h~Kh+zF<^XFMn;w=TJ zGqUBowOKl}`JvTVx$!#3@gH)*;>}avd-^dVJ?pY)EYXd^a!z#!?%()CS^-?nBeCtSOiHCUHvjCJb>U8 z17hd8J8%%3Q+zm6T5TO!{S0|2y9YIMbm@(I+9fun_NN$hW!H@UXIV_qfQe|8FkbDZ0 z8a3AnAoLP9?1{9u? zzbt}3LJc0nwd2xYyZGJ%zm6%d5rrz;K!aU&a^*rZT!K6>4|{|4R*nkZixAE%f6AW# zGyq%3+E#s8%6rvTwxM>p%NGQ;=Rv#&z*=@x0lmXRIUxHa*$3nPXjP^qg)kKpxph(` z*bg)I{ODVQKOI3e?6%T9;Hz_(hOlM5N7Yu|^1IgZF|KFoQR;(1z=Sd|wwMH1%fe6dvKoTScaftF->$u4L`6-9+( zMMY7irA%owuW`a$;dzBv2yW8>#AyWazx>09O$`bJ{3gNG?3a0-G|yc6Ip|@F?fu^# z0S6xF?APqS@_X20R+pth=Rk84u+HN@=jA3X7_GwkWK=e?2c z+kmq8q;U@Vg?m&bL-PV^GWHOSS<;@Gg}HSur4+G;;1Q7XTmNZVQ@0S)o9~xx(OlaK zCp*M;1d!0v9PbQ4a%*cir4H^5jd#O_|Mp?lCnVei1_rZ_1cszp1L_D)<^FDw4~9~B zg0`Ih9RsmxsvY1NDy%TJfP-y8^?!~5U@Z9BwrFa!JA7g&Clt8hkyd2#8Esq=W&aW zIL>2uK#M#PoH*hL7U*@=f3%8Up^B+@;g~)X4pqJfc0rthu5-gs+MG;d0BLH zetC@OmqG-;u;+hPqD@z+LYfwQM1^G9g*>0D(c)K((v%HWTST*AuMyKImfjhTiIL@Rsdx3s)H+@D<<_h{a&=W2Pgd}iIRj5Aitt(g-4#rH~0jB zV&{{Xe*^a-@9`d1;skDbya5?0-=|}r0{3-LBGGsmDAHluZw`Aa3&wp&ud|~TYj#&e zPzr~RZ!J9v^i8F~*kWwYKl^@UzkhjJWag|WP4S#hm&aLvCgm`rJMXaFrN~kN#d^Ed zX&G%}{UG+DCl5uOIsxUHd9_U!p?Zo_v9%2nIGnI`bM<5BXB8f*NRSw7Q}l|yUu(Nj z6+M0%WprzfXM-A77ZdKz0kAhQJ96PUJKC0cvG*!QB2(oXAWC*YBdxuY$Xwt>p~pMD z3bVoO3$D~oHJAFX=Pe}Z#PBORF=>)RPjCL7zO2YlBq9YIn!ogPuSUIyET-6NXAfk< zcC5pEv(ng07YGL?vsauO9;vJmR>A$=x>@|brx{AXA*R`{Y4)9`ErX@lqg^k`st?@# zrfN=;-7kYT_TY`X8Bn)VYIIl8INYFVse4yiecJB zD$A!w7+(9~L^(v)W{|8DQ-R4mea|G1 zhxIxiFlzu7f=A-Iz(KT0Q6vqC6v8E`1jx{r-}mhCWQXuXg6jKNHmea~D1 bool { + // TODO(xqft): add message errors + let protocol_state_proof_base64 = if let Ok(protocol_state_proof_base64) = std::str::from_utf8(&proof_bytes[..proof_len]) { protocol_state_proof_base64 } else { return false; }; - let protocol_state_hash_dec = if let Ok(protocol_state_hash_dec) = - std::str::from_utf8(&public_input_bytes[..public_input_len]) + + let protocol_state_hash = + if let Ok(protocol_state_hash) = Fp::from_bytes(&public_input_bytes[..32]) { + protocol_state_hash + } else { + return false; + }; + + let protocol_state_base64 = if let Ok(protocol_state_base64) = + std::str::from_utf8(&public_input_bytes[32..public_input_len]) { - protocol_state_hash_dec + protocol_state_base64 } else { return false; }; @@ -49,12 +61,20 @@ pub extern "C" fn verify_protocol_state_proof_ffi( } else { return false; }; - let protocol_state_hash = - if let Ok(protocol_state_hash) = parse_protocol_state_hash(protocol_state_hash_dec) { - protocol_state_hash - } else { - return false; - }; + + let protocol_state = if let Ok(protocol_state) = parse_protocol_state(protocol_state_base64) { + protocol_state + } else { + return false; + }; + + println!("checking hash"); + // check that protocol state hash is correct + // TODO(xqft): this can be a batcher's pre-verification check (but don't remove it from here) + if MinaHash::hash(&protocol_state) != protocol_state_hash { + return false; + } + println!("hash checked"); // TODO(xqft): srs should be a static, but can't make it so because it doesn't have all its // parameters initialized. @@ -80,9 +100,15 @@ pub fn parse_protocol_state_proof( .map_err(|err| err.to_string()) } -pub fn parse_protocol_state_hash(protocol_state_hash_dec: &str) -> Result { - Fp::from_str(protocol_state_hash_dec.trim_matches(char::from(0))) - .map_err(|_| "error while deserializing protocol state hash".to_string()) +pub fn parse_protocol_state( + protocol_state_base64: &str, +) -> Result { + let protocol_state_binprot = BASE64_STANDARD + .decode(protocol_state_base64) + .map_err(|err| err.to_string())?; + + MinaStateProtocolStateValueStableV2::binprot_read(&mut protocol_state_binprot.as_slice()) + .map_err(|err| err.to_string()) } #[cfg(test)] @@ -90,9 +116,9 @@ mod test { use super::*; const PROTOCOL_STATE_PROOF_BYTES: &[u8] = - include_bytes!("../../../../batcher/aligned/test_files/mina/protocol_state_proof.proof"); - const PROTOCOL_STATE_HASH_BYTES: &[u8] = - include_bytes!("../../../../batcher/aligned/test_files/mina/protocol_state_hash.pub"); + include_bytes!("../../../../batcher/aligned/test_files/mina/protocol_state.proof"); + const PROTOCOL_STATE_PUB_BYTES: &[u8] = + include_bytes!("../../../../batcher/aligned/test_files/mina/protocol_state.pub"); const BAD_PROTOCOL_STATE_HASH_BYTES: &[u8] = include_bytes!("../../../../batcher/aligned/test_files/mina/bad_protocol_state_hash.pub"); @@ -106,20 +132,19 @@ mod test { parse_protocol_state_proof(PROTOCOL_STATE_PROOF_STR).unwrap(); } - #[test] - fn parse_protocol_state_hash_does_not_fail() { - parse_protocol_state_hash(PROTOCOL_STATE_HASH_STR).unwrap(); - } + // TODO(xqft): parse_protocol_state_does_not_fail() #[test] fn protocol_state_proof_verifies() { let mut proof_buffer = [0u8; super::MAX_PROOF_SIZE]; let proof_size = PROTOCOL_STATE_PROOF_BYTES.len(); + assert!(proof_size <= proof_buffer.len()); proof_buffer[..proof_size].clone_from_slice(PROTOCOL_STATE_PROOF_BYTES); let mut pub_input_buffer = [0u8; super::MAX_PUB_INPUT_SIZE]; - let pub_input_size = PROTOCOL_STATE_HASH_BYTES.len(); - pub_input_buffer[..pub_input_size].clone_from_slice(PROTOCOL_STATE_HASH_BYTES); + let pub_input_size = PROTOCOL_STATE_PUB_BYTES.len(); + assert!(pub_input_size <= pub_input_buffer.len()); + pub_input_buffer[..pub_input_size].clone_from_slice(PROTOCOL_STATE_PUB_BYTES); let result = verify_protocol_state_proof_ffi( &proof_buffer, @@ -134,10 +159,12 @@ mod test { fn bad_protocol_state_proof_fails() { let mut proof_buffer = [0u8; super::MAX_PROOF_SIZE]; let proof_size = PROTOCOL_STATE_PROOF_BYTES.len(); + assert!(proof_size <= proof_buffer.len()); proof_buffer[..proof_size].clone_from_slice(PROTOCOL_STATE_PROOF_BYTES); let mut pub_input_buffer = [0u8; super::MAX_PUB_INPUT_SIZE]; let pub_input_size = BAD_PROTOCOL_STATE_HASH_BYTES.len(); + assert!(pub_input_size <= pub_input_buffer.len()); pub_input_buffer[..pub_input_size].clone_from_slice(BAD_PROTOCOL_STATE_HASH_BYTES); let result = verify_protocol_state_proof_ffi( From 4764eb755e5d5f873bb93387cc55189d05c92138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 23 Jul 2024 11:02:57 -0300 Subject: [PATCH 5/8] Remove dbg prints --- operator/mina/lib/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/operator/mina/lib/src/lib.rs b/operator/mina/lib/src/lib.rs index 976a4bfd9b..1f6b0851e7 100644 --- a/operator/mina/lib/src/lib.rs +++ b/operator/mina/lib/src/lib.rs @@ -68,13 +68,11 @@ pub extern "C" fn verify_protocol_state_proof_ffi( return false; }; - println!("checking hash"); // check that protocol state hash is correct // TODO(xqft): this can be a batcher's pre-verification check (but don't remove it from here) if MinaHash::hash(&protocol_state) != protocol_state_hash { return false; } - println!("hash checked"); // TODO(xqft): srs should be a static, but can't make it so because it doesn't have all its // parameters initialized. From b598231e400c77e0f2544e1bb1cc1c29cfc21290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 23 Jul 2024 11:25:01 -0300 Subject: [PATCH 6/8] Tidy up code --- .../test_files/mina/bad_protocol_state.pub | 1 + .../mina/bad_protocol_state_hash.pub | 1 - .../aligned/test_files/mina/devnet_vk.json | 492 ----------------- .../mina/mina_devnet_protocol_query.json | 506 ------------------ .../mina/mina_mainnet_protocol_query.json | 14 - .../test_files/mina/parse_proof_query.sh | 4 - .../test_files/mina/protocol_state_hash.pub | Bin 78 -> 0 bytes .../mina/protocol_state_proof.proof | 1 - operator/mina/lib/src/lib.rs | 78 ++- 9 files changed, 32 insertions(+), 1065 deletions(-) create mode 100644 batcher/aligned/test_files/mina/bad_protocol_state.pub delete mode 100644 batcher/aligned/test_files/mina/bad_protocol_state_hash.pub delete mode 100644 batcher/aligned/test_files/mina/devnet_vk.json delete mode 100644 batcher/aligned/test_files/mina/mina_devnet_protocol_query.json delete mode 100644 batcher/aligned/test_files/mina/mina_mainnet_protocol_query.json delete mode 100755 batcher/aligned/test_files/mina/parse_proof_query.sh delete mode 100644 batcher/aligned/test_files/mina/protocol_state_hash.pub delete mode 100644 batcher/aligned/test_files/mina/protocol_state_proof.proof diff --git a/batcher/aligned/test_files/mina/bad_protocol_state.pub b/batcher/aligned/test_files/mina/bad_protocol_state.pub new file mode 100644 index 0000000000..1618ab858c --- /dev/null +++ b/batcher/aligned/test_files/mina/bad_protocol_state.pub @@ -0,0 +1 @@ +½«zŽ•ÛíBý]SHEÐk–ŒÃswY ¦´…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 diff --git a/batcher/aligned/test_files/mina/bad_protocol_state_hash.pub b/batcher/aligned/test_files/mina/bad_protocol_state_hash.pub deleted file mode 100644 index b9c264c331..0000000000 --- a/batcher/aligned/test_files/mina/bad_protocol_state_hash.pub +++ /dev/null @@ -1 +0,0 @@ -3NLAmT67BvsADswuJ6xpt3yNEVgmn5R8pkJTFvQtsZQD54aLhFmU diff --git a/batcher/aligned/test_files/mina/devnet_vk.json b/batcher/aligned/test_files/mina/devnet_vk.json deleted file mode 100644 index 0e5160bb6f..0000000000 --- a/batcher/aligned/test_files/mina/devnet_vk.json +++ /dev/null @@ -1,492 +0,0 @@ -{ - "commitments": { - "sigma_comm": [ - [ - "0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC", - "0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37" - ], - [ - "0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC", - "0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4" - ], - [ - "0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB", - "0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D" - ], - [ - "0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05", - "0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E" - ], - [ - "0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB", - "0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B" - ], - [ - "0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1", - "0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5" - ], - [ - "0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555", - "0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224" - ] - ], - "coefficients_comm": [ - [ - "0x26EC10122354E7DEC10E83F7D26D4311863753F37489FFD2F5D634958C876CB4", - "0x25AB47DC77226E515B05BD2C1DFB025477F54FFBB9B62F4B2914306C2D1AEB6D" - ], - [ - "0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922", - "0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28" - ], - [ - "0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F", - "0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6" - ], - [ - "0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236", - "0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A" - ], - [ - "0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614", - "0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E" - ], - [ - "0x2EA4EF211B04C50C1680CE1E38DACAE3EC40FAC3216A6D4157B29D6053C812E8", - "0x310B3ECB01C946FE01F766DF1249FD36E4AE2EAEB450D93DFDE08AE9D24BB7BC" - ], - [ - "0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121", - "0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E" - ], - [ - "0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA", - "0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B" - ], - [ - "0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F", - "0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89" - ], - [ - "0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766", - "0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE" - ], - [ - "0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036", - "0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455" - ], - [ - "0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103", - "0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4" - ], - [ - "0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E", - "0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645" - ], - [ - "0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF", - "0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF" - ], - [ - "0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39", - "0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567" - ] - ], - "generic_comm": [ - "0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B", - "0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C" - ], - "psm_comm": [ - "0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324", - "0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B" - ], - "complete_add_comm": [ - "0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B", - "0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688" - ], - "mul_comm": [ - "0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5", - "0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689" - ], - "emul_comm": [ - "0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9", - "0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9" - ], - "endomul_scalar_comm": [ - "0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD", - "0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244" - ] - }, - "index": { - "domain": { - "log_size_of_group": 14, - "group_gen": "0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7" - }, - "max_poly_size": 32768, - "public": 40, - "prev_challenges": 2, - "srs": null, - "evals": { - "sigma_comm": [ - { - "unshifted": [ - [ - "Finite", - [ - "0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC", - "0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC", - "0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB", - "0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05", - "0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB", - "0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1", - "0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555", - "0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224" - ] - ] - ], - "shifted": null - } - ], - "coefficients_comm": [ - { - "unshifted": [ - [ - "Finite", - [ - "0x26EC10122354E7DEC10E83F7D26D4311863753F37489FFD2F5D634958C876CB4", - "0x25AB47DC77226E515B05BD2C1DFB025477F54FFBB9B62F4B2914306C2D1AEB6D" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922", - "0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F", - "0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236", - "0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614", - "0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x2EA4EF211B04C50C1680CE1E38DACAE3EC40FAC3216A6D4157B29D6053C812E8", - "0x310B3ECB01C946FE01F766DF1249FD36E4AE2EAEB450D93DFDE08AE9D24BB7BC" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121", - "0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA", - "0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F", - "0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766", - "0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036", - "0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103", - "0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E", - "0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF", - "0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39", - "0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567" - ] - ] - ], - "shifted": null - } - ], - "generic_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B", - "0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C" - ] - ] - ], - "shifted": null - }, - "psm_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324", - "0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B" - ] - ] - ], - "shifted": null - }, - "complete_add_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B", - "0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688" - ] - ] - ], - "shifted": null - }, - "mul_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5", - "0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689" - ] - ] - ], - "shifted": null - }, - "emul_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9", - "0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9" - ] - ] - ], - "shifted": null - }, - "endomul_scalar_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD", - "0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244" - ] - ] - ], - "shifted": null - }, - "xor_comm": null, - "range_check0_comm": null, - "range_check1_comm": null, - "foreign_field_add_comm": null, - "foreign_field_mul_comm": null, - "rot_comm": null - }, - "shifts": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3", - "0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6", - "0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D", - "0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4", - "0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484", - "0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1" - ], - "lookup_index": null, - "zk_rows": 3 - }, - "data": { - "constraints": 16384 - } -} diff --git a/batcher/aligned/test_files/mina/mina_devnet_protocol_query.json b/batcher/aligned/test_files/mina/mina_devnet_protocol_query.json deleted file mode 100644 index ed998cfe7a..0000000000 --- a/batcher/aligned/test_files/mina/mina_devnet_protocol_query.json +++ /dev/null @@ -1,506 +0,0 @@ -{ - "data": { - "version": "a3df8f2ba1aa5764eb6649593b676173d2bd32ae", - "protocolState": "{\"previous_state_hash\":\"3NKRZtyrCKs2PqDNkVaz8Y43fMNMv1t2ffQMG8EsNxU2Stqjkean\",\"body\":{\"genesis_state_hash\":\"3NL93SipJfAMNDBRfQ8Uo8LPovC74mnJZfZYB5SK7mTtkL72dsPx\",\"blockchain_state\":{\"staged_ledger_hash\":{\"non_snark\":{\"ledger_hash\":\"jxumUuE4BtbvRRcyBp4f4L2bVHbTZmtE48AhLEGyN9gH5Pid9Hz\",\"aux_hash\":\"V3xNvkc2r1H4rBHformqaAMFVxeEt2dpHgs4e5DBR9LM1Q9rfi\",\"pending_coinbase_aux\":\"XSaU7RWhUY1ErNV4HYe69kqdr3VX2LXWSiQ1DwWhavovtzcWKo\"},\"pending_coinbase_hash\":\"2n1A8AbAGCq3ycYJVXHpgvzHgfkRAwPCr65TGKEDzU95saQSx6kf\"},\"genesis_ledger_hash\":\"jy1wjiJgTkzXr7yL8r5x4ikaNJuikibsRMnkjdH6uqGCsDmR2sf\",\"ledger_proof_statement\":{\"source\":{\"first_pass_ledger\":\"jwQqW9ss8pf44DRWEEwRBXH3TcNJ9YVfkXg2ehwgKvMxMRfFh91\",\"second_pass_ledger\":\"jxb35uzFJ4vhqwacrh1bt87pfLeJ4FvBpXeMfFamdMUTJ4bGRDa\",\"pending_coinbase_stack\":{\"data\":\"4QNrZFBTDQCPfEZqBZsaPYx8qdaNFv1nebUyCUsQW9QUJqyuD3un\",\"state\":{\"init\":\"4YywuJ6WVapxSP9qd6pYfjfeu4bypupbFy3Hp1y8C69uXvdrLYNn\",\"curr\":\"4YywuJ6WVapxSP9qd6pYfjfeu4bypupbFy3Hp1y8C69uXvdrLYNn\"}},\"local_state\":{\"stack_frame\":\"0x0641662E94D68EC970D0AFC059D02729BBF4A2CD88C548CCD9FB1E26E570C66C\",\"call_stack\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"transaction_commitment\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"full_transaction_commitment\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"excess\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]},\"supply_increase\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]},\"ledger\":\"jw6bz2wud1N6itRUHZ5ypo3267stk4UgzkiuWtAMPRZo9g4Udyd\",\"success\":true,\"account_update_index\":\"0\",\"failure_status_tbl\":[],\"will_succeed\":true}},\"target\":{\"first_pass_ledger\":\"jxJCnb7NTT6LEdSpfQxmM9QzTsFwjvpF8K32A4WvTMCYzPtuisb\",\"second_pass_ledger\":\"jx5DMNjpqc9zWEG7QWF8nencXxfJavS2KfJHfhb3v9xVbjmXmY6\",\"pending_coinbase_stack\":{\"data\":\"4QP5pBRZPoQzZkk7mqUbvSaGfYBqRs8sZEjP1kDFygUCg1oxvBkG\",\"state\":{\"init\":\"4YywuJ6WVapxSP9qd6pYfjfeu4bypupbFy3Hp1y8C69uXvdrLYNn\",\"curr\":\"4YxVkQa5uGLRaBDyc5zWW6z8KGDekZt8JdMwXcS2JiL4Zoqs5sJu\"}},\"local_state\":{\"stack_frame\":\"0x0641662E94D68EC970D0AFC059D02729BBF4A2CD88C548CCD9FB1E26E570C66C\",\"call_stack\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"transaction_commitment\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"full_transaction_commitment\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"excess\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]},\"supply_increase\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]},\"ledger\":\"jw6bz2wud1N6itRUHZ5ypo3267stk4UgzkiuWtAMPRZo9g4Udyd\",\"success\":true,\"account_update_index\":\"0\",\"failure_status_tbl\":[],\"will_succeed\":true}},\"connecting_ledger_left\":\"jxb35uzFJ4vhqwacrh1bt87pfLeJ4FvBpXeMfFamdMUTJ4bGRDa\",\"connecting_ledger_right\":\"jx3CAQSbdmeZ2zQyAotdGRXyUoPCc5wSMHfStte1cRX1tr8Ps5t\",\"supply_increase\":{\"magnitude\":\"12960000000000\",\"sgn\":[\"Pos\"]},\"fee_excess\":[{\"token\":\"wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf\",\"amount\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]}},{\"token\":\"wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf\",\"amount\":{\"magnitude\":\"0\",\"sgn\":[\"Pos\"]}}],\"sok_digest\":null},\"timestamp\":\"1721678220000\",\"body_reference\":\"39ea5c0d1067856f17d4a7d9c9857b0942602d6ea1a89516506cee955b36a286\"},\"consensus_state\":{\"blockchain_length\":\"330000\",\"epoch_count\":\"6\",\"min_window_density\":\"3\",\"sub_window_densities\":[\"3\",\"2\",\"5\",\"5\",\"5\",\"4\",\"5\",\"6\",\"5\",\"2\",\"3\"],\"last_vrf_output\":\"MZAv2mZyzs-n8a-4YIp8Q2pjCpF8Keygn9MQnB00DgA=\",\"total_currency\":\"1435195618000001000\",\"curr_global_slot_since_hard_fork\":{\"slot_number\":\"49899\",\"slots_per_epoch\":\"7140\"},\"global_slot_since_genesis\":\"495759\",\"staking_epoch_data\":{\"ledger\":{\"hash\":\"jxPwLUTNkdzTf2KkVEhEQvnge9fxv6uNHgdHLpEehN3QbcYccgQ\",\"total_currency\":\"1428304893000001000\"},\"seed\":\"2vbUPSjsNDa14bSGWFgPhHU8w8bBxnhjRd1XMmpPjAfDWhj8uQJ4\",\"start_checkpoint\":\"3NLnwCHTKESzD8b6Pgk2uMzYJ1zGZMeSYdaQLh4z5fYkVQNMZQTD\",\"lock_checkpoint\":\"3NL1BXat9KbW83ZeZC2zq2GfkxXwn5oEWr5jcXbbA99W36G2iM26\",\"epoch_length\":\"4831\"},\"next_epoch_data\":{\"ledger\":{\"hash\":\"jwDgw8sN3nTEYbakxPzrfmLGE4Zvd7U3kQG5XfV1kt7GdqquXkh\",\"total_currency\":\"1431775924000001000\"},\"seed\":\"2vbNJ414VQrAopwdXTLptW1cQzf918TeNcM3HQEBd6Bo4jpJ7M84\",\"start_checkpoint\":\"3NKos86VkmYDMegTpCBwgKDCM5dNX8fjtgD46jVCq7CHTmY1RV5Q\",\"lock_checkpoint\":\"3NKJPRJBMfmQ2WfUqwAhcim3tFVShWW3599Ry3e68ctK5kK8jGV1\",\"epoch_length\":\"4730\"},\"has_ancestor_in_same_checkpoint_window\":true,\"block_stake_winner\":\"B62qk9b6erTiHJvHHSYALu9JQUjwzCuhNJ5hwdaBw18yAoii6z44V2A\",\"block_creator\":\"B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX\",\"coinbase_receiver\":\"B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX\",\"supercharge_coinbase\":true},\"constants\":{\"k\":\"290\",\"slots_per_epoch\":\"7140\",\"slots_per_sub_window\":\"7\",\"grace_period_slots\":\"2160\",\"delta\":\"0\",\"genesis_state_timestamp\":\"1712696400000\"}}}", - "bestChain": [ - { - "stateHashField": "16412661142465658765200930280227063269394874967846688806078394970172348915896", - "protocolStateProof": { - "base64": "_NBU-GbyQE3C_I3-TYU-_iSsAPyA1juF6iSHCvwYCsRF2PnvmwD8sm0Os6h-t-L8ltrYS7uQxyYA_II9B3gxH5iZ_GW1-Drzj4IzAAAAAAAAAAAAAPybMJf1k1s1MPypZ9_rRcL9sQD81czx15sCo_D8TvZ8NbUZnIQA_JHU2QjsVuHP_A0yEnILaCD7APx-G7pYD4UIVPw2nbYCml7QBgD8YwnpcNcB2J78k1kDrX5lEFQA_CunGruCEN36_IM4sDjVkISMAPxcosxgZWZaHfwR-SS7Vkq0CQD8mDmgknds6V38AYeIy6eVh10A_NIcKu-XbV_g_JjwWHzHkdAeAPxtNJVpN58TCPyuwykxGMFu8AD85kdyAJ4Ej938fEFanGC3ObIA_F6KftP1B-B1_GJXNEwuufheAPyEL8ynhE0eQfzZZ6b8LCJfUQD8v274cUzfzNn8_GqTiJqDskIA_EJokncjoo-f_CsC83OnWOFGAPw1JPy98oU0o_zSwrIuP2IZfwAAAhD8TbWGl1NYCeb8i66leoq1J678-Zp3k7o-OC_8hGT-2zXyLi4APZ8lDDyrEaj5NfM3taQ9ak3DIviEb--Ea5JWxSDEwj_Iyz74aluDImX64fJ_RYLRWs2uy_FdDPFBefYWHZcQAfzniq8bevRhJPwVj1mGpyfzowD8T_4lOtRi_Cn88yNijnfNYTcA_BVZhWSj_jvN_NcvQXgQWMkCAPzG1BYPGGlFBfz8e-zu8p9igQD8f8MwCkRK6Fb8fP6aRh9k7tEA_JokRS_HBQ4Y_BZgE5oeerbTAPyMhkngxzTtNvz3ELiIn6DaeQD8-ZY35wcFRL78pORLkI9yYUEA_J6lghULJ_m6_F_WaE6MhrCLAPwvK8qs316PH_z8unBlI_irNwD8HMYeczgbOF_8zL3z9mV987sA_KkqNpwZtpSO_MPTCl-EodeBAPwQoMtonNIWPvy8gJ--NMugbwD84DlvJks4s5L8KVV05DCOEEUA_F3R3YhBYjfi_NeR_7kCPygSAAD8pIwBZQhesfj8e_Ncj_9jyCAA_NaPy_-f3qiw_MLOdYjBaXTrAPxGGstTZARs7fweWmiV0pqKDgD8c4_E1Ap52H78qzXIGnkwocAA_CKYAa421H2p_MdN4rT5mCrjAPzi0U_zWbRVO_yOn4ruzDMoHAD8R88Zm5dadM_8HlCLX5rnlV8A_H8-0QK9y18U_LLEo2Vf1XR6APxQ_kwy7AsbqvwslD01YubG6gD8-DtxOAuKJAz8yTmQfJk0hKkA_CjKPhh88smB_EMspQD_hwsdAPzQUhtYzi4E5PwdPegNIsCieQD8vBOkmjupb6_8347xKSIa-E0A_PVwkIb6sKBT_LX4416wI4q9APy0UWbkmJLq0vzXFOe5V6BTuwAAAAAClVFMsWAaBMrv2gZTc9O2Xac9ojM6duOz0Yh0umsYDTqrevm8vuw-gGgFrkmms-q2ZkNlKZif5txA2rpCjYuXCJhQ7elzkBcvjwNhL7-ORx3jeOeocH8uEZG_K8n8y-gVgXNOttJGRzgVroqzVQM26uKJ9lIbdqKycYbkzVHqtTIC_F85NAb0GR3j_K2rkBd-tsH1APzcv9D3Wc2oU_xedqoUTiJ_tQD8C734FVWfEuH8DIImWWKhEoAA_CvOyrOz9IO__F1Qyts5mWUTAPy356l7ypMcOvzHzUevDh0W4AD88EBSo0IJ8Y38Yu6eN-H78RYA_HiHmxMwnn_K_AD3AGPj5NADAPzCQ0YHDw7QCvw8bD0M3R7eTwD8B8WnrVYE4Qr8OBpOYsaoeRcA_DjxnAPB21UT_KFUvusb0eMBAPyXbwAjE1dZIvxP1ppzSSK7eQD8dNlA5aHxUCn8e0W7-zUQYdYA_JtB_vbU4mz7_NYaMpo-2oF1APxXySXhzLMzvvz7Iu579CxOowD8r0TEFhYP-Vj8eLLPmsqYrMYA_LsAH2Y_RmeC_Ba7m3itc2E_AAD8uSqnVrRwc638_J7x1SP5TzYA_AB8L45iHIdZ_IfMJqJz9secAPyv8raeHYJUI_x-9X320Wu51QD89oaQoND3exT8aCokQM5iXmIA_A6tVjJjG8av_PvhH6EQcoAJAPyRQazKvh5Y-fymybc-mdUeVwD8vcNkzaNQTqr8aMX-wQrnFNgA_G3eXoLfrB2y_KUH28UXogj-APx_qubp1g9Ogvwsf7lOmDr2_AD8ygQbcSuIMcP8KSautsesOZEA_O9Rgf1Hjw_c_IeVO8RDeqkAAPy_MobRHtg4YPyrBaqicLyz-QD8Wkev5eDSdZT89tLDrgKny9EA_AR8Lfn2D3i-_FTi-zKRWD3hAPwTdTG4ErdwxvwIPkiaM8x1FgD80bjKsaKwwUj8zrFxwOMEZhsAABU8LbU4Y9KF-ig7cyFiRsy9DpaLb5IWH77CJnJ2SacAewscD_FU-Xi1g7LHqWM02Q9ziXHD8hoRO8ffjVHbUSABG-zVLn0QyvA7EiOgMgSOhpMgXHpWpkYtvjo-LEpn4BYBZ4KdK4NvznO_BGVhtkFNUkZjdS8Osi8cVIdg7LGrbDgBPv2L9sIFdQs_K8nm66BhtnDCF0CGQ_kk1s3vvEugchQBGX_IGGEF0Vz8OLBLjbILsxIdwkW8Ee28_gNvLiIhaxIB9amNFrMHMYCCbyfH2zWXXVvMotGZOEtOSsZkAioe_CEB-rfytFSc2vva3RJsQ4ZqZOaoFQ3tc9ZxZmxiXDmpozMBbg_SFJwBer1MOefaktSFGnBXBPG0Lnty4-smncSLWT4BDAqstrtjPl9UH0xkJycqK7hNE8Tpkbj07fMumycisQABdLtjXFuAWEyT71_NpkJ_crxTJu5yPyRK0kZwRmJZ4x8BgIEbsLe0Wn1Pa-GYND4EAzhM7NTUbcWQRjPIYfVETAcBECnmHZa-jtGqta9sMstypnN_6LOLh09XgNvTmnWCMTUBEGJ559ut9z0bQC7xKkdReRV3m9woJjspdatr6oSUtAUBNZnwE37A5jvf9oPspatxKrqKb1H1iGcZtpfxDKQ8ED0BIcJVF6CixytLW4Le2QA_L-L_D-F7icen0mmCyU7o5DIBeW70NcsrNLb5FF-NiIF0PVKU4TtQX1WNFX4nAwvOVC8BHkubRy4uhJtubgwO-Pkw0F27MLFOPaqv1r-WNM7isBcB5Lvtt-k9KwGcWZm9FkvqS0F5oIm6xwXxv9RobqYqxgABUwRpncC-uMCyvthKGn46OrPfOmC5xm-Tx7bIzbuHdQ8BbsgdAzTDxCaI1fu6gA3Zlzu5K4Vl4NuigfGrMtpZaioBy8pI0zlb6m8tD7IcPm53VdJTvFTK2Y3wUnxTniCHPSwBaBAYEY8y3ttUjD7bC1q8lHQYeWy_86zyVu3DxngpmCsBfONIgx6_quTQze2lmCxHHa8vt8b170kJN9Es8-tSrg0BvoOv232xApa3edjO3iUNlEuhYzIx4qzeCZZ_OQkMzREBIfvEfB_ra_7fulTecKLzLbCAC5MvJbLCbvaTfzrjhhcBSWg_5LQTakff8Azlxc1QTl9ULYHy3TB9RDNZSPWNoyQBzub_XJX0YIGIghIOT9f8aeUrrgda2_OScorZs8xCBi0B1y_qJTsYVDtsZz8Tr8cs1x_cGROX-BH8JM1tfGE42wABZgzxJLgMguWzk1MRpawQw83gj2mgjpAb0dQwV3_bhxkBpCPbgTG6X7xhX-ucNcb0kOXZzTVDmCT6UokcgwW9dxEB5yMzn7x3MIiDSdcdbe2u4AAHAw1VhBNaNZsrLdPZiDQAAU28fZGQ4cOuS3JBzi4hgy7-1ZMgNpot1jsbJVIfSPUSAYF-8g_gI9qkT05OO9Wq9se0WpEdWfIK7mdzGirDWZsSAa6-87bChEIeVNnHXYXXqq36sIgef5lobzDGgqzOTwMqAdBDmeGNpr7-neEmUhLoDmnb8W0jbPmaT1hGmFD4oEYDAR5fIPJQQPDK0FyV8P-jkLmvljCTyS6DOUdW0qj5ADMzAQWzC2adiWYfU0QT50AjqWk9Icyg6gRIebkcbEUkIn8CAQompizmoSDlMssgiVOOTYSSrzZ7HPj1DtIPCzc5yjIrAZzNUn-h_kwXXgr6c0F5r9BTdQLE5W1ukM99DkVhBx4EAa88lxAfZ56lJXuGFSzK2760ybZqbx0h4C2hs69uY6k7ARudG8MWMODW3lDW2FdXZRXBuKgt2LdQXICQyQzyxIAoAY5kn7DzY64pdOAdmq_WI5Y2fekZ0Y4mD4b8uGBSFWEaAVsAMoCd8NMgcyhGm0C6NmkKFpn2UxMMtx1k5oOA_XQ1AfSHgv1ZIVI5ONuFrW4Th7GvlvcRyFSA_e8avo3sUYYjAVyot_U5vf3yGynXWx5rUWVURelBF5pnTxHjsFztIlYkAX5XXSR7EocQLj4hdvGSTa21ohGUaICVbSt8Up_hRHIXAZcY2m1HLRlSXDe9KIZsWnDV84cwXM-A_LiHd0q_7sw7AUFZKOGFF6QiFQekgBubHRPEXuboljgy7yBW2i_MPn0BAWxv-SBQ8jWQYdd0RUr9lM5bdtMgCR_EbgvRtiPpL8YTAV9KRre7wf5wVea3Qs8wMu14rIiY7J__B-eIGRpztlkUAcjnN0_9oytJXgqpG7NnP6lwkDfECE3fYO8MvVCM68kPAQWH6uwjt-Xj5PMVLxDG2gNV0iZccobX1oSYfC_XyUcMAcb7kX-i83vZ4mkW7c1HYKwG5dQbjCpdw7mwTQQQt2wiAZ6lopL-0zSjtigsJ48AOYmkV2SKieAlOotfiDPutoADAQDA8S36nMxfmNYQHR2s-j3sMLRaUjqx6ED7hRnpT5w8AQmP94XBB13-2f_VAzbCw5DnKnxxItv9EjyFQtr1mZoOAbpAC6HNoyhcZMCrTw2MoTOJaTej4nAn59pa8aV9sVU_AUH7QnwbcqVrVqPwH1Jl7Wx0huSBOnOJ3Gx3Cj6sXJo5AYRlzlc_gKid3Oxco9tUYP00xlhUxbM-GJFcwF6Pe_IUATmtvESnhys7sGLTcDgHZWb9HgxOHzvLn0selNAycqgtAYf_xCgHZIaekkMJLziTozEASE3dG2TeR2lTj58j7s4yAAEcQCiFIT3q7B1gYUni1nhbEDSj-cMpuO6r-qy00Xx4JAHhlCfguOYsj8AgRjBbnMB7xeLnknIvVmRlhBzJvAImAgFCzHLWmqSTiMu6eeZl-JmFTEWtt88QGAZdZWSlRJZyOwEMUwciI72008TatUbK8mI3L-s88JZAreKaxpAZKrAxPwF21R-pfU4tFfeMg6vERUQ7jor7M3TGFU9hvhHVgacYBgFaI4GlQC9JfHJEB1ssAnpmz_L5AJGm25HoaFrJv6Z-GgGBTfJZE4aTeggDEt7sQTg5sA54XmJbY8jKpl6XnYsxJwFLzZllXJUwOqrMS267MLRjpsk4I1wXdl2HgJ2e4wJQGAHlBiV6OcEsodrkLebXrYOAlIZgWflObnmyqmQIM9GUAgGjxMs021okKEStE1CKuS3fDO-LmEZFoE13uFGxYMQ_FwEoj3gw4lIlGYaNXPKvKgop1XOnYqx_jtdkU8vo4Y9TAgFfj3u1p8ytISS99QxVh6EedJniPrepX3Df9zUeyVhCNgF9u71ljCX_OjyQA3KnY9IxNzb_VKyIyN8UIWdQKUbhKgF2WrhfRYpRNevrJt4zZSq6FUX-DXIaynxH2ZREwI0jLwABN-m5mzIiZ0R5B_lRkaPOCCu3FFWBs4pRL3FiALvkJjQBAW-Z5ZY9rxLjlJZvrbptLloPUZhD6lqrgfNJsBFLkz0BQjXFHn7tdOtgwrGPrK5znPEDd5QjzYwZHmwVLm2eTykB_OraMSNlzfyyAJUTYXMNCalH1o9EBP241ox_oyFS2wwB-0V6aR7O1od3PWtMqLxpKRN3lHjkkFYRcAKhIlwTYx0B-_ChMiVyf1c5ReSQLpSvOCqO4UJH6Fs02I260IanhhIB91Vd2bZihlsH9GXgySoccZycYxzUOd66I_cdgDQpWC8BFnmAMAqowshSeaZ5F-tmINaYohJdhK0S40awD4cydBsBeLHxgJhSW3ysZOjN3z_U9rD8Z_OF-yD8ddeOtcpvXT8BauL7FpSqRnIfEbgl7-Ki7ZT0zaMtcCQbE7GP3MjrkjMBWHxIQ_0vmyfxFLgTklpybn7Z9wYgAr6RWTaONhklfwAB_7AqDJwqGMmKnGxtUYACkMj6SPeknod1ckHbCxDFTR0AAAAAAAAAAAAAAAAAAAAAAAAAAN5lVQleObsKQ6bGOvVhoTVxU0-fVPWUHD8FaaAey98-MmIM6pMuXf-V6xrjfVv-GohMK6a162CHKz-B-0yu4Re8hb1Jz5J_D1d9KupvhpyA7eCnfBl3zB0sLMUPWW90GnAfmIxmZLSbArX0g16PkpY5NS6Am1YEg5g9SxQLdmg6KyIhI7CtobIFJANecY6_o8nk7zRzpYOSnV0TI9PnMR2mKadoifWFS0QBGb8tVRpu0oWbpexM1RYSUSFYZ0T4LVhe-qjs9KRVLfnaSierehAP61MecCw2CMyqW9uJPy8e-b_X-My6nqs3SFGZ97ZV4I8Abuzd1jAuX-30Iw7uPg9dGDfWT1XH2WhvNI5wXesQhRYMazlmqySWAgMrhpgtNSXhT98P3QOzUmPdapI22G96x4hizhfvdyICopTARloX5cO6FEqEU5vZcggOpB8mEz7CYzPc8O6uf7fvFSxpQxq6oO_LU4wVofoUTEEbFxwJbwoiSm1Gy2H1FwjjK5NgK2wlvqoLIbcbumg1o-r9TxnXNMRcMb-_k-5smN84rPQrWoihmD0w7UeMPjWSSmUDb3zhlb4p8d0ybjf9KxFbGDS0nqm1f4t4NsEHbhiApJIlA0lGeY1Xbl0SDQaWrMcqBEX2pZEwFGVne09w9xktNXruuxqgKAwBbF8055iqkbU3POzcK81fFIXrvpOZbH4_7_GAbUyqoTzi7P2NBcVM9h6X3shjbz-17FAxUtl-xIb8udM7qCOkCT0Ct3IFBvxMIx9Orn-J6IZ51TtVz4j-7lnC83nxFwgAdRLNYcU1NcISbNMuoeUffTmbmUO-F3E2TnOZg7-OxEmY4UR5Y85ylS8f4QIr-CiQY9VgA2tRifk520aoLHprYIYmhOf8-O6lEEwYGywALw8kXJdsH4chk-W7YreTMt-BLj3YrkBUGOo37iyHjwwJzcMkBGKhykvRcITcj2mnlsG3O7UJSDU-gxMk1GJXaSxWD40VPeIkdTjxzDZY6TWS4XkRpDJEtjZ6M2_NYeisCqP0sR3B0nNgQijc5emrmb19vixLJWHVwZU7y7hSvjBTigpPoeT6JAavYun6n5sMs7xyGaRjE5ltWz69Q9Yizkg3nXiHHCMFcFywjEZ81r5asP8zkYRR-w6MPrJ-Hi8dspCcVnJN0xd4TJG8tzWeM4sIBVQTrFmE7M0ykFgnW8pv5TaWOyseJNXET1TvDp1Mpmy8mxcbJy94PQZ0_WQT3jhG_4xEH0oyH4uZ-K7XEdGi68YMCHMziPgNLeeg87tqpwDfFj1EQe7St9K3LVtvH66hVmcKrOxOvZIxAELjbpPf8mRIE2zfcLnNYhZVEyKIP2Jx5kF1FPPjXy4I2AKQwneyz9juQe-9p9cEfB1t-3eWh1XPfyHsLCugXSS5SxwX3Fwg4qL8o-NAfhsQCn8L2EUy2mUCENxofSMFMvIwTEZLhlkze2qhUJahz962gIkKNw2EU1pgGtyrAW8ChrdFF3Rmv-w58gciM2qj4LiCWNJOhOgjn2aN1S9XgS7PEwAyktD_hhC4TeRZTK-_QknM34dfYJcprU_KQ_raGweAkEw8aagOD0rt65bzuFhRBp161YRkUh_NhnHPySQYDFKnIGRZFRZ8S7M4-7LizemdG0JnDtQKk5RyvPr1ViMHJCx6Lv__jdqAmtbZoze2fetdQO0wgRQ9WD11MkpQKR2nKAOk-mNaFNMbTRdrargqZpe5GRlfe3xTU7uP3UofnxFo9Ls7Y7BrKTPaxNA6mLdDsX9cGormf770ELDSkTanKH34BxJEvgjUbfclfOJPR_hdPST_QYw1BrhenD33DXRHd6rwROh8aWTb5BYjTzTkRTUvMzLcoy89HYUS_cAwNeXjB4gSDke11luwoeVVNiWUmliEetfk6o-fllIIKDDaaATSdiQHnte7S5H5anxrAwE9CKfkSfwcxKcu-59mHVDLG2X05EULnncsC8IKDn1UI_SrBjNg63pEDtjypQYTAM2WyExxLFnUGha5L9uF58RWgkD5-eS_4kxk_XH0XsoXFkSz4uN0qHx487paeCjNyDgjCMJk-pgNkRR4WSzhnDIDB2zBb_soraSgRivBIc1gnNux1Bzzgo_VYB4ZNgJaLOi8DqVSNQXfzfZnadi07WSo2HcT63ob55i8vmOiedcdLjhgIGxViaq7fw8G24TAOio2XS7bMcFc5IEkLMPxrCCCl6YdvLLg6ebMF5NbUN7yROd3jfgpkXiIX7RcdlyVHiUM5Lgk6fi5sZEfyTMHYtlyevlANt5ujRu_8visTLgyaXr40g66EGZ8LTdt151Kiod_jcNGdywZ5DTc9ZY2WgWgGAPYfD894saNoK0uFwb0Wb8NB9upbUwYma5gr31cHPKdQ4Gqsz7engO5tdeR5ZJAOqG-xYpKc2puepSTo5AvqiE3J7c0SbtsBQCocFgEuWSZZaQ6PhWDCNTjeNdnUxasqrF2HR3LyF5i04ZjQCczCBhyI8CQCNbhd5a3T3_zDOCcSNiRtT0YS6XpXnyqRHE7BNbT3es4DTSxIApGD_gxD364tTY57QV7k-1fBZKfW_7WiScsCXqcMeWqqSQeZzd9yBkvyrR_wgrQpZ37uNsmjK_RAPHWtskOmbY5FcxoNEzPiZFztAOL8Fx3VPE-ihVRNRW3mGSlJkhNRTeVj581HefC1G2-aTojqVPmNaUyebHG2IrTJevxRRdgVS12gBMP6P2Re7ctH2banZa5zEfkrMDxyxQ0UVD95jYQ7IgCLTV9uibR6kqhavoXXHkaeQqGoq84IMrzKGsbRv1Acl47-ckBk4q2audn0zss6tSXUC6GBahwkbXh9Br3bKFO-Qvhyoe47EVAof9SkRcFXr8m80By0LWUK6axGvjd733PEE4dhNQZ19Z4nMNbqWnwetqhA9FpGD5itTsVyh26YmYxmzaVZZNArjlxxkYeIFdTPkkC2KWw-1N9AZnEpLyGZieuQHBA9zSskKpU_1nTubGCoOB9tS94vUPiYxxyAFVSJOFNOg25Uphr0AiGOUnVCAapO3T141Jcq_rzlQ49qSgHO5jOoUff9h2_jgYZs1AxeRdssXuAAO3ovkfjWlY6nRK5AAQ7OUmbum-M6C85L4NE6NCdbG9wmRhM7EWR5mv6AF6HNLlsW88GWK4tVcOzgZqwXtTlmNbsx93QhpWkB_MNhlKDLPTecL9u_3UXhbPj-vLG7v2zjQ9ZaCrPqwf-owf5u_yOpiWQKpkUiucV9U9xeUh6fCD2YXbwcI9oNpUnCwCuh-pcPqo-QPU9s-9XBR1cqRm5vhCpfHGzJOpUq1cYNW26dd7ua3BnFiireEt8Tgm7vSc1f9Z1xm3rDs61saQYy4h90kIQHLBb_YL5seq_EPVvTOASJd1RQiYHJHoaGR49pLab4O3fLMe_8pIF87kEHBQQ_iiYmOXW8vzRV65qN_BjoA1tEe4tmrzc8i3a3cDRq1BHtKlTn1-FS-LOTOIjtkEkB5Ibg3W9EJGTrzJkPehwCam172uJnqN0McBKODecQgJSD0EQKirp8x3uB6kgBkhYvljLcUKj5n7fDyJFHRe-_JQDOLEf59GoRoSmOgzZqCyAhnXVHcSoSCLcMpYhKWCFtxJ7aIv-i4F-F8Pg6YFq7zKJarvj40nGeNHfwTgLSx2MW6frCSPys2oaZGrdS6azL1r6HBDRDD_yPUzBGAMRjjvbs585RIpC9oaO5BRKuUwbh0szere1wtQkpi8ClEi03bPVuW8axswORWqYeY2sF6V0H_QTaJjhHodLbR8KiQiqYiqyQkgPA4eeyMEd0IkHtfO8MM5ApLnQe5N7PSWJAQA6hMVEJOvlag972RTzmqeulCb8ZSv-Sw_neI80yIoO1YFm2qSgyQLcsQRQ5WET5pTdASrBqXG6noMGhBG1ODO-2Sywr42639kE1J_G0bHsOEjUpz7ewSxQIcxNLr1K0yiwSqRngfUUweFRV6_xQxt8it-He5z9-QHaGD0BMU65XIQP-HAjsL46cGUGVI-1HcKa8vwDydbnhPvAewLrWAaDRladHOsaeb54Rj3_hiO8H7o3KH-jXA3J70tTOJ1FVqC-McYcHEgRxuFIAa_kIN0GFhQOx30Jy3XyFh8sOm98c3C8AGCUX5Y0_6upfboCxhXi3V6lbRfeJwELZCkbfopYYFjLGXkZWVkVSPEtMT5SrQD01tSd3b5KSOiEHHLHIyNz021mVkyCca3Ldb77U9EtBkE4kd3897Iqc40Pq8xXGOixtfCwRHAiE4KLUhtPFrEKhIyiOOx9LxW7HCcg6QKG1-aqeG3E0to-vmk9G7wJd69SC4eVGxQIXQuHIB3lQFaKVpNs0mzBWSLW_CUM-GY-INezLxFgmJA9VzosnejH0eLTTXUvRGPEJoMCuJFpjbvtP70rfA1yhBtqzBLc9IJPfKdLIUPjQWRwg_djwFOcrPwdy1Q0Y5Qmd3U4PchNXXRiRAT6wPgedoWNB9lWjvLBc6vojZL-IqyaylE4AqThmlgre-e0J2iLPGopx7o4v45cVM9okyx8V7dWZgUA1g8FaYn0OTfGJHHCL8CFBk5MISQExcRPl35eYW7BHRxt55dxTcxwmQW8U4F7r8pEackK_7VhKCFqTudHY4lmM1vKYA3puK4lTyY8WNYdsBQ2mOuQwrqvR7Ud_SmkLn4WQLMl2lt2qrzGvQecynIo9nyPa1V8dQE_M5FXKB-QVBh4dLy8pcn2_Gs0oa5G3vgSDSeVGTEexrxIpZIRgNR8BrAZ3iRpAq70SMT4MJBxwgliP8lR9pT_89Jo99k8Kf4iso2uIpz0RoElin06mFSC6wqiSO-hWrQm56RGTLXPlyPJ5qncZ5c8W8B2rAXqAumkniJOy68lIHWX4LwB38VpC_ZVRbQMT8kxwXoCFml_cXzrH5xi676DJysDjvXhE7oqdTTVgfhKmMs8HVGjllOw9UWkJCx_Udsi1JBtLJMyfTh0wCDntH8HtM3AKxJS5qt1bSLnjQXfY1aO7MtdegzQMhQAguHK9HWzZeGtIeDLOY68V9WUFaww9G1DdWIkDpEWAPG7DLy1EVvgfqZ3bWk961-p6Vz9Qk2iapDKStjIxSmPbnNG2rLiALNz0YSMqaDeVSfTk4AxyiMhzgj1gYoDIQCWXBe8qVkTIQ5EymX-FCb64FO1SdU1OSAywcT1lGV-O4BW-3hNwtLR3tLirCcIDwLKdGF_-FyFWyS84C0lKwMKOTPVpOehZa-Kd0J62I0Fn98WO4bldeog7WCQcq3kbCqCasRsG6ZWRoLjAkxZwE4OwJ_VbSKrRz8Xu2ArPLurI32hiHJGDki1OplLiiNirXT9j-KU0mbLGmGrPwc6AhcVaR2gKUYx7UWLNMAeA9YgCM-7vhNEaHTHOBO4RonbYD-59RKisvWg5PDM7vpder9tsOBOamIW8ao_k4UuSc69Cjz-8hY-7DMwofZdS0JjEpRRqOw4Ok7GapnFdUkdWGcAsgF39rnHTmfYau_VHWk_2nWYg-f849ixw1yeaI9GlzBcO4JLxyvt7eiFi_UfZGalPOKgy3WBb5fjE-VPtrqHEEd3Zm8mAqrWQ-KHvxO1OItzn756Ghi1N1uH192RQLcvOooAz6QnZ1f19GYBr07EbsVioLInxjEBExdS6em0KgKbepO2p3_CGnVviNDBQQux4Fq97bNes4iY__ZSQueaHA-sokjtk5C5-xfzRspO2O809IO5FbXpwTs7N4TN0kAjGI2shmHmPaJi7xn0broqYmLAoYnOcVIQYcpO7D-dbYQKDaDEOWX9vvxv2NRRgc6LA60-in8SliMCXPxkxJaGbxULYlhMnNtyi35mtQKO9kpkWL3827XkBy_FdmhVwEImFPD_S9-PFxgrxFJihogl7x-v85fuMrmKQO5hTLLbVSQbH0jEKDFAVtJtze1_X-4NX1NOyL2vQmmboBVYBkJV6QdA5QEYgZNWjRCDirk1LIvzETHZpDJcIiWEYa49K3QrDYVh75EmvQdSEGxoOV28fwKWniC11xbE2zZtX0QuvXYMEGqML-Qz35AdJKpKlJDNpAEES1NQUjeaD70ub2XBxTC7cFUTyVMLxLc0JOIw_VylEt5QjrjK4xlkvBPXlw16KMOZ0vS7pqbaPhSvRQWLGyxSxWQFaUlZlM-f1DH2dwcFhyYjP10dHgQqgrAjA_e5EbFjibptSTVEBhfDxKy5Mzzu4JuzuOwjRiFQheE5HKHpDpQqdA5RcTVch-peiznZHfSKLJRlRlGAI5ANdKWnWmeoq_VpBHdEI94HIayFwt4N8lJgZfTv4H8SPhogschD-6IxdxuF1krXxH9pycL83R3hfIqfRzU5NwLGxnGOtY6iZHKOKJNpB9tvnNy8F9glC2weKW6sX9IdWNUVjvRxRAE1eQmTAvupM2j3gq-QeE489LKpS4wdQ4fBCxB6exZQEA6raqJFEpUKAZ7WKld1lTPvpjDzQh_uTW6E3T01o6ST4YM6F490OdbQtJguYGXNO8Tt8v8aKrfkTVKgBhF-3MAxokcGuTHuAaX48voBj4cWb0PuOm3O9CZaTF2iMk1nBqoOnnXSdoEPf0V84aelywFhv-Ha19SU3rgwlEgNc5324xfBawOGa__oyT45RoQZL493yr3KTQeio_kTnlnUFHbWkTfVKzLni1GIRMM3f1Iw595bAlFZNQv_Hk_F9MN7FoJqP2JaDwIvFcr2Zzjp8z9dr1BRJuDYX836yF4eZgHWJ_QwtBzp8ivRJR5cGKB7MM-b8Ge840VHxVfNQZO45u9pwgUI_UeSCNOoOeeYHIQeCiGJ2o4tke604ScBfiUtY74jE-9atuuJNngg7H6zvRE5T89eC0pb2Yx0_itSph-hnc0DlpGPwPpXcHtq8MvbJAeF_Ryn6FrVyLOaUGFeHLo3tqWZx3E4lQnRfhrFxkofBuxLKdfXVq1eUr_19O_otVsWtD6EXA-mhUXRWU2lrC7WB0RLGcw8hiHf8aYGwikGpqFbJfcaOhSThmFwqovIJoCaQfiIt-sJ0p-vFmszOmBzknIZY5Z7aE-J9H6UTyAb96jmAsOCQ75_4MEZwf2yiz-yT41x1xxFFENdxjqqpB6DFOH-B0PX2o5QTvKW_q3dOz8K9krmLGLozVsX_83lDcCyaUqCtCn2v2CBxa0etYPQh79wWS4s84fzSO092pYges_6o5Dczw3MIfDATEdOpnx5OCumeHkUzPHZmnethxVyDV6aLjp9w_cunifHMjBDpqRANec_l5kuoK84hSibJYHDGUTlzaZxBzMT6LW600di-5fX-z0uGQ6v95qSdvogA9W2ySkhZjWz_bJyWd2dMurZ4ZQWIo4XqXZ7zS-ODx3148_hYKzjSZ1cVnujYWJwr0wa0LBS5-HAEWXUaO1oPxK5eIZQzh2GK185biihI9fd5nQ2O8rLJFk7Knq9L04sQFG7Ul7Z4N3xCn_vLZQN6SVr-CNjmHeahCTZeR5J-yLzdZwlTuRZZ6Wjn202EhA_MdqcjYVBdjAYfG3fpNH4OvqM_PIIFftRQnC8EV6qzDeqTISb_cfKj3JwLHmeUsQbebgCw5uFeIzQYkUVJH9o_GVtjmtZxyQe9cNCMJo4ehDnc7ZDWTPJ5L-B4EgUVNI5zxd_k93e1e14WHDcL3p_NWgPKX87i5G375xGFttZrJ_IC59kZsfDQ9RPcodRF-IyirJzWSkjs8qwo0djRC4OxzE1xkPRng6zFu3e_4yyLBTJ6HhNc0RQ-vzVPhz3LhhhvC2mXJ6TeUqRKc-HgZwhHKHLB7CqEkGc8GGJkB2aztxJE4bUsSWyacAUKuf5TYQ3xANUDQnK9t2eIWEgOoFyS0WeZ4kgUoh4rQB4Fx0cPyd3rFBuoEhBuYjDmvjdJW666h8kgC41_5HLfUmh-srwFsgHwdPdV5STJodpAXbZixmEFU4DT9h8-GYMJwbZSWIXi7n6t7SiZ23X3D9pYB54k_YODkFvPxju62RXqwm6IwwktUuLE7-qa2yuVbO-fRwUde6ZzYkRtZS-42_ZMLajH3-pFJ-GoBbfSmuYE30wjBa5mT_tzF_4vBDdzTvCJlY7Ucwf2KnQDQFCMCDXUFfrDi2Yna3_HtVaX-GmF0breQauWk8mENfLF0kPwCSXxuCHkue8JBYmdpSvY9i_HkZKD8GNSuLQ-rxiqOUeLt268lJ1DQ3TA4aiEwvmkc0ejagrV32KXmJcuqcP55odTqDwNYBiP7c0RAzxd0oK2kTHNT3mNG0umFbq0G5DJA_7i1Tk06wtlQzylekeblJoKS_jPCAugwGydRx51Hx6YKwggRk3DDGUspQBLzhWraVLLI4hWovdQurUY7IYeSCruMeakocT3N56ahNJ9OQvLJML6yi0Vc6E9oAL6u-8FfJ-F8aCuq00ooCOxoMn-2JP8DD1M3dSogZapJI8XSahDF2LgfpUgW0NHFPPAFEAPs6cqUgO2Kf9w47PueA2WkioLwXzcCmKvfQpWLmso9gpIc473z4=" - } - } - ], - "blockchainVerificationKey": { - "commitments": { - "sigma_comm": [ - [ - "0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC", - "0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37" - ], - [ - "0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC", - "0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4" - ], - [ - "0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB", - "0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D" - ], - [ - "0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05", - "0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E" - ], - [ - "0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB", - "0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B" - ], - [ - "0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1", - "0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5" - ], - [ - "0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555", - "0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224" - ] - ], - "coefficients_comm": [ - [ - "0x26EC10122354E7DEC10E83F7D26D4311863753F37489FFD2F5D634958C876CB4", - "0x25AB47DC77226E515B05BD2C1DFB025477F54FFBB9B62F4B2914306C2D1AEB6D" - ], - [ - "0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922", - "0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28" - ], - [ - "0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F", - "0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6" - ], - [ - "0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236", - "0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A" - ], - [ - "0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614", - "0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E" - ], - [ - "0x2EA4EF211B04C50C1680CE1E38DACAE3EC40FAC3216A6D4157B29D6053C812E8", - "0x310B3ECB01C946FE01F766DF1249FD36E4AE2EAEB450D93DFDE08AE9D24BB7BC" - ], - [ - "0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121", - "0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E" - ], - [ - "0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA", - "0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B" - ], - [ - "0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F", - "0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89" - ], - [ - "0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766", - "0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE" - ], - [ - "0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036", - "0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455" - ], - [ - "0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103", - "0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4" - ], - [ - "0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E", - "0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645" - ], - [ - "0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF", - "0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF" - ], - [ - "0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39", - "0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567" - ] - ], - "generic_comm": [ - "0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B", - "0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C" - ], - "psm_comm": [ - "0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324", - "0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B" - ], - "complete_add_comm": [ - "0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B", - "0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688" - ], - "mul_comm": [ - "0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5", - "0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689" - ], - "emul_comm": [ - "0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9", - "0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9" - ], - "endomul_scalar_comm": [ - "0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD", - "0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244" - ] - }, - "index": { - "domain": { - "log_size_of_group": 14, - "group_gen": "0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7" - }, - "max_poly_size": 32768, - "public": 40, - "prev_challenges": 2, - "srs": null, - "evals": { - "sigma_comm": [ - { - "unshifted": [ - [ - "Finite", - [ - "0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC", - "0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC", - "0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB", - "0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05", - "0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB", - "0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1", - "0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555", - "0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224" - ] - ] - ], - "shifted": null - } - ], - "coefficients_comm": [ - { - "unshifted": [ - [ - "Finite", - [ - "0x26EC10122354E7DEC10E83F7D26D4311863753F37489FFD2F5D634958C876CB4", - "0x25AB47DC77226E515B05BD2C1DFB025477F54FFBB9B62F4B2914306C2D1AEB6D" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922", - "0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F", - "0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236", - "0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614", - "0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x2EA4EF211B04C50C1680CE1E38DACAE3EC40FAC3216A6D4157B29D6053C812E8", - "0x310B3ECB01C946FE01F766DF1249FD36E4AE2EAEB450D93DFDE08AE9D24BB7BC" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121", - "0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA", - "0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F", - "0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766", - "0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036", - "0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103", - "0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E", - "0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF", - "0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF" - ] - ] - ], - "shifted": null - }, - { - "unshifted": [ - [ - "Finite", - [ - "0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39", - "0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567" - ] - ] - ], - "shifted": null - } - ], - "generic_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B", - "0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C" - ] - ] - ], - "shifted": null - }, - "psm_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324", - "0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B" - ] - ] - ], - "shifted": null - }, - "complete_add_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B", - "0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688" - ] - ] - ], - "shifted": null - }, - "mul_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5", - "0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689" - ] - ] - ], - "shifted": null - }, - "emul_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9", - "0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9" - ] - ] - ], - "shifted": null - }, - "endomul_scalar_comm": { - "unshifted": [ - [ - "Finite", - [ - "0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD", - "0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244" - ] - ] - ], - "shifted": null - }, - "xor_comm": null, - "range_check0_comm": null, - "range_check1_comm": null, - "foreign_field_add_comm": null, - "foreign_field_mul_comm": null, - "rot_comm": null - }, - "shifts": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3", - "0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6", - "0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D", - "0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4", - "0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484", - "0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1" - ], - "lookup_index": null, - "zk_rows": 3 - }, - "data": { - "constraints": 16384 - } - } - } -} diff --git a/batcher/aligned/test_files/mina/mina_mainnet_protocol_query.json b/batcher/aligned/test_files/mina/mina_mainnet_protocol_query.json deleted file mode 100644 index d7c4b5132d..0000000000 --- a/batcher/aligned/test_files/mina/mina_mainnet_protocol_query.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "data": { - "version": "da70596e4d6660394388a14875926d752e51464f", - "protocolState": "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", - "bestChain": [ - { - "stateHashField": "10739247575158192228739553163490698149584648921391242737049516468492645783469", - "protocolStateProof": { - "base64": "_AzFacptM6EI_IuGEn36D_DDAPyJALP-mtaLe_wRKLlqjdLzswD8wQc1hnC4z3P8nOfrwyXsm3IA_CVPq1cotlsK_PKA6zqDmK-xAAAAAAAAAAAAAPy5KqdWtHBzrfz8nvHVI_lPNgD8AHwvjmIch1n8h8wmonP2x5wA_K_ytp4dglQj_H71ffbRa7nVAPz2hpCg0Pd7FPxoKiRAzmJeYgD8Dq1WMmMbxq_8--EfoRBygAkA_JFBrMq-Hlj5_KbJtz6Z1R5XAPy9w2TNo1BOqvxoxf7BCucU2AD8bd5egt-sHbL8pQfbxReiCP4A_H-q5unWD06C_Cx_uU6YOvb8APzKBBtxK4gxw_wpJq62x6w5kQD871GB_UePD9z8h5U7xEN6qQAA_L8yhtEe2Dhg_KsFqqJwvLP5APxaR6_l4NJ1lPz20sOuAqfL0QD8BHwt-fYPeL78VOL7MpFYPeEA_BN1MbgSt3DG_Ag-SJozzHUWAPzRuMqxorDBSPzOsXHA4wRmGwAAAhAAAAAAAGKZVEkV8JvnwXkRRC0lSEBTtFkF259BVjBh_X28MtMPrNdShffBok_HsebifDwWOlWmsec2OQMdBOulXlAEBRb8b7_mrMmzgjP8Yxh2-VhDl3kA_JeHiOkGKzrd_MehRClA5nrdAPzLn5z0MOXoxvzdnKDNZbvdBwD8Expph6JZLFP8e29lKrC8IakA_IsHEI-xd5zi_O4Ma98AX1z4APyHnLAHLae9HfygJl_p4pcbTQD8EV-AVnx0dZz86PHO-mlj_qEA_E1g6dvfiitc_Jv3EPKMcYxaAPxIa-BRXLPAIvztbalAc4uIpgD8bmR2XrXXB5D8Eo5O2zmLxsEA_MkrPzde40VE_OXNjPwVx0CdAPxOqrxLhIKYQvy8t6_Q1yeplwD8d279_1s9ypn8lEJcFVVq5u8A_FSZlyFxsn1L_EDIk2Hgoh-VAPyzRweyvszRLPwdAmTyPN7RWwAA_G-_5qzJs4Iz_GMYdvlYQ5d5APyXh4jpBis63fzHoUQpQOZ63QD8y5-c9DDl6Mb83ZygzWW73QcA_BMaaYeiWSxT_HtvZSqwvCGpAPyLBxCPsXec4vzuDGvfAF9c-AD8h5ywBy2nvR38oCZf6eKXG00A_BFfgFZ8dHWc_OjxzvppY_6hAPxNYOnb34orXPyb9xDyjHGMWgD8SGvgUVyzwCL87W2pQHOLiKYA_G5kdl611weQ_BKOTts5i8bBAPzJKz83XuNFRPzlzYz8FcdAnQD8Tqq8S4SCmEL8vLev0NcnqZcA_Hdu_f9bPcqZ_JRCXBVVaubvAPxUmZchcbJ9S_xAyJNh4KIflQD8s0cHsr7M0Sz8HQJk8jze0VsAAAAAAki1NuhGVKVfT_3__fWRvZ08oXBLzvBcpZ3CZEje39MRaxosRN0hx81ZVe8Zw_OruEIOG3rlFxTe14qETSIH9QVItTboRlSlX0_9__31kb2dPKFwS87wXKWdwmRI3t_TEWsaLETdIcfNWVXvGcPzq7hCDht65RcU3teKhE0iB_UFAvy5KqdWtHBzrfz8nvHVI_lPNgD8AHwvjmIch1n8h8wmonP2x5wA_K_ytp4dglQj_H71ffbRa7nVAPz2hpCg0Pd7FPxoKiRAzmJeYgD8Dq1WMmMbxq_8--EfoRBygAkA_JFBrMq-Hlj5_KbJtz6Z1R5XAPy9w2TNo1BOqvxoxf7BCucU2AD8bd5egt-sHbL8pQfbxReiCP4A_H-q5unWD06C_Cx_uU6YOvb8APzKBBtxK4gxw_wpJq62x6w5kQD871GB_UePD9z8h5U7xEN6qQAA_L8yhtEe2Dhg_KsFqqJwvLP5APxaR6_l4NJ1lPz20sOuAqfL0QD8BHwt-fYPeL78VOL7MpFYPeEA_BN1MbgSt3DG_Ag-SJozzHUWAPzRuMqxorDBSPzOsXHA4wRmGwAA_Lkqp1a0cHOt_Pye8dUj-U82APwAfC-OYhyHWfyHzCaic_bHnAD8r_K2nh2CVCP8fvV99tFrudUA_PaGkKDQ93sU_GgqJEDOYl5iAPwOrVYyYxvGr_z74R-hEHKACQD8kUGsyr4eWPn8psm3PpnVHlcA_L3DZM2jUE6q_GjF_sEK5xTYAPxt3l6C36wdsvylB9vFF6II_gD8f6rm6dYPToL8LH-5Tpg69vwA_MoEG3EriDHD_CkmrrbHrDmRAPzvUYH9R48P3PyHlTvEQ3qpAAD8vzKG0R7YOGD8qwWqonC8s_kA_FpHr-Xg0nWU_PbSw64Cp8vRAPwEfC359g94vvxU4vsykVg94QD8E3UxuBK3cMb8CD5ImjPMdRYA_NG4yrGisMFI_M6xccDjBGYbAAA6PGEyR9EE3YxctI9ZycvlAjfZwksavOFt5bC5qZVPN_K6SgIy3_BdUryusTZvur9-D_wscMYan9MzTVYfUu4NAZFybfMU6ohMg5uZyYwMBIrJb9mVY02jrYcwm4cGvRcyAUT9NbzTqkpk-PtboA1O3r06rPJeW2l4qXOi4SMKH7IWATZiy6C9nok12DD8i9j3LiUazqifKXguHbIEIH9mj8oiAbKXgLylZHSdFvnkYWGGjhuw1S9UqCqifTqeahbmA8UYAQ5hecZuoLB8gtts0SMPxhaSut1RZ_qIt2lXmtJv8bgGAY_qMJcltWdvZuLn3kzz0Ofd5oeojuv-gZOm2sWDR8E6AaYUXjamNkTUesbOkhefo26mF6KY8Qg86Im0ygmvUcYcAd_ZeC_e6MMuV6Bh2DMnbL9XzTgkAcTcKX919ukIDPASASmkGJFHwKWqDsHf_kowkf2HW53CH-dCQzTYOfRUgxUjASmQRP-Dv9Mjjkm-oa-BgycS2r5STXExtnEV6Q8EEIQyAYhpJddFLTbQ574zHGl3Hc5L0gGM2A31KzvTmN5ADRc8Abtd8iY33R5xkzi0OfdZQ2cg0BiNXxG_9ZIjMXgQNH80AZgpRK5PEVqA6-eAg4lBWhIj4KpWHaTCOMcaz0aKS_woAY1SjIZXKSTQBUTGZ1AkDAWVDeDYc1FAc78m89OAYMUQARMjnkaifpINMJNbzWollLJGbVZ4t4eFtG8OAlVUlrEXAdIsMwcSIrttuMXHi69UgcoLP7-85gfIZ28tK5XBbb4gATKKvX0ohceTcr_LtpFLUeLLPnvdLU4jc0XYdC6Sv3UnAWZA7oB1BZZmSe32gQ-A0zA2BGrQM4XdH2mAJQyv_XAIAYgoFDGCTKmZM4cKyk9cg2U7tz1E7G-9TYQchXUhnscPARVKU4BojQx-yjve2IP1gIfv949-v96DB3FGgL9-l8YOARmqpJkw6bKiRBto0Z1j1xOgVpfygHMRMzlSlPZku2IRAcUV9RcO3D8JcVj42YlI5rJFwHjeSBTxUXie80n5FAQCAUPBQCz_koAF-2QRQgrQVvZysAJ1VX0s1u1F61VJ_L86AeFVD0JCRca10RW7_010nTo4zrBV0gv_OybE4oEosfstAap9Qy5G7Ag87unSTftDg3E6QoakqfdrTJnY2VyYztgxAUm3AonxovG_2xV1nZ5um1pteu2vhhsl61mRofM70JgPAQjbjCLm7Tn6plqfs9roiHsbc5usddtSM52OTe76vm84AegRmK03P__TnOWemols3AdERSLCXz0UeUrSretqNDQkASRQhAtW8jVeb8al0MstOxegNz1L-Bm0GmMcti2AcQkUAbOINmA9szxWEdW8hv5wQZl7frZbY2eItk_pLmsRENIEAAEvwOjTlWCgsCMWjWpRghNlWQE8N9FewsLuEoPGubd7HQHCYmpoFFNIbqXUE_DqAwz11zHwq9_mMsdKKmmDte4PFwGFWckwTe35TyNm1Niq88nCr1wqszmKWu9My4OaUN68NQGdCffOVUZW4gI_IpwEhZc-V2_3Eo1FkGiWw61W-xkgAQGtC9t5svFvTRQn4Nr-cMBjEPpGBrk-tEKCU4-D2ijxPwGV0WIswKfy24qZ2BVlNNVyB6rzu8alpqGjFc2SQmiCHwFS0reBvhwwDB3LQCBfYCQHWpkLPtZAaF6khi9l6UbpGgE2iY4ANf6-Fu6V2JAx31oQ1WHZmK7QZi9deLsMF8vYDAFxI5ougXdG8pcPqt7xrkNRXIrf_CCxbxlGt8LnQLK-MgEhErp_10lnQVY7lIh4YSpf6hH-4X9Iu7ALrs9733jkIwHu3CQpAe6rrMu2XSVx_8Jo__W7ZvdUJaWnt1n_4rMoDwF7DTz4lANzls8z1DLGEf_TNvmGWkqP0h9NuNNHbmBoOwFdyzC-_PLz2ZYuTi5MogrWTHpyxzBwlHIaR1F3n8oiIwHEbrA7kGr-BD0iUMbnHPhQd3bBvCJGInmA_EJ3BP4qBQEKzCtv_aYC-uIHNevghsaQ__iLWwvw3e2xnwM6vm3wJgE3jMlSF-_fiEjkbNvvN-xMoO8jqbkknuJIHbkZU5CCCwHhXODBNtpjzl85oYYtmwUEuH7GswTgiAeZfYZLKuXnAwENViE30_FxaxBbMuOMCBvP-iB4vqKIjSdvNUlKRR2ZMAG7wdpIm816ZRuiURpesbuExUAOd4IrVVru3_BarFqZGAFXzb1Ke2lZRwF_8Qw00e8J5Amy1Wvmx1y8wnSsHygTCwHmfEbSm7zz9JhzAnA_Y4w2DABjmIxM_PL6LQTr-clhAgE2UeOYb14khXPRV7mNhBzZXQm-zOQGSghRK_9pOIFfEQGRF9HtRRuJy7tDdTHSQMC1RmrWUR_NGb4AGrz0YbR-CwFsw2cP7MfLQA1G7MePPyAHoM6iXjrMdjBp3nwxS_e_LAGlY8mV8f-Px-qgGxOywW301TZCoZuobwfO4e3v-zItHgGLn3KkrMs34UEblCpceb73vxW2dKSyuq6hrSM1J3gVFgF5PVHTzv6k90PIbpYsCsMX634CwZIIFGgJln0oBJBeOwH5pqK5yQpGt0OQozIY9TfNYVfubRpsu5t5cm45cp-7OQEADEZptNyvuzC6VEKWLA41KBizlxVqpZwAfh8q-Ym5OAFAX7cR6un8p4h12422YYnFbUJv6gaPKCb-XLCwr-BqDgABDlAZ71lbeW-HLtrodN8-a9HpRCSu17pNesX-WuIlJBUBzs6SSvEomyJvu2y--Am5RCKp2R8Hgq2g2H78g9AZuRsBSk7p2M7zfnBNV4NuK9QsaWRm4nGX4WblpKyHr28XqSQB3n5X7QI17RMV7nx2WC_oXvE0EFcadTe81705GfJm7B4BfqjA-yV-URjlSNnH1Z9YWMoVO594UGIxPSUOJOIDKRQBnVPIW9vIufiV_TzyhUCa3iTQd8ax-4hL6O0DpgkgehUBmYTeWtMJHFI_kNtnklJrNrPQk2vaiqiqghEnSOGq-y0B0j1EVVxWkyQGfYKBdjKktIvjFCZxAaCYcxlyddAoTwUBjR744krPNeaPQESAMkNS6SFkW8NUsFZE571Os6gOnRMBrbGvz6_-dWlla1TVzjn3wRpVlY9j9DLvupqpYzTj8BMBDRntusuc8Cu_XBwQU9QiR5UmhVA4wHJ3KgqXDzpU1SUBiaxwUsNvUKibzQYLpn-pRG3-sLbYCnTvYX3Ur2bMIDkBrF0QVebcheaWzeLkzVjkEXVWYi3mFsBLNCfrz055ITkBouBUxluRSy7Mo6m6ozWg1qUBnPuxnOBz6tUuHw-WPzAAAd5kv_MWM4OvImh3TSn5c4JlaSWjhG4I0bnb_YEHCVAIARp5ySBnrzqT4447erVR7TDLJZi-PVMa_LMWH_RkUnkMAcMYHYfQq0qZzsiFs9TeUbC8oyswbr7OjcoahyvA78QdASiIwnFkuQs0GpeogsVFT1hoqNaHlrPxjvVCgO4_lig6Ac_m9fzHUjk9y_yUElbCuoSZ0yIorhrdEg0PvszZOJIzARfm_NoAYyHSb2jilosISHY2B_gy-a2wuqcaFbkveYglAf_bTpCddyllde8WLbcxWBaTqK4aJijp17EU9uZIMjAKAUASitwyPOzSS19N7_g0vpYMkKXJfRbObRI-3oyVsr88AZL1_NwMTNP23kJ5SLB4MS4LN0S2STK1WvYUHOj-btgsAUyx4bzshD-rfjd4D0SIDVjr-jwotMDJE65BSVpbz1sZAcDITf6hUwa7licVuSHAEX_enz-d_6lzT8qXfK6GVJA3Aa1s8ln_6tGNOv04L0EOdxo9XQ8mFFT6aZaT2BxFzIA8AAAAAAAAAAAAAAAAAAAAAAAAAADfFIsPJvAfi1Zu3B5RbKkhShEa2pj61ErHDi6kSQlXOwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwBf7WaQKIibHJKl8UFjM_lwQ-QbckeUvnrUlLEJ60YwCKQbb6CBlRSd_nBliNNvqE0Zdomu94rAdJl0dllnhoEDaXlKoIgKPevyE8Q3Is6g9kqXaFp6s5Pa9ImS8BYyrBV2Z2Ql6HY3BcSnLE6gxakcHe6oNmQPRnIuciJP6PlEMkxFg96rSncZ6lI7T1YmX1kb9UTfY8tIEqLV7B8ZfxwUqQo6KIPhdezV26TVKEkCtWuqotEd7mZ3BHUPkF8gViC8g8fic8QRW0ZfoCzNCwubnnZI3YXl18iekvMFsKIBL54BSppTlA0iMXbnXCsKD3xmU36vbVLAwPQNXY_GbuU11EsiOTZOB4lB-rhHtowcba9M0zzvJ--ghUBS4RJqhw4D-zakbniFVJhfE_Box0riSjfoTpwGbDxBKQIMAmgBAXjLfxEI_zI-1yEANarSOeGWBh8e6_NBSMJlhAITPVAHEDdmitoyunH7NCrgAZf_-UEnOr6ftLtFR23A66Llzh7925nQAmDVYr65rJoeft2Ltn-r-EjSB5jdxEvzs-NDNMuAYPrSN6yrwVKFMNHCgdsaHXAfUphv7q6aRzZlRbgL2TwlrTTBFZYLae1PZY5eylm0lHeq-X9jF1v364JkGDmm1mQmI697mWJvqN9qiomxij8tDsBTI_Wzf2njemAiKzltKoUJcMS3ZZr5zwUN1BQ5OlolEVYJ7FWXeIF8v-YGX41FSQNwr56cZdku_ZOW17EWJCs5tdFwQAYjD6bj_RwWPtny9tH3Ez-NXk3u-Ugbapncl6cU5HooP0RKrOngJ9M3OBLWVOT99iM6ZLZK39OtRifN5qXW1xuJg_Y_ZkwpTMVLMejFlc_Ym2R8zwv5VCO2FQXJoST5pQG3-FIABTLMCWoZ1eNoKa5cd2_0OBNLa6l9DIXrFpoF23Qg1hw9GoZ7_oRnIF8wPyS5TJcUO7YIjyMaictxksPOuWhHUX8Ni8xLg5ERG4_WJ1D02y8FBJotAZF0Z_LIIhrZ9OG4sQB8T_Y7BnpEbXeeH7nOBTZ65vQc_-b9iWcTC6FnSMc8A2n8c09qr_Mu4CArkm5n0QPKiNDoM74GePT3UpGmmO8y4i_MC-fg9HbN7iLECVbnILy6j3uVaZNCuQmHxs_ccTAh6iZi-hN-UhsQ5w1HgFkY9za-n6HqUMBpKV6AkVPTDjVfCgpHQu2BNFGm-XdohA2Relb5tmcXBBk4z9lTCtQ3ZW4VBuwhUXqAieE42n7RTbRe2KGx6PDxo65FryquySoAhJZ8MnB0A6hoc-3LMlPaDUL1skkSGeaYvb9Zk806HDolU5b8bMIWKc72o42cmG5QMWu0Lh8oo-Gvhx91afrLDUbP63XVP6rb3GBVTJm83WqFJfKm9OewqCPtQN1Q_A0AaQqY2UshcO37P1ab1t7vqcyhOwk9lZsTbuAdL5hrDSRujobz21FKPf2s93UGaAvqMNDoRcPA1lf6TGTJWhslKBL2qIf5m8UVM-ZRmBDHndf-fNgPjYy0g6T2UmRnynMeO9d3ZgCHqNalqD9kAAa8p8E238w1kwjrxET-AOaCaxhzF2u7xMNaQMsC-NlyGMrNmPJj3Vi1ro_BuBXyycXdKTxhquw6m2ESb7OBlZ-VdgeUrx1ipTlIIzC8SDu5aUwGtZQxUPGqxd5TYjuLrV_6Y2WOq7xjjnpjJ7H_qSsxeh6yc7C8cf_r8cXE4BSKZekGWySIh7vomWB9AvEXDHtGAuVJuaNsucaBdRfn1m36cfu22AmU21N_m1GSfPMNcIQndTPev6o9ei-4Vn0Zv2JWFGyivBIbUjz75CeS4LNTIixX-p-2cb4NijEVBPExIhGGoYvgRHcQcwxLuqdMo0jeMvTR8Icwfpal3S1B_SIBfAnkkG9WJMmp5w6FFYMr1Ew1AYXvV5AAHL5uTgiUQPxSJJx5u00xIIr3xdiBCNzHiRbcPj_HougTcGBQNflgy4hU-4M1GYbMiDP933r_OvywFVNJr1CR480YwJLtlXvjcdebyj4aM78Pg4isGJEllEEE5yK_CzhPwUg7pQ2JRgTcVUbkNMTKtgAcwrxZ-seYWip6SoSnVl8V8rXKTA3N8Z-Zk3EJuWsh56VB0UIBJBZRNugJP1bEjlQA_tXCqGro2zOFY_Wn6jGmay0IM-K3OtYMpmFjPtSXHsOlATjbtnx9SEK__u-xA-WNk0Aa9wT0zB32gT5x8SH7qmYdy4CUXvEYPsPPELfGNxhKUDsarpEIC1K-m_DwuxGRnVBt8Du4n_a1OpLW-A8Blh3FQCVcmFQgfliyT9Ip77FuEgWmS1y7mGVmr4Qa7GpNjaVCAF05dhWXmvgmC8zpJ5X0EjjPNNd7Q2Dh5BTRx5N9rGt5503lOfNyjRaA4QloG0tvgBH-pqdY-Okn3C4W7PPEGb5vlXYWeGT_NZ1qIHtyPxh_d4YV0vBzKzevFpl3lM-DSWTYeTknpnU-PBa5iSHVPRhUAuh08xioGf3y86xmZyYgRaqKJmZOfKb-k_FR8GlQi4Jq1dBscVSTGMvJEdprdNBu_igGAC5TYFuAGtf-p0XpdmrdjantM1iddY-zOf7UDDKcWaont3qHiLB_fNHJxhYYdVzKPQ0wOnsJYSTODALcX0UaDwMuHmhzHQC4RyADiCN3fsZSLZoenjZZIMPnzgZK3gwuHtltYuVKCknTpEyRnrSwiTM9ZKI27c2hkhJ0rGkDutk3zOOnjfokLYxT6JRnzJht_TMtuYfXbGbnc1pH7zTpDyjDfWkshHOqmiRruF5cQyPNDFpp5LnOGuFg-WFEfDGuLtgtOHF4Qr3jFxV-3xhqWypawqA1oGmxihu3kNihtg4maZTicPKEpVfEGK_r-qyieUyK9qR2yxuUeMIF6KkBFw9xcRXllxPIT4i6vi7AKSUYBg0syCtU6anJotKofOkeFV3ZPJssP87jD6NJYPJHL80E2d6EhvY1ybltd2-uMSIfqE-UoNbWS-C5cEm5KuLFioy5Pnkhefq1f6MsRpWr5yQsfGqlEjtBqo6s6Fp-7rjrsiIZyTU7knZxEZmqqAGCFxbrouvan-rEQuKe-Sk_XEV2kz1TGm48B1GONSJBBV893PWy4SRTuDacQg52raD7bG4XPyJxqhnsbbgBARJhFgUANTYtmG8gxZjlPD3guPxBMASEJDFyr4k8yZyhmaoWFjzwlR5qOF-06oteLPDonlSAepmTiwq2nHfxubIQoF0VLje--p2Axij7iz9_UxaRLBdUJqCtmoPbeAhH1jbxzKsJ4A02zCtgdsIxhARsCioGIIUhVkT-KVSaYlICUFW9-xxr3yMOwHqRUxnGBq2TDEHdfwlyIq2id2pITnVf6y1JHO6AK-r03brztpaYaJ1-drZwyqZd29khlyJ6sMjfujYktcmNOogeqtVgDYmSDf-DAlB50nvePOrdFEJb_IpA0xDARBYoASUZ12_vAQdDTcVrsXTn0WEM3i_IbWqnK3WtGs1xyK_hpxny5eg_znlB-5oxPiuSYkgK-mhnXc-rZLIK5YAJPSQEBvZoSzE85AZpvVuhyN8-1TztL0c8A3rxmgiazJTZw-e932ajI9gr9UUZu48vW91I_s60WoveCqegOZahBkIRtSvDTSZYeHUHJOjVUq6c6PrlSSx9FKnmbnUXzioSgyJqnNMLk4KXtDxWzAUyzyCAcSQAOd4bI87hZwsPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7Ku3KI3rPGXFHPTPUW2WPVO54Y_Cp31N8kxIKo7V0GwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQbUb_BCBPxFRvEbI6OLjq80C0DMk7W2pv-_yQMNv0Ldi8fkz2DkvS4mRSG-22i6f-ldZg8bw7cDMXRjeHquvUVNQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuyrtyiN6zxlxRz0z1Ftlj1TueGPwqd9TfJMSCqO1dBsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALsq7cojes8ZcUc9M9RbZY9U7nhj8KnfU3yTEgqjtXQb" - } - } - ] - } -} diff --git a/batcher/aligned/test_files/mina/parse_proof_query.sh b/batcher/aligned/test_files/mina/parse_proof_query.sh deleted file mode 100755 index f1c2f8ebcb..0000000000 --- a/batcher/aligned/test_files/mina/parse_proof_query.sh +++ /dev/null @@ -1,4 +0,0 @@ -cat $1 | jq --raw-output0 '.data.bestChain.[0].stateHashField' >protocol_state_hash.pub -cat $1 | jq --raw-output0 '.data.protocolState' >protocol_state.pub -cat $1 | jq --raw-output0 '.data.bestChain.[0].protocolStateProof.base64' >protocol_state_proof.proof -cat $1 | jq '.data.blockchainVerificationKey' >devnet_vk.json diff --git a/batcher/aligned/test_files/mina/protocol_state_hash.pub b/batcher/aligned/test_files/mina/protocol_state_hash.pub deleted file mode 100644 index aedb7ac207bb3497da14e1f19f6d0566316cc393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmWN_!2!TP2m-K bool { // TODO(xqft): add message errors - - let protocol_state_proof_base64 = - if let Ok(protocol_state_proof_base64) = std::str::from_utf8(&proof_bytes[..proof_len]) { - protocol_state_proof_base64 - } else { - return false; - }; - - let protocol_state_hash = - if let Ok(protocol_state_hash) = Fp::from_bytes(&public_input_bytes[..32]) { - protocol_state_hash - } else { - return false; - }; - - let protocol_state_base64 = if let Ok(protocol_state_base64) = - std::str::from_utf8(&public_input_bytes[32..public_input_len]) - { - protocol_state_base64 - } else { - return false; - }; - let protocol_state_proof = - if let Ok(protocol_state_proof) = parse_protocol_state_proof(protocol_state_proof_base64) { + if let Ok(protocol_state_proof) = parse_protocol_state_proof(&proof_bytes[..proof_len]) { protocol_state_proof } else { return false; }; - let protocol_state = if let Ok(protocol_state) = parse_protocol_state(protocol_state_base64) { - protocol_state + let (protocol_state_hash, protocol_state) = if let Ok(protocol_state_pub) = + parse_protocol_state_pub(&public_input_bytes[..public_input_len]) + { + protocol_state_pub } else { return false; }; @@ -88,25 +65,33 @@ pub extern "C" fn verify_protocol_state_proof_ffi( } pub fn parse_protocol_state_proof( - protocol_state_proof_base64: &str, + protocol_state_proof_bytes: &[u8], ) -> Result { + let protocol_state_proof_base64 = + std::str::from_utf8(protocol_state_proof_bytes).map_err(|err| err.to_string())?; let protocol_state_proof_binprot = BASE64_URL_SAFE .decode(protocol_state_proof_base64.trim_matches(char::from(0))) .map_err(|err| err.to_string())?; - MinaBaseProofStableV2::binprot_read(&mut protocol_state_proof_binprot.as_slice()) .map_err(|err| err.to_string()) } -pub fn parse_protocol_state( - protocol_state_base64: &str, -) -> Result { +pub fn parse_protocol_state_pub( + protocol_state_pub: &[u8], +) -> Result<(Fp, MinaStateProtocolStateValueStableV2), String> { + let protocol_state_hash = + Fp::from_bytes(&protocol_state_pub[..32]).map_err(|err| err.to_string())?; + + let protocol_state_base64 = + std::str::from_utf8(&protocol_state_pub[32..]).map_err(|err| err.to_string())?; let protocol_state_binprot = BASE64_STANDARD .decode(protocol_state_base64) .map_err(|err| err.to_string())?; + let protocol_state = + MinaStateProtocolStateValueStableV2::binprot_read(&mut protocol_state_binprot.as_slice()) + .map_err(|err| err.to_string())?; - MinaStateProtocolStateValueStableV2::binprot_read(&mut protocol_state_binprot.as_slice()) - .map_err(|err| err.to_string()) + Ok((protocol_state_hash, protocol_state)) } #[cfg(test)] @@ -117,20 +102,19 @@ mod test { include_bytes!("../../../../batcher/aligned/test_files/mina/protocol_state.proof"); const PROTOCOL_STATE_PUB_BYTES: &[u8] = include_bytes!("../../../../batcher/aligned/test_files/mina/protocol_state.pub"); - const BAD_PROTOCOL_STATE_HASH_BYTES: &[u8] = - include_bytes!("../../../../batcher/aligned/test_files/mina/bad_protocol_state_hash.pub"); - - const PROTOCOL_STATE_PROOF_STR: &str = - include_str!("../../../../batcher/aligned/test_files/mina/protocol_state_proof.proof"); - const PROTOCOL_STATE_HASH_STR: &str = - include_str!("../../../../batcher/aligned/test_files/mina/protocol_state_hash.pub"); + const BAD_PROTOCOL_STATE_PUB_BYTES: &[u8] = + include_bytes!("../../../../batcher/aligned/test_files/mina/bad_protocol_state.pub"); + // BAD_PROTOCOL_STATE_PUB_BYTES has an invalid hash. #[test] fn parse_protocol_state_proof_does_not_fail() { - parse_protocol_state_proof(PROTOCOL_STATE_PROOF_STR).unwrap(); + parse_protocol_state_proof(PROTOCOL_STATE_PROOF_BYTES).unwrap(); } - // TODO(xqft): parse_protocol_state_does_not_fail() + #[test] + fn parse_protocol_state_pub_does_not_fail() { + parse_protocol_state_pub(PROTOCOL_STATE_PUB_BYTES).unwrap(); + } #[test] fn protocol_state_proof_verifies() { @@ -154,16 +138,16 @@ mod test { } #[test] - fn bad_protocol_state_proof_fails() { + fn bad_protocol_state_proof_does_not_verify() { let mut proof_buffer = [0u8; super::MAX_PROOF_SIZE]; let proof_size = PROTOCOL_STATE_PROOF_BYTES.len(); assert!(proof_size <= proof_buffer.len()); proof_buffer[..proof_size].clone_from_slice(PROTOCOL_STATE_PROOF_BYTES); let mut pub_input_buffer = [0u8; super::MAX_PUB_INPUT_SIZE]; - let pub_input_size = BAD_PROTOCOL_STATE_HASH_BYTES.len(); + let pub_input_size = BAD_PROTOCOL_STATE_PUB_BYTES.len(); assert!(pub_input_size <= pub_input_buffer.len()); - pub_input_buffer[..pub_input_size].clone_from_slice(BAD_PROTOCOL_STATE_HASH_BYTES); + pub_input_buffer[..pub_input_size].clone_from_slice(BAD_PROTOCOL_STATE_PUB_BYTES); let result = verify_protocol_state_proof_ffi( &proof_buffer, From 95f7dd717b8d5e83fa4bc31a7047716a3f361ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 23 Jul 2024 11:32:10 -0300 Subject: [PATCH 7/8] Add message errors --- operator/mina/lib/src/lib.rs | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/operator/mina/lib/src/lib.rs b/operator/mina/lib/src/lib.rs index df411362a8..48eb182bd8 100644 --- a/operator/mina/lib/src/lib.rs +++ b/operator/mina/lib/src/lib.rs @@ -29,25 +29,26 @@ pub extern "C" fn verify_protocol_state_proof_ffi( public_input_bytes: &[u8; MAX_PUB_INPUT_SIZE], public_input_len: usize, ) -> bool { - // TODO(xqft): add message errors - let protocol_state_proof = - if let Ok(protocol_state_proof) = parse_protocol_state_proof(&proof_bytes[..proof_len]) { - protocol_state_proof - } else { + let protocol_state_proof = match parse_protocol_state_proof(&proof_bytes[..proof_len]) { + Ok(protocol_state_proof) => protocol_state_proof, + Err(err) => { + eprintln!("Failed to parse protocol state proof: {}", err); return false; - }; - - let (protocol_state_hash, protocol_state) = if let Ok(protocol_state_pub) = - parse_protocol_state_pub(&public_input_bytes[..public_input_len]) - { - protocol_state_pub - } else { - return false; + } }; - // check that protocol state hash is correct + let (protocol_state_hash, protocol_state) = + match parse_protocol_state_pub(&public_input_bytes[..public_input_len]) { + Ok(protocol_state_pub) => protocol_state_pub, + Err(err) => { + eprintln!("Failed to parse protocol state public inputs: {}", err); + return false; + } + }; + // TODO(xqft): this can be a batcher's pre-verification check (but don't remove it from here) if MinaHash::hash(&protocol_state) != protocol_state_hash { + eprintln!("The protocol state doesn't match the hash provided as public input"); return false; } @@ -70,7 +71,7 @@ pub fn parse_protocol_state_proof( let protocol_state_proof_base64 = std::str::from_utf8(protocol_state_proof_bytes).map_err(|err| err.to_string())?; let protocol_state_proof_binprot = BASE64_URL_SAFE - .decode(protocol_state_proof_base64.trim_matches(char::from(0))) + .decode(protocol_state_proof_base64) .map_err(|err| err.to_string())?; MinaBaseProofStableV2::binprot_read(&mut protocol_state_proof_binprot.as_slice()) .map_err(|err| err.to_string()) From f4cc3fbed496274279d0e0a83be7db3e70c65ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Est=C3=A9fano=20Bargas?= Date: Tue, 23 Jul 2024 11:35:57 -0300 Subject: [PATCH 8/8] Add consensus checks todo --- operator/mina/lib/src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/operator/mina/lib/src/lib.rs b/operator/mina/lib/src/lib.rs index 48eb182bd8..f2c869748d 100644 --- a/operator/mina/lib/src/lib.rs +++ b/operator/mina/lib/src/lib.rs @@ -63,6 +63,8 @@ pub extern "C" fn verify_protocol_state_proof_ffi( &VERIFIER_INDEX, &srs, ) + + // TODO(xqft): consensus checks } pub fn parse_protocol_state_proof(