From a10a13a53c0afccde9af82ce4eeb61f371c964db Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 17 Dec 2024 16:47:57 +0100 Subject: [PATCH 1/3] tests: update for prague --- tests/chain.rlp | Bin 23075 -> 24232 bytes tests/debug_getRawBlock/get-block-n.io | 2 +- tests/debug_getRawBlock/get-genesis.io | 2 +- tests/debug_getRawHeader/get-block-n.io | 2 +- tests/debug_getRawHeader/get-genesis.io | 2 +- tests/debug_getRawReceipts/get-block-n.io | 2 +- tests/debug_getRawTransaction/get-tx.io | 4 ++-- tests/eth_blobBaseFee/get-current-blobfee.io | 3 +++ tests/eth_blobGasPrice/blob-gas-price.io | 2 -- .../eth_call/call-callenv-options-eip1559.io | 4 ++-- tests/eth_call/call-eip7702-delegation.io | 3 +++ .../create-al-contract-eip1559.io | 2 +- .../create-al-contract.io | 2 +- tests/eth_feeHistory/fee-history.io | 2 +- tests/eth_getBalance/get-balance-blockhash.io | 4 ++-- tests/eth_getBlockByHash/get-block-by-hash.io | 4 ++-- .../get-block-eip7685-requests.io | 3 +++ tests/eth_getBlockByNumber/get-block-n.io | 2 +- tests/eth_getBlockByNumber/get-finalized.io | 2 +- tests/eth_getBlockByNumber/get-genesis.io | 2 +- tests/eth_getBlockByNumber/get-latest.io | 2 +- tests/eth_getBlockByNumber/get-safe.io | 2 +- .../get-block-receipts-by-hash.io | 4 ++-- .../get-block-receipts-latest.io | 2 +- .../get-block-receipts-n.io | 2 +- .../get-block-n.io | 2 +- .../get-genesis.io | 2 +- .../get-code-eip7702-delegation.io | 4 ++++ tests/eth_getLogs/contract-addr.io | 2 +- tests/eth_getLogs/no-topics.io | 2 +- tests/eth_getLogs/topic-exact-match.io | 4 ++-- tests/eth_getLogs/topic-wildcard.io | 4 ++-- .../get-account-proof-blockhash.io | 4 ++-- .../eth_getProof/get-account-proof-latest.io | 2 +- .../get-account-proof-with-storage.io | 2 +- .../get-block-n.io | 4 ++-- .../get-block-n.io | 2 +- .../get-access-list.io | 4 ++-- tests/eth_getTransactionByHash/get-blob-tx.io | 4 ++-- .../get-dynamic-fee.io | 4 ++-- .../get-legacy-create.io | 4 ++-- .../get-legacy-input.io | 4 ++-- .../eth_getTransactionByHash/get-legacy-tx.io | 4 ++-- .../get-setcode-tx.io | 3 +++ tests/eth_getTransactionCount/get-nonce.io | 2 +- .../get-access-list.io | 4 ++-- .../eth_getTransactionReceipt/get-blob-tx.io | 4 ++-- .../get-dynamic-fee.io | 4 ++-- .../get-legacy-contract.io | 4 ++-- .../get-legacy-input.io | 4 ++-- .../get-legacy-receipt.io | 4 ++-- .../send-access-list-transaction.io | 4 ++-- tests/eth_sendRawTransaction/send-blob-tx.io | 4 ++-- ...end-dynamic-fee-access-list-transaction.io | 4 ++-- .../send-dynamic-fee-transaction.io | 4 ++-- .../send-legacy-transaction.io | 4 ++-- tests/forkenv.json | 1 + tests/genesis.json | 15 ++++++++++++++- tests/headfcu.json | 6 +++--- 59 files changed, 109 insertions(+), 81 deletions(-) create mode 100644 tests/eth_blobBaseFee/get-current-blobfee.io delete mode 100644 tests/eth_blobGasPrice/blob-gas-price.io create mode 100644 tests/eth_call/call-eip7702-delegation.io create mode 100644 tests/eth_getBlockByNumber/get-block-eip7685-requests.io create mode 100644 tests/eth_getCode/get-code-eip7702-delegation.io create mode 100644 tests/eth_getTransactionByHash/get-setcode-tx.io diff --git a/tests/chain.rlp b/tests/chain.rlp index 57c416125a98e4d0c3becd849ec4417631f39768..9c17fd7a993651875000d990c091d2a44a6418c8 100644 GIT binary patch literal 24232 zcmeHvcRZEvANM)O9@#7ND6&OlMD`xpS=oEbo^^zhl|7=|l9d#dkeyLPWMyR}RAfXP zSc8iC?pIyobA9gnb6xj2pSSn>9%mJUcNJm`pmnx|e{~^AT)GJZeQv&U zWj(njV}N~oZ+iOYFI$Ub*c-yl=qxaoy_YXk0pmptQYq`S zWY^c0o~OE$GqK#0d}o;!uW~yvmBvT2OlKAH0v-=T#;Xek^YX)BWum5sgwSB7hfG1j zrl3VrkaUoyDHJS+DkV{+0;-fjl_yXoKdMByU!j_)I8{ZI0VvlzB(F;#FB!k_MTMsk zc;54#h_Lak?4;MxE$Exz7?uoNwgn0L8MkB(QwDuJ%4YOIyAQ34V`w4o26S1%j-|oN zz&n#tyMUOK>Apz`m_o=*kLaHFc5`vI;j%DubhI?{Fmt!_voZx~nv$3jY#5q?PMXfs znr(r}OyzZ*_B$e-2uw*f49&J?k!^@6{qDp801M;uL-SK1+UMdvehGssP+GYsR!T3A zQ3QT48W`vO06+qEIxp-6XJQzp%e zp6*s|P%Ae#7q{K<{k5r#rs)~ParZtgy;JWg9qmIxv;#nV+c1A|N@zMcEFRWBeO!p-z9Wt6iA z1Bk~uK}Wp22rr+IHPb35v7iP{%{*0_r>dh0;#omszuO{yZuqKRd>}{L=OV!mlx?or zwY94l^GM9}mjp4$+I2WUlSC|p&_up!Qy1Iy#GSU5PS+E99%Xg=FENwY`&ot9aP--l z+Uu7|KZ-nb%3@yosz@KK;Zvx{ZaOx z7RW=!d^ZBd-i3Np3@8ZEB|=5O{?6+cP003=c8>spLAEgyqri;pPcW0Kh9UL8U?wLl zqw<1q?DK-Nhsb!pMz}CnE0y4Q&$Fp+wj_C9c5przGtt7~0q7x!c-Mo$40f(?V)U~ET+V28tCG17)Gm<}Sl z49v{(h)luX0_pQt@`Zi$JeF+ZBS!F^V))6Cx5*_*BP2&s@5X(!Q6U5@MAU~umILnl z1U7c}JLhN7mq!&7#;wKVQdw05VlE28{V{izNxKPy-QEXf0_3K+x+W)0bU=nYCYmPN zsBAacP38c00qV_lUgj=twUTY>LD#m}LT7=Z}`)+yqJXLFpFF4ArS z8&tmjv7x7Nyz9G6pM0GfuU%<54WP@m({Q-=%KFDMHJl`3s*rF16Hk3ayFxn9kQ8oi zEDd+V-Z`hlt_h#=EDduK!gR(Tw&^=mVCg&QH=)6<*g1Q-I9OTkePJ>-(UKD%7!%e{ zs1!9z7(XdJfdS@^k9%Ho&+tlxzWNhDDrrtqgzM2rz5gVKS3H$9X&Mlt;Y57MVDtpL z12^PLSw95cyL)nQwohd+_%e_X*hVQWD794EqD8`9BH8i8W}RgO64|E2fK5)0u4Uz9 z=K(i_>;KdZE(QD|q4&%{%bG*WCH>3&y7vd8?r|OAh`;PjlFai$-$R0=L*C!e4h9Tb zGG8u$vCu|khjL|y$$efNT4I*ZIse|7`2~8XN%nQX{MFl4R+VR-Vc<^hiAJM?${iD#Q$cKmI7He&MvMWutsTU0aj%qP;`M*>eo96$<+!)1o3; z{}S@4734Hb*{AsQBq$n33KEASzk2jPQ*3^_=`Hg7eHQZwFegNHk|SaLmgSJ(W_gZB zG>FPLTPoJd@VtxebOCGEeZb@bx{LBTUTU2V@io@Fk-?Nz^`|W#y%Csfg*~vlG_Uys zP5u!vVcVy37nCLT&MpWAu-|o&O$k(g?~lWF7m70eyx9HQf*AcDH;Es1`5y9r7~1ac zPIBKMY+n!A*_+<(2n=n9Cfj4v{|V%?GEw9n2>HQ?a4^8rna|*g&+?r?&bmm$rm(mH zjN5&W^kyes@|^^jK=?L*ZcF_H=g@00&8nN)iOvM~1PMW(B$uOye2zH`%GGB}ucD!q z^?~6%yJ>_Qf{32?n=BeqxokH=5=`~aStQ4TomJO{_J9K8yb%sqV8rq*%gU7RagPd` z*Lkeh!oXl)Q8G*E-LfOOmF68AE({f00|63=Cg+uNSjz@YY4pea05?$g3gK{h$mZza z)b-PDH{XT}A2-o!%RN%d$ar)lvAt{y4Zgm+GCc6_mxdN8E@K}cDO)`M&r2&gqOc~L zChdk>vCzX9d1g39Am^x+2=7xY-`G*r{M%=dpWPS$Hc%;0B$l#H{lu?udeRdAi^19O z^>fA}8!!4QyJe5tf&p=i*QbdB5_-^G`Pm(fNKdyMF$s;b{ixP&l4*tZl(G~sPUr;b zHyvi6Wb*)zD4sH)k3VK`q#hHZ+~4O)fp&%z?uGyRMMEN!Hpt30UUcUp7rn=v4NpWx z#9wSHdAwAbWQke!i6j0nU*=gZvXb?fnkL^qaE8EgcD*kHkrx+RhA=HDivnSk#+u#T zlsdENCF_2=hh_I5@PgeFe+aTY2Z-W)0?xWO7q+er7E_UbD6aI;#aNO%cS1z2w}8ro z$|>824l$Q<>9i*do`|MkD_z=nTaQ1`enrGuhGNAY|6)KReui7ti;(ItGL_+2=Ityy z1gnJsVWKtfH3%Vk#^{|*048}taCyR(kP zGw(i)b&LNc+@_ynBJ_q9xfi%?&Uk_!E7!kU?0h9V-xmX#^1xA^bpryW8{AeN!lPVn z=ZBiAKJ%wqsLsPr4SoGy?KsB~12z{x`Qlu@pR5?c=*!F=+S>(!Y>T&Y@`S<-L`c1i zX9S_8KfvuS1pU8M!_ZN1duf@9^-s|DD4$X&&~q=aE%*riUFP!xlAp-ZR-qYfLii6} z5~-?mK0-fQA&0mqp-ddnMc>&lTSnJB9(yzOYN|Bfroe*y(|AIXM)5dF`m<38f#THN0^XEBjwb|%Feq+U-J26lG4F`% zxn1T0hCA*?B-{&VrIe#)QoR=P)OE&#ktV1mQYM!h6_9B3l4PCzCSj&48BCAMj8xxZ zRny%6Q5o6rpaN6TbERT79(QTBwslE!CEtIJ}_1shZ>a+~A|nPfC@d!oH4 zTtYFP)rKEFGuiiQza;0J*N=IC1BUGpz#E0vZ$;f4!(W=tTiYx;=N!x1O7px`XTqpL zLH-_N?pZ)+q_<8*8~0Ytz0Ynb$G9mXQ?K7)`DiR&cMJ!uPbycgw!aUCk?^y%SgxYq zM=EB;#^MrQ<9p&93T}MCkkMR=iAP1;-pYECA`G2o)?^ufna>=BpP#N;C7mg144*Ee zl^3h4J!#+P%IUl^(s}59a;!9<)*Y#5_2lTBX)i3VtHs6bYS0OgRAh7j|xGDB2ycNEWT}f zV)N2B8?q&V>Ow$>of%P0L;-{Tgc|J*A{Y;ByDhP6`k_W~B2IQ>h>?mfz>=S>I(DWU**AJvmh=lGSVYK$-a!Z1C6O(Nj zBy>3&iGd#}J{6LQ!H1ltP|rR%p&^R!P~s3oyp3S+-(Mlh0G4W)x-&Udh1eEf(Y?YR z(;|GX^fpWTF!g6w=pYd$$7=wGE`j&3bA^_oVGwb0Li&S`g37MX-BihfImpxsGF4B& z14wqJ@fX5fn^UO>Ynk~<8ExIthHi3|)~)1W;Sg&13n7?qlfApsfm1ad1FOA0#Xe=D z;bF{6FSNuAu*HnuyYjF%m2*hw1G_Tv(s@z^afn$>kDV3Er+q%MIr<$(+kYqjIe#8!9Wu2>zfaH zo^yT>7k+d#YrT?RLm}Cuv1opi$GZBfSGpf?KDIsmT-GIqSzshe_{=apTL~MXSU`>z z+f*|?@m1^FNWpg;DfqUeh2OvKdhFPWGx+>m@EMEL#Jg+Z_xt#`GME#hAIs(bC1M$V zeezn-v5m!8={}a9W9aQTVJ7C@d7AtIuyHGa201nmnU(-+yL*KZiuOqF`Jmphxx4j@ z(jFsc#vcgjG1d*31Bb?qKR~Q+WTciRF?Mx;OkZ|86p+oBvG`sTAu-iWwBL_dJ1PCG zg6-z@uIWcbxMPQ*Y6(=i3k;|Z0e6ar+J=m}Zvq)FeG9AU^iL3r2HQR0K*ZV>e5Os94Gr=*cdtCOS>j^S@{ki=H=M<}PQ2hcoFWkk zyZRqMt7)I$BM(7D5B!bbvwND3K|(e7@t?DZU&kfZaWHq~DE|UYxboo#beX2={4SC6 zStnXf>Z|#-gMp9z$Fk{S!3jLgcmZ`LPvT!_o7Jcf@P@N1Bw@VCJlzdA-E}Su8{CK) zc=$41fk(lW)O?iqBAtg=wo`g$q|))&eS(hy{QIS$Mc#5uzaMnh^wd8u?FcNJ?n|2H z>uj|S4jnsO;VO#G=Ww(7D?Xn1nSMrTGXGWZ%{7c(i!p^CwM!?P4C}T|(K}oeXYnk_ zWAu!*v1XdGB|tBf<=R@bvT{OT(u0AqsOi+{y(HivcHtWuRDO>(a7SAT`@KlH*}uSqb!<^p^=9c|6kEvL@v<$~LOW6dtDBJ>Hs< zQ3Ux*#B74PV<{*yH=f{E80IXzq-AwvYlT?9Wg z1D@TLJdu1@OHhCD?IuHiI!6*P_Kv&i4m^abjBX`?()|VghffnVZ(5w&Ub0C(8+W6J;CB@Al^F(u{X{sb{8@7o9h_pWD09llQJd;Hwmka8`P&fSux3&V6*Wa=pPM28DFw5BSk*gwhja=e);)Zj9J_-2EFuA!pN7Z-#nKU=lko<}>2ryA#JbB!zd6`&4>$81~!~nKgMGt3Qz3q9W+gEfaI^^K?)CWY_lThzV zalDy~^B|UQOK^Qj&bpyn==O|asTe=s;#S@a`BDJzrAK?mva9!i6X^=|~WIz`OSd--Bu*oBo_nC|#=JQrmsCLFVwJDE1EGoU0h z0HeMuchS2Fli1FOVzWZ;>b;|SE@mu^ns8TSTV;(mF(Z^57$f0ldeL$f1A@%*bqp_~ zt(bdiG|V9^k=5_MNIi*8$}UZ~wT}hDkwE_6vD_(E5|l6)8)$ zRFBo&=$2`2LdNMFfuzY^Y!w#E*?xWZ@CRZVT=3}vwYhk<&#vzAOxRAIUO@SVDvOk` z!NpU&uj$97X=FUswg&lm*Oe^QU7FrC(*+{39D*V)2&Mqt7FMvmq~=BFEM!k&&$5qP z>{)jkl29o`bB7nfwj1bsnr_$YyPKU*WP2Zv+75uQ|4*b2#QtE!0Aky>2g>rl?%U>l zB|2>Tu-FK1iEkq??CmT^x588ZlPo8zaR@n(7a_7-z|2BB(@Sq!R4m%yO%Ahw>9~hV z*#lCL3px*no1kLe!C4MThX>GxAmWAo#l6oApes*k@P)8Vk%EM|$d>=)vD0tY%Q@Ju z^yNKqK7}(+F$%c1CU!F_!LBdT#R!dTt}f&kt66<%PGS#1FY!39tS|((q1%rBTM3l` zTnq?s_5um9Z194=9Hl2|G7k_twR}IX(&uG>uR{I203gaUQm)(6`&ey8^O6&%PR135 zxNKj~7&#F?@s`CrQ?GpziXObPk|X}Y`Juz5=P__o4HQfJqv4q#xG7O(7yn#v>Y!{BvuE#gsT9~^bp zl}|hr6(`0TV5e{a;?Qu?`E>5g8UZ)tG7MgZR&E(&x4)i-**h2`|UhDUbZOD>9IsE`p zP$cpoihtd{7l#KP3wEH#HwPHb4%Oi$Gx!q_B;m~>JP-u8#bKQgq+2lRMY@>_zUfDT zH!+h>2inaR(*gT81b1xYMH2o44jS!~P*89PB0SMA)gfABj-xA;?0J00e+CGPwh8Fk zRVlChpw4ETw7InDgjmM9>XgNTu~No9*wu{xCZS+}R+Bgh1$%>9M^4tq=`yS|g%MeA zjo>$>6=#($kXMcR0xXx=uUwUlq8W;~LzF2X7JfIA`s4cgCHEB8-rLWk?%#oXGyZ&^E`sI4a>TyJ3?-I%4X83PwTK%+Dth#GQ7C|NK`4jq5*O9P1ew0>wm zk-}c;CH=(#P+ zd`r94iXxhplPUWfPQU z0}S3pIz(%T`C}1K9ewt|;y2 z0mbKbQdzKe~qOz)%)M0o~bSKe$Qk3?t!>2l0PDbKCYs z_<+$-ei9OU$J=rIe!4J(&(6^iyX70wXglt~TL_>2^;HIo?sD!+VKLOL=?+-R<27 z5#4MU^yB?iYHKDP|ASEsd>(Gk6oQE7@az29lTcv;OHW=?F~suECd9_(olx<~*c#|H zN+G?NiPB6fY5#x2akVX%>%z47Fv3bux6x8|O8_Lzz*r{!K#Z z+m|&5l=)4TWLR}S(0`rwYHjMYUY$p8(K#;G8JmU+fO!;!rd1lj@RvayWm^B%3!FuG zl{p-XCKI;;Z_?lCGK2>l+nL5++yiJTo20#Q>ao)rmQztTB9f+s0;ZT7vPSHaP}r=T*^>26)GMI(#S5dsc^k#K729QLDTtZ9q9 zBz)O2XZq`pNkkC>E)2BVyO5R8!V4_Cc*_-C|%i&Z_&_stulS)QK!2#_lsX^|GT&*)lem@vw`o*St< zJpE3W^}gt8jJmU9+AMHt;Z9>}@dE~~bLz`y-b*@M?+vlnlaXxF#N%x~Vbaa^jl1k5 z!2SyOzDorAzW0;11j_b(dLwca`V&Wl>3grAdwjE^GCk&7|Ca|vy5M~8_g~sDyd43@ zC*}MnDSv2%Nb)~&mk)XhM#^IH4`F1jXYQ4nkRE}#O+7TvcB$VQ1M7qxV>>wO(HP)1 zEFp-HQo#qPC^y&Dg5YyJIhv9Y?_R8ZDvA}n9rV{v9vbCP1Y%V44gNDps>zk_eSaOk z>KQ5Jl*ch#H}dui852{nIDkX-E>$uG8w^~*H?zAo^<3h(v2LU;StfeKVtKPvb?s`C zMwg|*qRM#y(>o5^n@iDQr7$j){)UtnmkgfI=%YYF9G7%2IsaMKeJYCWpp{jxGm|{z zCLQ?amErWmZOOap1%)!GS=5(&OfMLygjc>F?Sw(#OT zh3I|Emi>Sa4J~q9%% zt4JCW*6Pixe+k9U7t0O2TnPq>(_l6tNonliVqb2zhppCXi}#(n^VCriDBNU>j;oaA z8Sypl%}q2|ueDG9Os+q!)1z-?o3nMC9f0Ueej@>l5C<>`o;*^_gsvl` zoK8X5S$zN$!~Pe`P`LPWD3w5Y{{XVk|2@QCS@uEk_eb~%q56LKz%~qj8;ZeYFrPnx zVtlbjqX$AUf_?GHxjG2l;v+vx&PytEGN{tU`ZLbPoci&M=EnoeA9aim#$oVtxHm@# zBHq|9bt5E_AdF^}uIGbGoMZbW6ek!p2_yyl*@b14gra%h zdU~UXiEjb2NLEEkIG|)bGQw2*c`}VsdHP5T%`zZC)Tvv2qj)$I1NK!i&W(y^zVodb z^n9}z-5DeE)0Le2Boxv4(j}k5i zw^K@32H}rjjt3n-?W@F6DLcanXdZ8Z2*G3BbhBZKXN;MZog9oyIh!hD;j85xpz~A#WQjZS?lUz1NYek5kWGATJjjd7zSF2RYwI$&2IE3V`P# za-)-O-&;jC$4ljS=22*G z9|(O$YdH78z&6+I2f)}CNXQ&RXq#`D58KYVZ=;Al6o1=@$X6oh&TW2#W!vZ5u6s@( ziR~t;+)i?AqHQB|dt|5D?(CKl$OiPgx%_x&nJ1Gikj4A`iMuD0NZ^Vkn3akj8YW46R#kY7Q^qG=-K6{DSbj*CDHemkO-DeuOl z>J#%rOOEXW+?!F3MyDz^3B3k$r7s#4{s+WxhKC*xLBuov7Yzjf#WEaQy_4mT!?y84 zO=BVxQan$dbCch=J1{y%RZ`hZ2v}RH91YDqHe1csa@*?iOj4w1GKsU5U4n5?LGee- z78iH`&(1XdLPOQqy;=Fp!YTfYo#3MexF)Mp#*)v1ex^qFFoDEPDjj#gkap(lI9-1Z z3{#gPY@s0{4I?Z+U0g-6`Rt0Kq_4zBxDD@i^aJQCov^T$QogT#G-czxIk!a4+KgMde^LCuZA364pWM!J@6j6gL5A3 z_&yPJ0vv(}Z~7a?U@&(#F`MA2;y?3oNsdov$HIKhs4g~g?U$N37! z$f1mD3kEO-df0vY5I+aOxY5zv+|6v# z^meVNBCo5z<4XXQGlqbY%bBYR*Y=4hzJpfQjTTZC)&8~kpI6q!;#cr~a?tRyLDuv0 zp(MdF+`)+;0_EwT>$ZgM8i_YxK;pxfJzs>64|591UPc#%WX)urY2x~78fnf{>zgi= zRSeM6zIz6>6P!GY`>5-Bw)+deHXb32YwxCFo-GF0MD)<^6H)vJd}wHqv7yZ^$3|y6 z{&{J)*5%8C7QoesHlVWB+}pv#WsB)>7MdjM`1-~v1*M?>Dxz$kWh=c$@9ud+5)!22Dy%>eGHj~TumZxym1PNhp1W4U20a6yza>!v`A^$lKb71s$s z58aV~)xXUqr+QlIfpY-V<}CMC=QF{8_uVsR*Jb(Ak!0*8QoR*cM~`M&>IPVaYg6WT zYoFsX)+Zjnc!^b;jQi`r5muJJ#AX2*i>LyQ;zIrA3nMPiUnIvIIu%5I-;uWcHXXm{ zrr{(oP;J~3Ak6f#rBVwkr3xm37^Amw|z}4R>^JNp7F^N7L?Aox- z?C{Maue zBZI9-WgC%u5u~C}lW#zEcMX@Ki z&M~)T?MyCFet77eADh@`3(Q!2D7LEj0x);F8$-sJAE2)(z^Bp#mul!9Kb6<*D`z*o zc~2|9QGK6?65I=T{$lv8@=MjDZ!>gH^Nz4ywitU!feJXDnpLA_PFgrNq=kvsP%J#$ zN4_9TJZux zC_j5y`MZ}?N^~S9=5I!@);^LK;(g~StbfSEfI?KgIp2x=+^1`L?ErV$1fk*y#t-C& z{J@M<7-y{ct=7)p#V^v)^uG&lCN)KnEp&{ZzTty-Nu>y>u1auZc?xlTUA-_gSTYr{ zysj_IiLV}=t5SGm!$S5s#dgnfucOEE@yy?jWJ^hsV{v!tfqiMTl7> zIGTN6veS5EbV{fH2B?&OC!rDSWj`m`>A?^eU-l2|%V-#MTOREgB~bM~GV_gWA;z{f z)sFLa1>2Eh-x*=3HtOdfATY#zu$}n3WD5d9%xP~!48neLSP(W81d>83JtBk$Y6pqE zeZFg;!$3GNqHVH;A($Nm{7FV*2@EeBNVX6eeYDjwGQE!zn^ECX>Dy?ClXHn3bd}K3 zou(+wzFk9`<=~7)zNI1@f{6F|-_#WjhxanGKjYDgFEs5hRAPg3FI}A@xjRfOUbxWs zQUw+PSk8St*%g(f{#AN$K%?fg6|D*lJ&Y1BS67>q+Pfu79UgFMXBvO3t}*}&-RwhG zTbFevm#Eg?4rvK(`DyT?V>4GQ=;mouSLKxgrk`@};URuwqU+3k4=;eiqcL9kyd(Lo zOr584*97jJ_yV^P*^d5Obp-$!R30)jbE0SPi>M`)EJ2v`my&NDk%%7BGvFbrVtXqI z;0^TXz@E__URbXp%o!q?Z*GgX^E+wmUg*MpgUGBbb|0@51@A2RmycKte{K?;E?aB* zXNtt&WhY{(cI}xY^-Hx7jSHT6*U0na1d40Z4cs0w_9}TH9#4w!i)&(_aAu&uyj`adiSYI5NszgALx?FNq0uAn@h_&2a@g z$;r|Im23f79}C&s=kMgUmz&QH_va}p4`DyI;tB0{w-r4$^D_@sPnUJ`^wSJMt*MFg{<9C=x*a*YZ&o1WFg*C3A*zqkcFwu$9N!QZRLFK zI=W9piGhE=G_=SN2kpl>4k;o3yfnJGl)`r-(xQ42Eg{KU8u{Vuan!|`b2E}&rxd^! zS2zBfh=KuMZ;^H%YwKGP#pC{f!4#{Iuf&QULH1P}jPahGsvt%cFcnoB7UT7tBO9dV zs*)=OvwV55NGw439@?vX+~86d2Hacx_lt%^p5xb%l3l1o!Q$St8k-_KpBzZ0v)azW znYCCi_G%lSV)G6bRw=#jM{&LQ)iJ<{270%~UzFH=*qf1s#&0dYz?10lVjd6I@i#7V zUFxCxZV*UppLry={RP#80e6jx-(L$^`xN|P>5aRs3IU;(%}|%{v9OBSu9X;hp8){E zNt=G50P7L<0%mm$$vh5v`<&jX7p4E_G4@H;o06L|;d>ew8zs(eLFh2?%`veJaEa0M@&jjg7ase}6ezov39pu$LYAX8E<=+U1* zCPqYL8Q}RM-cNIuh+*g`o^IinDK;BTnqkV>x3v*0&*|`0Mb@kW87%)Y zqZjg{m(Ptg)Lp5#7a^zS0=QoLJ!GH{HvbDe17?ldU ztq)(EOiD@_Wgfv(Gyg90saE=ymOB9F95ns>+DiS^d&NTIm8~o5XtF)aO2Q3UeezG; zl{0(b_ELLMlnBW*S!rH2R>jm0O;WJyC)Ruz`A$XM{oLhFT8R6SDDQT@kW1c&i(iT( ziSQ|JS)Rq-m|F8Y3XrPLx;$2!g}z^?i)+aZT#RJ2kYl$1Jv&NUb3W1~0Sg`~jf(Xz z6gC5ZIaXz}R}fAqo+GkWk+*#02jWn>TH0)P+BE-4_3=bEz$Zlwei+9>Gb!k>fLE6B zN8-zrdeu`VT@WW`xwXrq%Lp-t@yjdcXvj2oznNC{Ii5;h5cBX>?F%P(r(bLWhWyxJ zs2xW}zKy2eU#9uPz&lvgl3kebyyt{dj6P#J+muB6PuOUs(-FigZyhxS*7AtF)5t|1 zIkq3O;_sh+sAp>Fo$Jus_l%kdmZtQ92Y4aM>!0S4YBysepX+w3@>nsg6cdnn>$nkx zQf=@mniP^5Avwl2142i%x8K{pgs|~Ik)$RF(fV#fDkmhV`I*F%K>DG`6k-&8hg3mP zR^$k3L&SsaG{3L*Y!csFxAot)Vni|{KHmq&fQFMcD(H5hBg!8VS|vr16}L(0Qz&6mhqKBbuA@cJT=o44S0b z)}HbQr#bRP6`2r3Jh{JkQ3U|vxxrUw1u=ue37A$?mT4zdQwhx9m<=|Zw9563A3JZ5UZh_od!AgriS3=|r{1EbX>RBJxVt@z41&4VC) zl7fhApNf(L?=1P3Dyl!~0?*krl{5d$k?>z77TLJT`32p(#zc7LY8G7-JRW`FeTJ0O41%BHUvk(~_pz5mZE3%oTh8F<8GD8Tlx zQHP^eJde@?gYXN1)itirR5f;4D==`sGT{LUgVNy8jpfY~*^q*VZeEuf;$^u8Doi2h z6#4G}rt!%&I&DhwXr&%m#bj^#q2`;g&sAYzRTZaNNpZST5M&4a8B!k_;F3m7d~^Zz z_ElK1pSHeTIOihsvRGK{oOtI+0tfYhzeGW)0;t&g+kp{x{O_LkQLvF07S^2ixl$wT zkV1BQig`v2Q0{DAB4JBuIVM&fp+qlrkLfu49YoeVn_oxnO;wp%0C19>b{ZtHXwg+I zk;BRFsnFo=cf>MpNQ%t}tjhN6+3(-U1^*PV5ODL0O#)^A0eql)&fCL#-R;IN5B7uK z-Y=EHejNC3eTiSX!N_*V4lh~I^FKmCDHo#yQE*!yiZ(Bs)GgVuOv|k;zfx{in)lhf zwt6W)r0NwVIp-_wjQ;?H``=ViKp=#ai}5c7B3h)o+{(yt1NV6zc<(gR-ariRXMqyc(5gl)oys1+L=%>)ACs}fC-Y-?@w;5S~(%O zvF=vO38u6-H4rIyI9EPjFKv=qe4mO^+CKA0s`+ygSc`ZmN8{2F!MnB|pLC9)wW7Pt zNJi-U)dk>|WBFY4op7}20Rky!YNmvqE8X;y)1xZl2nbkM;0$?t=#i!V`!#O}b@jeG z1j?vY|CZY-`BBxdSAKb2AFI9rF;)$SxIxw+-U cO&zZ`z&4C08N!k`<)+Q_L~$XrqPF(`0Qy5M^#A|> delta 12423 zcmaKy1y~eO7x&p^m+tN^k#6ab2I-QJMvw*trIr>21cy+mQAz|wQj``^kx)uWX+cns zUO?oVUC{UC{hsf;58SzP@64GyGw1pL=G?Q7n_-2uF#bIxvTCfUtfhlCzlTIS1Iny=*pt$Gh-DP1I3Lv% zqSXR>UsZxqrBsO}BVOG=gL&UB&W)MdZ{lpi+pK~Xhs$<;a*lRZ6%@h9_uxI~3{;#H zzkhoyO#BBB1lKkK!Kuu49<70EXSg^Y=6*0z_P9eSuXc7b&UVDUv(a`WVhu!cR|SZO zUJO%bw^AJxH93?l=7oE49wvnlS?CZABubzgU?(<>WdH(PA44V+Z7Qv?F$cME#`3X{ zs-?&ms@Ap)o}E0SgZrNZ*-b#>S`s4snzFb}-K>j##A2%J9!ArwcIk*UG`8DA>>dXWb_<72Q^j`Nglbiw=OTOhG$HT+&kcdN$V>yYn+gG<_&T_I@LV7V zf03qP6psF!ND?@i=WtUQ4;Clf%KiZGXJI6QCrcaClQZ1ay8%QKsYPv#F@A2pF7PeZ zoyjyNcQbu(f^RsQ_H1;Y%|$Bw3?o7qC|K z`X1TKUGAn`ukc!(#J)(n$A;Y1GkWu&B}jcWb#z#gCN*#(*)xJlD8eV~gww}40Rcmb^l3RjP@Iwkg&PM~ zQRaw+i_@@SUOhs9)tMCdCC(2Rl5)`R!R;H4aM8d2K63(C95hY_y?$n(mDCfMu@lhM zj*Tz!zdCuP*afGa8y96-GT(@c{@AG^6GFA#KDhW56utg4hgP3xqbp*neQVd(n?BHr zx_;REO4P}UGF@z5Iq#dl)1@k|s7=IEau{rttBMj9B14|;=LRXzi z#H6>CZZNDowDJEqBlS%B*$*u%j?w*tq7Be>%Po|c$u`1N$Wzi zDwlBy-sgBz2>rU`dUw?K`7*$cRl9W{Di2|eq2!>4e&96epgN_`b; zEaqLCXz3wm#QliTF?xyOKMBLC_uh!_8!b!8g}ITbjUTyvu+Z>_M+g2M_rmI!`+LbQ z^Lh_O&XmWwH%llJ-U_F7;NT6>Mmp86Z_jWngYR=UA5JHb;SU9gA_>vte3D#t4(ALB z_!Q{9RQ97+VnP41#ku%y&w&1|ryQjT);g^O6osn`l0i=4sg#eH6g99qhLsvjMf9(Q zX{Z86Vo1n2k+=vP6o9g&MWAp{aA2R29SD~v;QlXRgJcUMW00<4qzzM4ad5;S1CBDZ zKr1&9IgMxM$hxn^vdi@`TTCa2ZQ~tW>w4i9UG;NwE+%M(kvx* z=y0-QYmTDQY9rSTRDPtHDbCy8nvAQzaK*sb*?a6ki$ui}v!*i^pcp8$wzVh7GfB#x z-W? zp-1enJABh~Km;(XF)6lSoVvYP;YP-j8C2i`mR`{pyVzztB>QyY0*!Z7G&>PaL>@eF z()IEbPq6veuhUKh$N6v1zyVm92!J(Z^7LsuNc0deIPgo1k$?jS2Ma)eQk*e;ngI~j zAqLpQNdOcR8Ng&o4)BYMrcaZTppeJ!9wDhNfqnOEAFktJwJ(W|gLn^@9qmCL2le3t zoCF*eKfjlc48nsc^N`nzN!Gs_lRH=K?>X0(Bs3E)dxz_UgI8lY#jEFl*irwWRT~<& z_4L&<-<)gqUDgB9sVjbeC{KZu0(NZq7^EO29;JucU4AUJhWRDlynB}HpBJA~Gkx^o zOOJE5u(-ure&WJ8T}6C^7Ys~^|M}%?MAA#g=4CTnX|-2j;iUc6&YOLtruoGs+5*== z6Q4}w3uCtF%}a3s?3||0Ec~e((6zjY>`J4Rc;BoCPl1#YJCpwf>2fi{1ZlE=K6XmT zn^PJD!N6hMzU-PTtx(0<(6}78xP2L!+hnM@)DaB~?5SaMo=t8YkaSD_3921tkd2Atvy)$!B$ zJ0~ENg&Oc;!1Bh6*s3e+%`&bx{*sj4jdEJ@3w`&f197v{rr&^9kyf|xK?=G8XBq-0|v;HRCQ&$i@c?sRpa00(TF?>7j# z^XU6+gZm-|pRaXAim>Xe%Pibq6}eP8Bc9_4mQorRXcTaprTHHmXz$$plb^Aab?qtv zj?;s(wfUB3SFpt1Wu#1>W`!V41;{c9rca+hS`6@&!G}bSiUfss?5wZ`lp@wynT}F? zAZO)-p#Vi@E=aE4qeH0Upk80h*BS7PnatszWVt6a)wnP2`P~U3bfc`-CycKqk^b-p z5ru5LL&djI@Ec?zc4qcesJnQdpcz>lyrIba?o1DlrMt$_PHLxFGt1E_eA2*IY!-AYl1`rSvuDLz-cV?7WOc*@a@~~I^Q$Q1zX5h2D z73_19^drqnkTo=?T>$*TZ4>tOb~(d=owfG*;#LQ0DT5Mjbs)mhi}s>BHt21}6m{}2 z3P3G(-s>s4wHq5fxL=j~+do+>t($=UQ-t_&EaF2yD5(dBx0tr(NRqa02kE z9poC1TDlq*EbMbJ<{obj2D3dF2a*_?8hg?;TS?X*xaoDRx9`Btl^7pP@V)S}=ZcMZ zG6%@oW4QG7o&AmS_&Okh?QGQd8#>PA^C6nmfdf4OoM+#zIBk!3UfDSknQfK}x*Qn` z6864(nOm|kCzB-Bro5&?mC z_`K7sN$Li}V&s!cnJti7{#8FHgurSg3Wwl?d%V~!G!7M2Yz`0osk zbs1|I!an|q{`wGVVO*M*zUb{Dn4h~8Rw4Ec)%ZZn`;YmP^|Ywjvt=ABPE=N9*F4o) zN&qhoZphnx(edS*6$ zO9Z1x<$O((Tj*p8y7SxcJ@C9KTblD`3M% zb<1~^n?Bd2sM{Oe&=&Q3MqQCSBp({e77v zQ(2zH$c<8|4OWh4Y2I~BezHk!*YLtjZNV42ZG@CF-c{Zn0!2cG`4)bnP%trP}^&HImjA&;un$y0GO?dCA484SLyq51GCp}&@h5wC#-cttif zH$jG$|5BdFqdx;7yu35SIn+KjNiH|CTrasQrk{c=TMJJ@AYeDr8d^>lrRtStM%57E@yi^ zDvEb|B1W0&ixJ?8J-8y6H_sONTW0oLg#$7~D{P$9I);?dDlZeZWauxQ2< zI=k1viYv2Km$Fv1)lnl&$qOSQ#JXV24#P!^2l7#!z54+~8T5pvn{9K`eCKRvb+uKv zfWBehF4*k=TDa%g$231j0XAp2qV`}$rvS2zZ;Z>TYJ?@@K3d$E&ZCFijrq3&A$N(XBg;C`U1JmpNY8t^)o1rYP?9 znxzvEZYa?uGjct(x-yt8*gWN#*lCr&j(m>x;yAYEBf_a&01k+X5q`T*zUC?+!h7Y3 z_kke1ko(VY9({G|Bc9Tix1~Tn*!p6$_pKG8&UgWSU(?a#Or7aD{9%8Fy{~q?ZPCV% zw!wjRa|S*{Du${rh0iYA$pAQgLM|h`03O}7PX|dwdVamHQ$5{pCeIu%q~x%y%i9~s zn4tA|w_7xASf?LVb3{cHUH=~QS(GHaJObn`#Y>xd*J{=jStypA`n%J#G*5Bnd>NaP z(e#Sb(i=l?V--Oap55csv1)ilAU6YUO#7>X|4ZMPs<`CMwv3)8phbukmjjATzX}OU z8~>Fp6t)3X90bP^=07RJ3=pVdYN)`Ve-1!Zm|Fl7h^VHWbU~YcjD*^lZtVHcnjBy+ z&JH{gW=9}pi(Ro2N4`Y)3-f^ou!%sxgX^N>Ipd(d^%LOnX-yoWWJ#3$_u%761qGue z^5z3`S!Z$rN-OS<$!?%Pwhw35wRuFA8wMJsA}uMd^SA-@Q3fB@>uD^*VSwHxbrqZ|P5|T8TB@JH7&dkn+-P6%LAaKuI ztD%6gy&Om>AKLZOmClZ?PL@Y|a35R4#7ega#Tpov$(R3p8>oG5#(4JfCB4g&`@O7} z8Lf+PDYS?{%^v3WLk}xob4Zsf{UWbs6m+Y@a<6^(=#-rEz>X~+$4c*v z9$f8z{NV~#I}v-gsVj=E3k@vbHg1-pz-*5K^ab1Vrq|p#L=5|S>Tuf0rXya)R!<1RWL>RGg<+0|Q zc*YlEx5LM0{ju@d`NIq8)TP9K=y#5o<(|~%GJwuqA2t{Ka}@jj9DZ=Nvx&SlYTd{f zaa-Xz%p7+z7$gK?V_rPLD2em<#2+5(3qDBKa!Qgi(;bPsr1RF2@sM@uB@6($S#eP~ zIDm)_Yx*=9K&F5PAjD16r;!jlN&kksm~XaN@pA}x*<)XOjdqNJSO}7VsdkRv# zanO+02`;O<*OU$%JV&t4S95xBVJ0SW5ysY`NbgFF9|Kjg0CLu2_3TflO$+B*6$7a9&VdeXFG*ctYmFhsXCL^ zC#0Pv+C^2>5SDwsr`W^?!%pSD*+gJpLKlH-ksQZN2vC&dz^*!uKD}rPpZ_DvP~-1j zv)5|yQ{PxCYC$HpyCw1MOC!~2%hQa{<)%@;TTyLqnB8I(aVwIo>#qd z3Oa=U-(3UUl4O750}u=|*_^o-;jvpd_d7~ScbGRugy$x^zwcnE-}D2%?6(kYKk0dP zOW0efP1kg?voE*ZcbUF7Fe!C z7>~l;DeTH$Pot)&d*on+Wbc0^rel^Yz*F3uPtzQ%~B&Y){%ZtEz02{;&+G9J>f8^L>a87$u;@WnDGm~g3Qo(Y2KhI)JV(iicH zqvgDDho#k1Wkn+h3HO%gV-DVmz30NMNi*Sv0jje22)LS7D8{*XNzTn{f+}hH40ih4 zaPM4OgY?EXT)A(5Gl|biDk^sOnr7=r#RIvr+;n>|*Z;5yLerTz=v*z}i#@9@N+?*m z(>^deH0p}Ej^V{|-OHn_TGP9;MfdedK8uHXf~=KB-MzPbSYj{5Tp1NN1ncl)LgHjb z^6qRAOp!%@6GnRp9$WL5`>z!{pJAq7ZDSA5e$bJ)?#7lZ<^Ejja%INKZ1B0H&9#~^ zB#2krrY;TU>>n~~&wQORH6siv#FYyDt=uZ}*x2#Q{cd#p*<-WNie1$2nCyx7W$$nF zR3g>R)iht`*$eSp3KA3K%lLXZ?xo@e$dfc}dbwr$ZouB8{1Y?9AEp)$+A}KCBXFp3 zzrT*T{S)FHE;56zGjb}bY}C{&^mzj_y0Gt)GYO099%6P6t_-R%q8k&tiqH|J|dNd`i3(k?2Uf`FtDi&zGJQGcQp-Yb;eDt*=P-{oL;*4+`sbv%PPoZ!QlEBiC{p zZ2c6v9?4-9WNP))*dSrp4j=H5XTbmrg$?wIjN#b&(brlBXb`f%YKkQ35~Y zxwITHZ4Mkb1qN%F0-+7!penYFt)RV=KoG;nzXf&N;J|JWfVl!M!i_jO1}j-abq#x1 z2KFgn7?_I=7m9=W_5lpD?7pY0q)pDMZC#YHWN`EA9C*5D`Jj8-ba1De#$sNb6O3rU zTjG`E8u%i2;dZsb;jqJUT)W^xn(J0>UIP0K(@C_4@Ub-vvz|{KFg?$a2Yp#>DTRiw zOurlryTKf?&za?~KYF%dXvvrih*LYo zED_kT4o4qQ z;O7+Mvgr%Of>Ig}{l7-R{r*eBP=%KSIZfK}XkZ_w(E z%F04AWB0epcv-tEybkzcn+}!S3uRGYEnlGDC?DGCMM9W}Qk}rKH!1gZZs(qlDMf^< z^`dxNptjaFooHX|NH|Bv`K`jXf*gBAflB;dn-~2QUnU>%At8lAlxNg39h%H+Uw~(yqX%9vA=ceD=sx8e8SLz?k;SvBQ})Aq-1S;gutwFR%H&{#T-mFnyW@C|9Ne4lj}dtm35U(^MxZG(sSf zg!DKdWdR77NTHyVl>+iq6xne+3Z>1Wld+yk=&I}vc`859sq%m4&BS1F(6|RCZ$@x& zts=9S?6ocyXVI$1IK!KHmC9+eAfa}U)bw3GE}j^?@?KS9aIzxY#4hVm=n{D5b7Wz3 zBHzl0v#2<;SL!pdC;rtQbu8@6*K~Ll^VB)eA>w~8!3a>O{li%SsM?55P__%@-y_zS zOSS$SRjEZUx;itXXZ0)36uwiR51z*ldK>-&acdWtyR0Vr*pOUmyfaG`RxibzG&`_e z`QsGMB#!R{gEKvH8dCx0zRu>fj)`w{f;O40-!V9Yf#)<_wxU*kj~3z!t$phX)0~;e zJ(Qq9hL`5iN#V7OY`K9Ry6smaGZqBfn%PFu87A}3^uIIXe5g5}Tfoq_S&^7{iVu?5 z8^c^NZqZIa>P~}K-@`KbbLu`3j$1uiSb%o_jH-z&^d8QhqTl|r&fL*cYyHWsL(ZzV zj|E4A3-9YL$N>5u?MqqXS`~SZr|F5EJ<{<;?)7KH(~ab>)fOpy!vORXMtYqJ(kaYU zJFoO}IZ~+AU$8f;Os9L0rqZPDEv?CvqMn2CPT#N~v+GNQWo`7y2C#eYGjn2|y-ZCc zAL+fG;iLVmCi)LJVxCV`%2CUECE&|oHYo+ct@3qu;O!%%VQr7{V8wTGkVA!h^`97p z028mMVn%ULn_QW%|uMLvN%&IH)^hY0=crJ4m}M)W6kgGY69-1lfgM zLxEJIGvN1`D(j4m+{=$X+^X`Vcx8Q^7W71Ni5A%viB|m_A=nPR?@aUrhyNX=l4ki4 zo*7PaCj&ZO8hfo+SQ85h^-KfMGMCX!%QGA-@{5xfx-Fbkc3XFq-@;|WXy=18QCG${ z)){pkkTI29E7Wx8`&TBRC?1Ury;}dG`c6{pU~klSgR0wB%=zzcjMgU zxU`8Jw-dhg68)??_pa${;~#?DYhPArRqhgO>p>v-mZu(ON}hXmetgX5{DuO{CMPmi z`v=EMoZ)wNpU9xk00c54AnMkmmoY8VvjtX4;!^?%E;D^}(30L|j8y*O_YEgmF|a6m zVW0QNVR)mAUZC`jy9$b07cX&5CMk9SE0tHd`WkOQPgv17_Ksy;{`ZOsvPw`JI@d14uYD@+W%2i;# z76^c885%$i(?L$Ll4>49ZMRiYdZnAMu9|@Fm zW3ws%6W5)xh}gb9g*_R5y{g-NW;0W^uTMO2z%mv_T(QHi0 z9_w)*W3mSgg*wE!oZi3m|AGP?X`fde1mF}{3s8yWp0`TiL8L@jMjY~(PF>((dzgO# z3_D!p*bt*XvONUff9&tP8h|Im8S|s#@QJr>v5$s++9@ob!_MR%mQQ}ZqJQA1cq{$E z0(MF-Mred_)T?_gXFJ^4m<}n5AYa#a9He<`8Zi+W%I?7c1Eqsl2S~>oMx1WGQm-(# zOlE0fG_m)`vpwv1XeacN(*Sf;hc!RRP*`MjqoobmnZ>#Ch4L}|z+}L(ZT#1jg4Oa< z!I%8;)A>6m?7|=g6f#1;^6;AbMz`Hd+~r{3Y}gU`B&)tf(IKprL(1xmUBhC)m(2&@ z`PWYyXp^ZT1p6KY9eIIrm{T` zjKl>an>$IHqb1B05EefSfIz$-w(fwuRy^@a#D3G<%Gmm^6;Ei1Oh@7#WgBr!K@{VMjt;>+ zUnrrcQ?v|B)b1M$C&*iZMyiUElJZFnhVi5?OCQvR4({lzAc#6S_ zFzf{}O8P%PCUN-tYZ4fE>6r)-N!ihh;(_n7AHyRq@`VYGKkmlk3~obwR^n;e1Ft7f ztmdkJdWeUX7R8CgrL=3L$+J(MJI^XPYcim9)%FyFm5y%_%J}I@P_gm8OCmwiC>0@P zz{J4(!ymM*tiShn?0==YEb3c<_@m!ld;GuPFXYb=1j0(bA>PFL{@T;!`_xy8@Ch)z zhxSrFww7-EUs<^b0_uSKUchhD#m&1Vd?_Moxjin~l4-PEvA;e_%Q?RS@r%g>;;!X{ zn@l~a8s~f+*?6@EOz>Q>Ia)%&gCa8CVF=!faj;Km-L4-O%@#xzP+y7tWK-!%DO>4k zYiNRPnn^193dH|6E9b0O^b=tFv9DtnI%N8}U#)(6;vONHn^Qf`^LHMfG?Tl)FVx^Q zM$e7%IEBxV@@po@k>aOvU5yqGGEmVel@YeBV9u?G2uhN!=Z5_bjLh>UEgva;0%cWG zo*oEhyN(hv)j-ZhLxRFVVbl>SF*ul<2Y@0$h*SJ`e1sW;4#6lb6d;{Y7^}OO5vV}D z>FqRP2+UE~@^^~~tT4y_CH$#jIKXL159dGtMzpk~CnIr~Ex}y{S`r)-)rltiKq(qi zQJy675m2escjU#Fj;lPNYig6-S)a{c8t)U$ay(cInOBH4{Q-c=>?8@N5{FD8A3a%< zba`jhraCvhkXlGZeE~UjZP$QiGb0+3eew-{S+@Soh9t9VZjEjlK4 ztd9cuL$439RBp~G)lZ_sRgdi*C*gD-?DlkO^zPj|TbK>17Ja$)k>`%2eN1tK$jdfu zgC=~CcV#zg$U=34qsqT9b_yBs%7m!;!0;U(dx*dNi-XJ#w1?WUJ%}bc1)$;!tx@$B zkF`unn0_{s$o;BKpAeCtZG73cvpM~pX^%is>l;*$=Fcit-`h&*u=4ZFRVUcFG@sQp z(|TZXzK;%*hC?C&KQmeZh|!@KM$3?ku`%VoP{<}Bb8#nd$C-TROl5uMXgJ)5eBkZ{ zM{kUrxqi&oYr}hZJ%TD+A^XhH5}l%_e(%(r3O|caDn0$R*$?1)`as_&QVva+n8w!t z?QdfdSu2#}1*JF{BAbZPoMb()I;uLHmRf1TgM^-iU(pKjg7TI5ea|sA)oV^fFF2z< zK#PL@@^nlmZx@Aim6ILph5~S6VunCW_BS=l0d+tqr-cAbMhf{=+VRoQk4phjLnBfY z^|4bx3AgALtnwkoN=vYy{%!exXWZ0banN|_$r7T<)#QS=lOA{w#nht)@BQeddg7`7 z$l`O}T5IT`$w0-A1SR+578)x8U)J>I+auV+IR{~1x&X)Uq z$Rytwjsf{z@5^@zEIsA<`CjA>+qdrc77rXhHGo9yU2A?njbQmHu4-T>@|R)%!re;g zT2a=k6GB+9s(vVFneKuQc`a%Y{(g`l9G5vL-mFdM;w@EV$Q{%Zi~EZ1KOdxa6ZTZzP1JWFnjH}zW>3-oTbl}4z# z@?U*%3asakpU&S&VZcf-ni45ynPYGPGa;bBngg4DE2kOwevc;*y(W7glP`5uk}_iYbHVhbV2+;0qRdx4;Hc1Aaz)DKOy zi^%VZp60w`HE)d4cvLoj4A(`+ndt~%^KZm7SdWDAZ_)2D4#|g5!`%QYBcnsP>=9u> zL4(0I-@8>E8xn0l2{_seP)^1Cu#a0s0l0Qt^#7ZH(}G@z8tx`ABgbrs0$qRom>XFw zHmYD8`?v?mMWgYM9aL?~=BUv+IHvmcp)MsX#{lPKMP= zllZlmNZ_YasMJ0-oo>t;HFqX*-tDRH0xoA+BQjS7tp-1z%}rr_WXCZ1SS9zH14zB9 z`B~>>#*qojWxB==f~lhemnfv%_&pbAO~b+{mwdFB4%XWLJKX;FtCl{kxoW2t+qH@h zugL1(+x7J(-I7eFwBE6>nm}aYXo=#2EOpmkxBm>}5&70+SWNS)z~oNgV+N%b3CVs^ R$3sbdFG$<)u-XQ5{Xap8I!*up diff --git a/tests/debug_getRawBlock/get-block-n.io b/tests/debug_getRawBlock/get-block-n.io index 40aae782a..dde30967a 100644 --- a/tests/debug_getRawBlock/get-block-n.io +++ b/tests/debug_getRawBlock/get-block-n.io @@ -1,3 +1,3 @@ // gets non-zero block >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf904a5f90240a0a111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a038ea140fb8eb50f1ac65fd96a06f3aeb01687c7c94b0d48da364d44acc3d54dea0d299151ff63157c3f358980eb9f723bcf76a7cb44887ce7e16a84d23b2e14ae4a056a013758ed9d533148e72dc8c697d122c7d6478bd547154451138f4368f0e5fb9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000800384023f3e20830231141e80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000084281d620da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a0756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67f9025db8ff03f8fc870c72dd9d5e883e080184281d620e830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038cdc4c8669df128318656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f880183020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6880a0478385a47075dd6ba56300b623038052a6e4bb03f8cfc53f367712f1c1d3e7dea02f79ed9b154b0af2c97ddfc1f4f76e6c17725713b6d44ea922ca4c6bbc20775cf8770984281d620e830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c3f446a7c4145b1f0656d69748718e5bb3abd10a0a0fd8bac0ee686dce51ee5b859b2f9f9b766506ba6d0ccee60673e432fa6674ad8a031f682f506513b51dc0ff7fe4ba430ba468e32f87c3a2ebfcaae58a48310267cb87002f86d870c72dd9d5e883e0a0184281d620e825208941f4924b14f34e24159387c0a4cdbaa32f3ddb0cf0180c001a0a67e1e78ee61a63035f53d7a18eba15970cfe134ae35aeec465720d9fafba4f2a064f465780b1a5b7d522c6442936cb18530621e6d65621bcfa600b57446569e3cb86f01f86c870c72dd9d5e883e0b84281d620e825208943ae75c08b4c907eb63a8960c45b86e1e9ab6123c0180c080a0dcd5ff27f05a587f811936ca3822fbaf1c72dd3d40561a9a7addd552868f52f4a043d2e24e037ec3b34ade0969b5cd7cdf03c96069630ea76e3cb355e464bc1517c0c0"} +<< {"jsonrpc":"2.0","id":1,"result":"0xf9056cf90261a0f8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01a484651602ae733584016c5dfab95de8cfa74d9c749c9e2fe773bc8e8a325dfa0ef3818352b94fca264dc37feb9a6748e00185ea54291655b716f57ebab28d3afa05f7e046f4b5c311a55d03ffb28ac8c8317bdc33d64b4dd36e6cc80b26982f052b9010000000000000000000000000008000000000000000000000000000000800000000000000400000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000200000000000000000000000000000000800384023f3e2083046a081e80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000084282416a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a0756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67a057cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543f90303b8d801f8d5870c72dd9d5e883e0a84282416a8830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cdc4c8669df128318656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f880101a0f341a34ae4f66c156552aa672d054c685a361240c66ef75c07f65ac69b1e2f7aa07200d4f70fdeb984fee0dbe79a3d729ee28a392f5f58cda722c0212123df95cfb8ff03f8fc870c72dd9d5e883e0b0184282416a8830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c3f446a7c4145b1f0656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a45683020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a03f05d73d107c94d50470342a6c5d133dca225f858d68ea4fd95fa16503c217b7a05e94d20059c6191f17297401df493a5a1e93265a22c306024bd9d87016034e13f8760c84282416a8830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c96fd14b8fdcbd4a9656d69748718e5bb3abd109fa05b328d8b937fcdb5b6f4b7966406b8ed2b931933a1562d14b5fc90bfc679d8019f36f6a5c3791f10762d299f391c1327480f8d51fb69ac98c161ebf466d91db3b8ae02f8ab870c72dd9d5e883e0d0284282416a8830249f09409fc772d0857550724b07b850a4323f39112aaaa843b9aca00b838b917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80c080a0883cbfe8510f86be00f75a5b67e5e589e5db735e52681feffafb2f8448450bf1a07760414c0411c354c69f05489f275dad0777255c2414fb705cf229d5f0c2c29bc0c0"} diff --git a/tests/debug_getRawBlock/get-genesis.io b/tests/debug_getRawBlock/get-genesis.io index 344654447..a2024e7c8 100644 --- a/tests/debug_getRawBlock/get-genesis.io +++ b/tests/debug_getRawBlock/get-genesis.io @@ -1,3 +1,3 @@ // gets block 0 >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf9024cf90246a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03f721d898239f0f78c63ec54498e1533ac29cdf335b5682a42f97d19b6e83e86a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000843b9aca00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0"} +<< {"jsonrpc":"2.0","id":1,"result":"0xf9026df90267a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09dc4958e19a5fe8e30e0b8e826375d4f89f362fbf272433977730285cf3cb741a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000843b9aca00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c0c0c0"} diff --git a/tests/debug_getRawHeader/get-block-n.io b/tests/debug_getRawHeader/get-block-n.io index 49e3a139a..9ab74228c 100644 --- a/tests/debug_getRawHeader/get-block-n.io +++ b/tests/debug_getRawHeader/get-block-n.io @@ -1,3 +1,3 @@ // gets non-zero block >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf90240a0a111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a038ea140fb8eb50f1ac65fd96a06f3aeb01687c7c94b0d48da364d44acc3d54dea0d299151ff63157c3f358980eb9f723bcf76a7cb44887ce7e16a84d23b2e14ae4a056a013758ed9d533148e72dc8c697d122c7d6478bd547154451138f4368f0e5fb9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000800384023f3e20830231141e80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000084281d620da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a0756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67"} +<< {"jsonrpc":"2.0","id":1,"result":"0xf90261a0f8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01a484651602ae733584016c5dfab95de8cfa74d9c749c9e2fe773bc8e8a325dfa0ef3818352b94fca264dc37feb9a6748e00185ea54291655b716f57ebab28d3afa05f7e046f4b5c311a55d03ffb28ac8c8317bdc33d64b4dd36e6cc80b26982f052b9010000000000000000000000000008000000000000000000000000000000800000000000000400000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000200000000000000000000000000000000800384023f3e2083046a081e80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000084282416a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a0756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67a057cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543"} diff --git a/tests/debug_getRawHeader/get-genesis.io b/tests/debug_getRawHeader/get-genesis.io index b25fd577e..7f7057cb7 100644 --- a/tests/debug_getRawHeader/get-genesis.io +++ b/tests/debug_getRawHeader/get-genesis.io @@ -1,3 +1,3 @@ // gets block 0 >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf90246a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03f721d898239f0f78c63ec54498e1533ac29cdf335b5682a42f97d19b6e83e86a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000843b9aca00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000"} +<< {"jsonrpc":"2.0","id":1,"result":"0xf90267a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09dc4958e19a5fe8e30e0b8e826375d4f89f362fbf272433977730285cf3cb741a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000843b9aca00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} diff --git a/tests/debug_getRawReceipts/get-block-n.io b/tests/debug_getRawReceipts/get-block-n.io index 30fd85571..7cd2e3e69 100644 --- a/tests/debug_getRawReceipts/get-block-n.io +++ b/tests/debug_getRawReceipts/get-block-n.io @@ -1,3 +1,3 @@ // gets receipts non-zero block >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawReceipts","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":["0x03f901850182ca9cb9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a0462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801a00000000000000000000000000000000000000000000000000000000000000002","0xf901860183018d04b9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a0b52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456a00000000000000000000000000000000000000000000000000000000000000003","0x02f90109018301df0cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0","0x01f901090183023114b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0"]} +<< {"jsonrpc":"2.0","id":1,"result":["0x01f901850182ca9cb9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a0462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801a00000000000000000000000000000000000000000000000000000000000000001","0x03f901860183019538b9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a0b52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456a00000000000000000000000000000000000000000000000000000000000000002","0xf9018601830257a0b9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a016c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81a00000000000000000000000000000000000000000000000000000000000000003","0x02f901700183046a08b9010000000000000000000000000008000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f866f8649409fc772d0857550724b07b850a4323f39112aaaac0b84c7435ed30a8b4aeb0877cef0c6e8cffe834eb865fb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80"]} diff --git a/tests/debug_getRawTransaction/get-tx.io b/tests/debug_getRawTransaction/get-tx.io index e8af6f77e..b8eea5e24 100644 --- a/tests/debug_getRawTransaction/get-tx.io +++ b/tests/debug_getRawTransaction/get-tx.io @@ -1,3 +1,3 @@ // gets tx rlp by hash ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawTransaction","params":["0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf8948084342770c1830131ec8080b83c600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f38718e5bb3abd10a0a0df95c12446d276292221a19cca4f3e678f113a412bf3845bd85dc5bb5bd87defa00523b1712e2f5a7b421f5740d32f51fd33a525026a21fd89770a55480ad28732"} +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawTransaction","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xf8938084342770c1830131348080b83c600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f38718e5bb3abd109fa04bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd8390279f0a29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"} diff --git a/tests/eth_blobBaseFee/get-current-blobfee.io b/tests/eth_blobBaseFee/get-current-blobfee.io new file mode 100644 index 000000000..9b03cc506 --- /dev/null +++ b/tests/eth_blobBaseFee/get-current-blobfee.io @@ -0,0 +1,3 @@ +// gets the current blob fee in wei +>> {"jsonrpc":"2.0","id":1,"method":"eth_blobBaseFee"} +<< {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/eth_blobGasPrice/blob-gas-price.io b/tests/eth_blobGasPrice/blob-gas-price.io deleted file mode 100644 index b87966b73..000000000 --- a/tests/eth_blobGasPrice/blob-gas-price.io +++ /dev/null @@ -1,2 +0,0 @@ ->> {"jsonrpc":"2.0","id":1,"method":"eth_blobBaseFee","params":[]} -<< {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/eth_call/call-callenv-options-eip1559.io b/tests/eth_call/call-callenv-options-eip1559.io index 83f89fc10..51cee4dc6 100644 --- a/tests/eth_call/call-callenv-options-eip1559.io +++ b/tests/eth_call/call-callenv-options-eip1559.io @@ -1,5 +1,5 @@ // Performs a call to the callenv contract, which echoes the EVM transaction environment. // This call uses EIP1559 transaction options. // See https://github.com/ethereum/hive/tree/master/cmd/hivechain/contracts/callenv.eas for the output structure. ->> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0xea60","input":"0x333435","maxFeePerGas":"0x44103f3","maxPriorityFeePerGas":"0xb","to":"0x9344b07175800259691961298ca11c824e65032d","value":"0x17"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000c72dd9d5e883e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044103f2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e46043e63d0e3cdcf2530519f4cfaf35058cb20000000000000000000000000000000000000000000000000000000000000017"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0xea60","input":"0x333435","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0xb","to":"0x9344b07175800259691961298ca11c824e65032d","value":"0x17"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000c72dd9d5e883e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004426f5d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e46043e63d0e3cdcf2530519f4cfaf35058cb20000000000000000000000000000000000000000000000000000000000000017"} diff --git a/tests/eth_call/call-eip7702-delegation.io b/tests/eth_call/call-eip7702-delegation.io new file mode 100644 index 000000000..a5d0715c2 --- /dev/null +++ b/tests/eth_call/call-eip7702-delegation.io @@ -0,0 +1,3 @@ +// Performs a call to an account that has an EIP-7702 code delegation. +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000eda8645ba6948855e3b3cd596bbb07596d59c603696e766f6b656400000000000000000000000000000000000000000000000000"} diff --git a/tests/eth_createAccessList/create-al-contract-eip1559.io b/tests/eth_createAccessList/create-al-contract-eip1559.io index ca4d030ab..d01d74d0c 100644 --- a/tests/eth_createAccessList/create-al-contract-eip1559.io +++ b/tests/eth_createAccessList/create-al-contract-eip1559.io @@ -1,4 +1,4 @@ // Creates an access list for a contract invocation that accesses storage. // This invocation uses EIP-1559 fields to specify the gas price. ->> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","input":"0x010203040506","maxFeePerGas":"0x44103f2","maxPriorityFeePerGas":"0x3","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","input":"0x010203040506","maxFeePerGas":"0x4426f5d","maxPriorityFeePerGas":"0x3","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} << {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2"]}],"gasUsed":"0xca3c"}} diff --git a/tests/eth_createAccessList/create-al-contract.io b/tests/eth_createAccessList/create-al-contract.io index 1a65693c9..0d335bfa1 100644 --- a/tests/eth_createAccessList/create-al-contract.io +++ b/tests/eth_createAccessList/create-al-contract.io @@ -1,3 +1,3 @@ // creates an access list for a contract invocation that accesses storage ->> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x44103f2","input":"0x010203040506","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x4426f5d","input":"0x010203040506","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} << {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2"]}],"gasUsed":"0xca3c"}} diff --git a/tests/eth_feeHistory/fee-history.io b/tests/eth_feeHistory/fee-history.io index 352bb6d2a..f3d5c5079 100644 --- a/tests/eth_feeHistory/fee-history.io +++ b/tests/eth_feeHistory/fee-history.io @@ -1,3 +1,3 @@ // gets fee history information >> {"jsonrpc":"2.0","id":1,"method":"eth_feeHistory","params":["0x1","0x2",[95,99]]} -<< {"jsonrpc":"2.0","id":1,"result":{"oldestBlock":"0x2","reward":[["0x1","0x1"]],"baseFeePerBlobGas":["0x1","0x2"],"baseFeePerGas":["0x2dbf1f99","0x281d620d"],"blobGasUsedRatio":[0.5],"gasUsedRatio":[0.007565458319646006]}} +<< {"jsonrpc":"2.0","id":1,"result":{"oldestBlock":"0x2","reward":[["0x1","0x1"]],"baseFeePerGas":["0x2dbf1f99","0x282416a7"],"gasUsedRatio":[0.009855751478868038],"baseFeePerBlobGas":["0x1","0x1"],"blobGasUsedRatio":[0]}} diff --git a/tests/eth_getBalance/get-balance-blockhash.io b/tests/eth_getBalance/get-balance-blockhash.io index e87fc88f7..099f4819b 100644 --- a/tests/eth_getBalance/get-balance-blockhash.io +++ b/tests/eth_getBalance/get-balance-blockhash.io @@ -1,3 +1,3 @@ // retrieves the an account's balance at a specific blockhash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0x2a6275cf6c145fef2429949e11f0db11f677c456e3f595c92d9b44d51196d50a"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x1d"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0xef7f2a4871b329673b69d84abfb8c4e1e94fc6fc63daee9265d4c7f9672c6005"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x1b"} diff --git a/tests/eth_getBlockByHash/get-block-by-hash.io b/tests/eth_getBlockByHash/get-block-by-hash.io index 2c4fe5ce0..9173c3e1c 100644 --- a/tests/eth_getBlockByHash/get-block-by-hash.io +++ b/tests/eth_getBlockByHash/get-block-by-hash.io @@ -1,3 +1,3 @@ // gets block 1 ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x342770c0","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x4ee5f","hash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1","parentBeaconBlockRoot":"0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd","parentHash":"0x414c637788e37e9f65ed2c6ee962d32aeea39722ad50ee764e712fabebd69118","receiptsRoot":"0x061f3f6edb0780e654014c901221182d4818a7bcdc83d2bee4346808ba112d6d","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x514","stateRoot":"0x1d8e1da7d359fcd42fc571a957cc1f8991cc0b363c1221a2b3a3f84172cdbaaf","timestamp":"0xa","transactions":[{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x131ec","gasPrice":"0x342770c1","hash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xdf95c12446d276292221a19cca4f3e678f113a412bf3845bd85dc5bb5bd87def","s":"0x523b1712e2f5a7b421f5740d32f51fd33a525026a21fd89770a55480ad28732"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x15036","gasPrice":"0x342770c1","hash":"0x9f89ad067ded5c5ba1b582f430010bb755c0b98a1d8cc8ae7d4faed9d63ec6be","input":"0x600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3","nonce":"0x1","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x1a51471246dada5e38db19abda77b1e87eb740585b1869c524d9d3fad02a1f51","s":"0x50b40c0a0788d8769d5978a7be7467f5fba4cf785a498bde8264ae4e9b5d06a5"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x17e4e","gasPrice":"0x342770c1","hash":"0x0bc1f055c79d640cb2b9d12708e3f55d82766596349e24bb3715dd996924a2d2","input":"0x600d380380600d6000396000f360003515156036577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd","nonce":"0x2","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x8d66915ead62020f39d2a369b4fcc72f9cba2080aba35e26831df3ea59c995f0","s":"0x3e790e94433eb0822ed9854aff51406e67c9b090cc5ce3002204737e8857f95b"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x1bc1c","gasPrice":"0x342770c1","hash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","input":"0x43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f3","nonce":"0x3","to":null,"transactionIndex":"0x3","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xcdf976a093022e24e498e02cd505a09307321d11f6f3f8b9e5456153b912631a","s":"0x3aecc24af018c1188130f7032aacca3f5cde8958937d2bcdf2b037e917cd70a5"}],"transactionsRoot":"0x34a71287a6d86acb93b854cef7007ae18bc484597cc05773e7d5a9f6ed21d9c5","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4",true]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x342770c0","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x4ee5f","hash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1","parentBeaconBlockRoot":"0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd","parentHash":"0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464","receiptsRoot":"0x061f3f6edb0780e654014c901221182d4818a7bcdc83d2bee4346808ba112d6d","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x534","stateRoot":"0xc218c6a7fe6afe137592c08035628468319a71ec3ec938286f750520468146fd","timestamp":"0xa","transactions":[{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x14f7e","gasPrice":"0x342770c1","hash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","input":"0x600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3","nonce":"0x1","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x705f2b3623a84545c92eaf588f84817657395bc43f6e1167de9613090c3743d","s":"0x27fa18a9c90e62aefe3110e08183897252de0295edaaee489966d0b65d006479"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x17d96","gasPrice":"0x342770c1","hash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","input":"0x600d380380600d6000396000f360003515156036577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd","nonce":"0x2","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x583a345eede64b0f8b15732be69bbb432766b326ef4c4e735e2a25ce569c2d9a","s":"0x592f759ae2cb9a5bd3e489c5a1efd46d73ebfdf16c13dc195ae1b43b6f22e34"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x1bc1c","gasPrice":"0x342770c1","hash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","input":"0x43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f3","nonce":"0x3","to":null,"transactionIndex":"0x3","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xcdf976a093022e24e498e02cd505a09307321d11f6f3f8b9e5456153b912631a","s":"0x3aecc24af018c1188130f7032aacca3f5cde8958937d2bcdf2b037e917cd70a5"}],"transactionsRoot":"0xfff3461a7e0f5d44052dc052f6dfbff287d500e8db3460e22e331d80a2a31353","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-block-eip7685-requests.io b/tests/eth_getBlockByNumber/get-block-eip7685-requests.io new file mode 100644 index 000000000..62cebd8bd --- /dev/null +++ b/tests/eth_getBlockByNumber/get-block-eip7685-requests.io @@ -0,0 +1,3 @@ +// retrieves a block containing non-empty EIP-7685 requests +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x3",true]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x282416a7","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x46a08","hash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logsBloom":"0x00000000000000000000000008000000000000000000000000000000800000000000000400000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000200000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3","parentBeaconBlockRoot":"0x756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67","parentHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","receiptsRoot":"0x5f7e046f4b5c311a55d03ffb28ac8c8317bdc33d64b4dd36e6cc80b26982f052","requestsRoot":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x56f","stateRoot":"0x1a484651602ae733584016c5dfab95de8cfa74d9c749c9e2fe773bc8e8a325df","timestamp":"0x1e","transactions":[{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","input":"0xdc4c8669df128318656d6974","nonce":"0xa","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xf341a34ae4f66c156552aa672d054c685a361240c66ef75c07f65ac69b1e2f7a","s":"0x7200d4f70fdeb984fee0dbe79a3d729ee28a392f5f58cda722c0212123df95cf","yParity":"0x1"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","input":"0x3f446a7c4145b1f0656d6974","nonce":"0xb","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0x3f05d73d107c94d50470342a6c5d133dca225f858d68ea4fd95fa16503c217b7","s":"0x5e94d20059c6191f17297401df493a5a1e93265a22c306024bd9d87016034e13","yParity":"0x1"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","input":"0x96fd14b8fdcbd4a9656d6974","nonce":"0xc","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x2","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x5b328d8b937fcdb5b6f4b7966406b8ed2b931933a1562d14b5fc90bfc679d801","s":"0x36f6a5c3791f10762d299f391c1327480f8d51fb69ac98c161ebf466d91db3"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x2","hash":"0x834877cf885973710dbea20f5a73ac9c1fa932e9dc0d74f090c9fca2fe281a18","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0xd","to":"0x09fc772d0857550724b07b850a4323f39112aaaa","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x883cbfe8510f86be00f75a5b67e5e589e5db735e52681feffafb2f8448450bf1","s":"0x7760414c0411c354c69f05489f275dad0777255c2414fb705cf229d5f0c2c29b","yParity":"0x0"}],"transactionsRoot":"0xef3818352b94fca264dc37feb9a6748e00185ea54291655b716f57ebab28d3af","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-block-n.io b/tests/eth_getBlockByNumber/get-block-n.io index 714b0cb48..cca187b1c 100644 --- a/tests/eth_getBlockByNumber/get-block-n.io +++ b/tests/eth_getBlockByNumber/get-block-n.io @@ -1,3 +1,3 @@ // gets block 2 >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x2",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x2dbf1f99","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x45a1b","hash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logsBloom":"0x00001000000000000000000010000000000010000000000000804200800000800000000040000200000000000000000000800a00000000000000000000000000000000000000000000004000010000000204000000000000001000000000022000000000002000200000000002004000400000000000880000004000000000000004000000000000000000000000000000000000000000000000000000000000000000020400009000000000000000000000000108010000000000000010000000002000010000100020000000080000000000000000000000000000000000000000000000000000000000000000000002008000000000010000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2","parentBeaconBlockRoot":"0x2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e","parentHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","receiptsRoot":"0x86bac29aa9deab4f88fd6234835596f7ede2f59f068167bb1b9fac6772f65396","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4e4","stateRoot":"0x34c5e1bfa5d2926acbb4521a281b1e24d12844f7f61a191f5a62bccc6c65f804","timestamp":"0x14","transactions":[{"blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11f58","gasPrice":"0x2dbf1f9a","hash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","input":"0x4360005260006020525b604060002060208051600101905260206020a15a61271010600957","nonce":"0x4","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xf69b5bccffed490be6ab9b289262ac6147bb6a23f3b061e7356d5d9bc77ceefa","s":"0x101b956c4a93ffbf89484e68ca23763d045293b2df67c75c2a1c4349b3df0880"},{"blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x2088a","gasPrice":"0x2dbf1f9a","hash":"0x9c59ab4e3d9e2e06c778e270db5e8dab71586ae519b4bbfd0e4a88d5e7213292","input":"0x435b8080556001015a6161a810600157","nonce":"0x5","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x5934bc3388ea75269767783e0ee816deba22e297b596df122299ac92ea674c0f","s":"0x633b50dc84f67caf787dc5d4d96ea9a31eb98db10f92fb90a71865bb7d06f337"},{"blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x847f7a3261988dc4a34be85f4c28d5d534d47775792e9d25e1d9250cb2fb77eb","input":"0x3550170f18924a7a656d6974","nonce":"0x6","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x2","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x31ace74221ddb23d51ebfcb9e8c81cd8dc9b7d1e5522b52cbd2d3515f5970295","s":"0x7d04bd8244a39ceab322933d2613258106dc3050d4088ea496ed4b6d77ea9917","yParity":"0x1"},{"blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","hash":"0xa0762610d794acddd2dca15fb7c437ada3611c886f3bea675d53d8da8a6c41b2","input":"0xdb5306248e0313e7656d6974","nonce":"0x7","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x3","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xa3d07a7d68fbd49ec2f8e6befdd86c885f86c272819f6f345f365dec35ae6707"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xa79d18ef525b16a0ae153f48a8329e0cd5d6a97fac645008943bb5d996b82d2f","s":"0x385305da7dbc3135dbfa4cf02631b1eef49025bf9e76d4ad05a0ba19831ad525","yParity":"0x0"}],"transactionsRoot":"0x7f22f5f9c8c77e73f8d2ab804f3dda702dc6cb3a2da2ff9d384d9f29755b521c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x2dbf1f99","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x5ab61","hash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logsBloom":"0x00001000000000000000000010000000000010000000000000004000800000800000000040000200000000000000000000000a00000000004000000081000000000000000000000000004000000000000204000000000000001000000000022000000000002000200000000000004000400000000000880000000000000000000004000000000000000000000000000000000000000000000000000000000000000000020400009000000000000000000000000108010000000000000010000000002000010000100020000000080000000000000000000000000000000000000000000000000000000000000000000002008000000000010000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2","parentBeaconBlockRoot":"0x2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e","parentHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","receiptsRoot":"0x1c584df19d78d56a628e1bf6c8e6b7a721d02c4c2a3d163b3452407789254bf9","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x5f3","stateRoot":"0x1177c7bb3ede8e56bfc09a8613ea3bb36da325fbfa491e834a75d81bbd3db91e","timestamp":"0x14","transactions":[{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11f58","gasPrice":"0x2dbf1f9a","hash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","input":"0x4360005260006020525b604060002060208051600101905260206020a15a61271010600957","nonce":"0x4","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xf69b5bccffed490be6ab9b289262ac6147bb6a23f3b061e7356d5d9bc77ceefa","s":"0x101b956c4a93ffbf89484e68ca23763d045293b2df67c75c2a1c4349b3df0880"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x2088a","gasPrice":"0x2dbf1f9a","hash":"0x9c59ab4e3d9e2e06c778e270db5e8dab71586ae519b4bbfd0e4a88d5e7213292","input":"0x435b8080556001015a6161a810600157","nonce":"0x5","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x5934bc3388ea75269767783e0ee816deba22e297b596df122299ac92ea674c0f","s":"0x633b50dc84f67caf787dc5d4d96ea9a31eb98db10f92fb90a71865bb7d06f337"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11cfe","gasPrice":"0x2dbf1f9a","hash":"0xc96e16ba815c81fd8d14650c7c21c574bd88584801a9e17894b82412a20c56f6","input":"0x600d380380600d6000396000f33615600a575f355f55005b305f525f5460205260405ff3","nonce":"0x6","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x3688300a9fcf3ef90797042f765059cdd1f195493b16d04bed5b8baa85dca39c","s":"0x53d14f3767744502a1960a34d896488501765d426dfa0a8e11ba97cccefca6b8"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","input":"0x","nonce":"0x7","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x6cad054757f422066e2e474e5e81ed495bdcc979","nonce":"0x0","v":"0x1","r":"0x1a63d81054d08d92118b33115b5a515817e50a3828fd96939f979ac93694751e","s":"0x306a64ef2eb532805f1f5079af7591704b1623e82e56bb0c6b18342b48958b06"}],"v":"0x0","r":"0xfc169339eea66ef47f1cfea0fd18797b91853d0977c3d360bafae7e3c0f7ca3d","s":"0x445cf1b2b73d6457b9324c4351024bb406b0111e7ea038713dac4968a625e43","yParity":"0x0"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x2dbf1f9a","hash":"0xea09deb1fec8d86d396ed7912b82d9b619c271df482aee77ea55f8217c06fbc3","input":"0x696e766f6b6564","nonce":"0x8","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x4","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x9ffe039795b25e0fc3e54cb0c9405ebab7320501349392c8bfae5b87bb5950ba","s":"0x4296ef413b2db4dfc37be62b76931866139ba090516d110d5ae0322a6b2e02f5"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","input":"0xcd4a1f0815150453656d6974","nonce":"0x9","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x5","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xdb642586ab80271c8da5852da58846f2f3dcf42547a671e86e25cb04d25fa59a","s":"0x62d1e2f9284ccf46e66c54c8e0598e983a56a3f401975053f7c244c4d540b6d9","yParity":"0x0"}],"transactionsRoot":"0x0c741433f0cbaf39a8d1db8a621e914cf6f73a5c763a9df3e6467a668f282c50","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-finalized.io b/tests/eth_getBlockByNumber/get-finalized.io index 2cd50bce8..231374055 100644 --- a/tests/eth_getBlockByNumber/get-finalized.io +++ b/tests/eth_getBlockByNumber/get-finalized.io @@ -1,3 +1,3 @@ // gets block finalized >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["finalized",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x44103f2","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0xf618","hash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x1963d4b2e19fb79daf720655b4af341c04a43b36da95f71f5e0943351c8728a3","receiptsRoot":"0x4b7fefa97a453e0ee0cea1d51ca4ab3729f3a2a6a8388a5a3b13765eec3720b7","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3b0","stateRoot":"0x5ecd3199a7bbfd931736b92d5447d80610c6eaff932819eb3e2379d1d931f972","timestamp":"0xc8","transactions":[{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","maxFeePerGas":"0x44103f3","maxPriorityFeePerGas":"0x1","hash":"0x523c9eee4fbad0c69269e9cf5191e87328b85da67a93a2927eca72f52b839acf","input":"0x","nonce":"0x46","to":"0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c","transactionIndex":"0x0","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x64f0ece3d8eea54fac19daedeae5ed4a559f66b989015e69b36e0a844307b5e9","s":"0x3e404d94bf706390fa00f763067b8d1f48563b0e0fc7361d57450bc2302e72d0","yParity":"0x0"},{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","hash":"0x89ac54352b14d3ab8d206c9c77f7081630ce2f06c9afeef6febc6c773594bf2b","input":"0x","nonce":"0x47","to":"0x717f8aa2b982bee0e29f573d31df288663e1ce16","transactionIndex":"0x1","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xe3297ee465ad6ee50321a9bb059c3ff841024497231058ff5c18dda83f9ce65e","s":"0x13ee45d648b994ff511c6816bbc308dffffb637f0538db986362454da37f639e","yParity":"0x0"},{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","hash":"0xcc1e8ab47dc46bee11fe02aaa3954dc62f5eeeef4e785868f652bde0d7727486","input":"0x","nonce":"0x48","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0xce46e3b261be5befaccaba0eb6c85ccecd898a911158f65557dc049500462f03","s":"0x1cb579c2c1ed72242ee6bc4da514f09f518f72a8183dbe3233d10d60fd334b6a"}],"transactionsRoot":"0x629794cb0634ec45415a05e987695425dab3c44f90243ff3ecd5b58184534828","uncles":[],"withdrawals":[{"index":"0x6","validatorIndex":"0x5","address":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","amount":"0x64"}],"withdrawalsRoot":"0xaf7e8178225d047b7373d37459e9cb4060b8875bd0286059d211df82ec5d84ee"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-genesis.io b/tests/eth_getBlockByNumber/get-genesis.io index e09470df1..1ba15cfa0 100644 --- a/tests/eth_getBlockByNumber/get-genesis.io +++ b/tests/eth_getBlockByNumber/get-genesis.io @@ -1,3 +1,3 @@ // gets block 0 >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","difficulty":"0x20000","excessBlobGas":"0x0","extraData":"0x68697665636861696e","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0x414c637788e37e9f65ed2c6ee962d32aeea39722ad50ee764e712fabebd69118","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x24f","stateRoot":"0x3f721d898239f0f78c63ec54498e1533ac29cdf335b5682a42f97d19b6e83e86","timestamp":"0x0","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","difficulty":"0x20000","excessBlobGas":"0x0","extraData":"0x68697665636861696e","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x270","stateRoot":"0x9dc4958e19a5fe8e30e0b8e826375d4f89f362fbf272433977730285cf3cb741","timestamp":"0x0","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-latest.io b/tests/eth_getBlockByNumber/get-latest.io index 02bfde6da..49a55e524 100644 --- a/tests/eth_getBlockByNumber/get-latest.io +++ b/tests/eth_getBlockByNumber/get-latest.io @@ -1,3 +1,3 @@ // gets block latest >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["latest",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x44103f2","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0xf618","hash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x1963d4b2e19fb79daf720655b4af341c04a43b36da95f71f5e0943351c8728a3","receiptsRoot":"0x4b7fefa97a453e0ee0cea1d51ca4ab3729f3a2a6a8388a5a3b13765eec3720b7","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3b0","stateRoot":"0x5ecd3199a7bbfd931736b92d5447d80610c6eaff932819eb3e2379d1d931f972","timestamp":"0xc8","transactions":[{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","maxFeePerGas":"0x44103f3","maxPriorityFeePerGas":"0x1","hash":"0x523c9eee4fbad0c69269e9cf5191e87328b85da67a93a2927eca72f52b839acf","input":"0x","nonce":"0x46","to":"0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c","transactionIndex":"0x0","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x64f0ece3d8eea54fac19daedeae5ed4a559f66b989015e69b36e0a844307b5e9","s":"0x3e404d94bf706390fa00f763067b8d1f48563b0e0fc7361d57450bc2302e72d0","yParity":"0x0"},{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","hash":"0x89ac54352b14d3ab8d206c9c77f7081630ce2f06c9afeef6febc6c773594bf2b","input":"0x","nonce":"0x47","to":"0x717f8aa2b982bee0e29f573d31df288663e1ce16","transactionIndex":"0x1","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xe3297ee465ad6ee50321a9bb059c3ff841024497231058ff5c18dda83f9ce65e","s":"0x13ee45d648b994ff511c6816bbc308dffffb637f0538db986362454da37f639e","yParity":"0x0"},{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","hash":"0xcc1e8ab47dc46bee11fe02aaa3954dc62f5eeeef4e785868f652bde0d7727486","input":"0x","nonce":"0x48","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0xce46e3b261be5befaccaba0eb6c85ccecd898a911158f65557dc049500462f03","s":"0x1cb579c2c1ed72242ee6bc4da514f09f518f72a8183dbe3233d10d60fd334b6a"}],"transactionsRoot":"0x629794cb0634ec45415a05e987695425dab3c44f90243ff3ecd5b58184534828","uncles":[],"withdrawals":[{"index":"0x6","validatorIndex":"0x5","address":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","amount":"0x64"}],"withdrawalsRoot":"0xaf7e8178225d047b7373d37459e9cb4060b8875bd0286059d211df82ec5d84ee"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-safe.io b/tests/eth_getBlockByNumber/get-safe.io index d0f8aeac4..fff1b5511 100644 --- a/tests/eth_getBlockByNumber/get-safe.io +++ b/tests/eth_getBlockByNumber/get-safe.io @@ -1,3 +1,3 @@ // gets block safe >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["safe",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x44103f2","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0xf618","hash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x1963d4b2e19fb79daf720655b4af341c04a43b36da95f71f5e0943351c8728a3","receiptsRoot":"0x4b7fefa97a453e0ee0cea1d51ca4ab3729f3a2a6a8388a5a3b13765eec3720b7","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3b0","stateRoot":"0x5ecd3199a7bbfd931736b92d5447d80610c6eaff932819eb3e2379d1d931f972","timestamp":"0xc8","transactions":[{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","maxFeePerGas":"0x44103f3","maxPriorityFeePerGas":"0x1","hash":"0x523c9eee4fbad0c69269e9cf5191e87328b85da67a93a2927eca72f52b839acf","input":"0x","nonce":"0x46","to":"0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c","transactionIndex":"0x0","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x64f0ece3d8eea54fac19daedeae5ed4a559f66b989015e69b36e0a844307b5e9","s":"0x3e404d94bf706390fa00f763067b8d1f48563b0e0fc7361d57450bc2302e72d0","yParity":"0x0"},{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","hash":"0x89ac54352b14d3ab8d206c9c77f7081630ce2f06c9afeef6febc6c773594bf2b","input":"0x","nonce":"0x47","to":"0x717f8aa2b982bee0e29f573d31df288663e1ce16","transactionIndex":"0x1","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xe3297ee465ad6ee50321a9bb059c3ff841024497231058ff5c18dda83f9ce65e","s":"0x13ee45d648b994ff511c6816bbc308dffffb637f0538db986362454da37f639e","yParity":"0x0"},{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x44103f3","hash":"0xcc1e8ab47dc46bee11fe02aaa3954dc62f5eeeef4e785868f652bde0d7727486","input":"0x","nonce":"0x48","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0xce46e3b261be5befaccaba0eb6c85ccecd898a911158f65557dc049500462f03","s":"0x1cb579c2c1ed72242ee6bc4da514f09f518f72a8183dbe3233d10d60fd334b6a"}],"transactionsRoot":"0x629794cb0634ec45415a05e987695425dab3c44f90243ff3ecd5b58184534828","uncles":[],"withdrawals":[{"index":"0x6","validatorIndex":"0x5","address":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","amount":"0x64"}],"withdrawalsRoot":"0xaf7e8178225d047b7373d37459e9cb4060b8875bd0286059d211df82ec5d84ee"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io b/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io index e2b126790..ebfecdbc5 100644 --- a/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io +++ b/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io @@ -1,3 +1,3 @@ // gets receipts for normal block hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x20d3e","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x115c7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x9f89ad067ded5c5ba1b582f430010bb755c0b98a1d8cc8ae7d4faed9d63ec6be","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x35129","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x143eb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x0bc1f055c79d640cb2b9d12708e3f55d82766596349e24bb3715dd996924a2d2","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x4ee5f","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x19d36","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","transactionIndex":"0x3","type":"0x0"}]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x20d3e","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x115c7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x35129","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x143eb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x4ee5f","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x19d36","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","transactionIndex":"0x3","type":"0x0"}]} diff --git a/tests/eth_getBlockReceipts/get-block-receipts-latest.io b/tests/eth_getBlockReceipts/get-block-receipts-latest.io index 6ab7b2199..ff6bf0ae4 100644 --- a/tests/eth_getBlockReceipts/get-block-receipts-latest.io +++ b/tests/eth_getBlockReceipts/get-block-receipts-latest.io @@ -1,3 +1,3 @@ // gets receipts for block latest >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x5208","effectiveGasPrice":"0x44103f3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c","transactionHash":"0x523c9eee4fbad0c69269e9cf5191e87328b85da67a93a2927eca72f52b839acf","transactionIndex":"0x0","type":"0x2"},{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0xa410","effectiveGasPrice":"0x44103f3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x717f8aa2b982bee0e29f573d31df288663e1ce16","transactionHash":"0x89ac54352b14d3ab8d206c9c77f7081630ce2f06c9afeef6febc6c773594bf2b","transactionIndex":"0x1","type":"0x1"},{"blockHash":"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0xf618","effectiveGasPrice":"0x44103f3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionHash":"0xcc1e8ab47dc46bee11fe02aaa3954dc62f5eeeef4e785868f652bde0d7727486","transactionIndex":"0x2","type":"0x0"}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x4426f5e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"],"data":"0x000000000000000000000000000000000000000000000000000000000000001a","blockNumber":"0x14","transactionHash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","transactionIndex":"0x0","blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","transactionIndex":"0x0","type":"0x3"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x18d04","effectiveGasPrice":"0x4426f5e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xc268","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x5a4c04b22b95f8645e99d4092111005b4d94518f8a4b70c933dff5500b085a5c"],"data":"0x000000000000000000000000000000000000000000000000000000000000001b","blockNumber":"0x14","transactionHash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","transactionIndex":"0x1","blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logIndex":"0x1","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x1df0c","effectiveGasPrice":"0x4426f5e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionHash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","transactionIndex":"0x2","type":"0x2"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x23114","effectiveGasPrice":"0x4426f5e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionHash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","transactionIndex":"0x3","type":"0x1"}]} diff --git a/tests/eth_getBlockReceipts/get-block-receipts-n.io b/tests/eth_getBlockReceipts/get-block-receipts-n.io index f1cddeb75..0db68aef6 100644 --- a/tests/eth_getBlockReceipts/get-block-receipts-n.io +++ b/tests/eth_getBlockReceipts/get-block-receipts-n.io @@ -1,3 +1,3 @@ // gets receipts non-zero block >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x1"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x20d3e","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x115c7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x9f89ad067ded5c5ba1b582f430010bb755c0b98a1d8cc8ae7d4faed9d63ec6be","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x35129","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x143eb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x0bc1f055c79d640cb2b9d12708e3f55d82766596349e24bb3715dd996924a2d2","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x4ee5f","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x19d36","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","transactionIndex":"0x3","type":"0x0"}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x20d3e","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x115c7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x35129","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x143eb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x4ee5f","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x19d36","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","transactionIndex":"0x3","type":"0x0"}]} diff --git a/tests/eth_getBlockTransactionCountByHash/get-block-n.io b/tests/eth_getBlockTransactionCountByHash/get-block-n.io index 0d73dab73..e8a73ab98 100644 --- a/tests/eth_getBlockTransactionCountByHash/get-block-n.io +++ b/tests/eth_getBlockTransactionCountByHash/get-block-n.io @@ -1,3 +1,3 @@ // gets tx count in a non-empty block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4"]} << {"jsonrpc":"2.0","id":1,"result":"0x4"} diff --git a/tests/eth_getBlockTransactionCountByHash/get-genesis.io b/tests/eth_getBlockTransactionCountByHash/get-genesis.io index baa3950d8..fb3fabf29 100644 --- a/tests/eth_getBlockTransactionCountByHash/get-genesis.io +++ b/tests/eth_getBlockTransactionCountByHash/get-genesis.io @@ -1,3 +1,3 @@ // gets tx count in block 0 ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x414c637788e37e9f65ed2c6ee962d32aeea39722ad50ee764e712fabebd69118"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464"]} << {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/eth_getCode/get-code-eip7702-delegation.io b/tests/eth_getCode/get-code-eip7702-delegation.io new file mode 100644 index 000000000..f429c05d4 --- /dev/null +++ b/tests/eth_getCode/get-code-eip7702-delegation.io @@ -0,0 +1,4 @@ +// requests code of an account that has an EIP-7702 delegation. the server is expected to return +// the delegation designator. +>> {"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0xeda8645ba6948855e3b3cd596bbb07596d59c603","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xef01006cad054757f422066e2e474e5e81ed495bdcc979"} diff --git a/tests/eth_getLogs/contract-addr.io b/tests/eth_getLogs/contract-addr.io index 393412034..e60c0c23a 100644 --- a/tests/eth_getLogs/contract-addr.io +++ b/tests/eth_getLogs/contract-addr.io @@ -1,3 +1,3 @@ // queries for logs from a specific contract across a range of blocks >> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"],"fromBlock":"0x1","toBlock":"0x4","topics":null}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x847f7a3261988dc4a34be85f4c28d5d534d47775792e9d25e1d9250cb2fb77eb","transactionIndex":"0x2","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xa3d07a7d68fbd49ec2f8e6befdd86c885f86c272819f6f345f365dec35ae6707"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0xa0762610d794acddd2dca15fb7c437ada3611c886f3bea675d53d8da8a6c41b2","transactionIndex":"0x3","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0xb","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0xb0ebf0d8fca6724d5111d0be9ac61f0e7bf174208e0fafcb653f337c72465b83","transactionIndex":"0x0","blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","logIndex":"0x0","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0x8acb279f66e5fa56b6718166c0296dfd4bfaf7be6757d35cbbcc40367f2904ba","transactionIndex":"0x1","blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","logIndex":"0x1","removed":false}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","transactionIndex":"0x0","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x0","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","transactionIndex":"0x1","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x1","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","transactionIndex":"0x2","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x2","removed":false}]} diff --git a/tests/eth_getLogs/no-topics.io b/tests/eth_getLogs/no-topics.io index caba520bb..9f5a7f45d 100644 --- a/tests/eth_getLogs/no-topics.io +++ b/tests/eth_getLogs/no-topics.io @@ -1,3 +1,3 @@ // queries for all logs across a range of blocks >> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":null,"fromBlock":"0x1","toBlock":"0x3","topics":null}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xabbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a569"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x0","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x1","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x2","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000004","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x3","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7"],"data":"0x0000000000000000000000000000000000000000000000000000000000000005","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x4","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a"],"data":"0x0000000000000000000000000000000000000000000000000000000000000006","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x5","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000007","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x6","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000008","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x7","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041"],"data":"0x0000000000000000000000000000000000000000000000000000000000000009","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x8","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3"],"data":"0x000000000000000000000000000000000000000000000000000000000000000a","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0x9","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x847f7a3261988dc4a34be85f4c28d5d534d47775792e9d25e1d9250cb2fb77eb","transactionIndex":"0x2","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xa3d07a7d68fbd49ec2f8e6befdd86c885f86c272819f6f345f365dec35ae6707"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0xa0762610d794acddd2dca15fb7c437ada3611c886f3bea675d53d8da8a6c41b2","transactionIndex":"0x3","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0xb","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0xb0ebf0d8fca6724d5111d0be9ac61f0e7bf174208e0fafcb653f337c72465b83","transactionIndex":"0x0","blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","logIndex":"0x0","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0x8acb279f66e5fa56b6718166c0296dfd4bfaf7be6757d35cbbcc40367f2904ba","transactionIndex":"0x1","blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","logIndex":"0x1","removed":false}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xabbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a569"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x0","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x1","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x2","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000004","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x3","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7"],"data":"0x0000000000000000000000000000000000000000000000000000000000000005","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x4","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a"],"data":"0x0000000000000000000000000000000000000000000000000000000000000006","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x5","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000007","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x6","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000008","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x7","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041"],"data":"0x0000000000000000000000000000000000000000000000000000000000000009","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x8","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3"],"data":"0x000000000000000000000000000000000000000000000000000000000000000a","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x9","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","transactionIndex":"0x0","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x0","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","transactionIndex":"0x1","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x1","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","transactionIndex":"0x2","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x2","removed":false},{"address":"0x09fc772d0857550724b07b850a4323f39112aaaa","topics":[],"data":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865fb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","blockNumber":"0x3","transactionHash":"0x834877cf885973710dbea20f5a73ac9c1fa932e9dc0d74f090c9fca2fe281a18","transactionIndex":"0x3","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x3","removed":false}]} diff --git a/tests/eth_getLogs/topic-exact-match.io b/tests/eth_getLogs/topic-exact-match.io index 2723a7263..c13095007 100644 --- a/tests/eth_getLogs/topic-exact-match.io +++ b/tests/eth_getLogs/topic-exact-match.io @@ -1,3 +1,3 @@ // queries for logs with two topics, with both topics set explictly ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":null,"fromBlock":"0x2","toBlock":"0x5","topics":[["0x00000000000000000000000000000000000000000000000000000000656d6974"],["0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]]}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0x8acb279f66e5fa56b6718166c0296dfd4bfaf7be6757d35cbbcc40367f2904ba","transactionIndex":"0x1","blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","logIndex":"0x1","removed":false}]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":null,"fromBlock":"0x2","toBlock":"0x5","topics":[["0x00000000000000000000000000000000000000000000000000000000656d6974"],["0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"]]}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","transactionIndex":"0x2","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x2","removed":false}]} diff --git a/tests/eth_getLogs/topic-wildcard.io b/tests/eth_getLogs/topic-wildcard.io index a478b4f3c..750090de7 100644 --- a/tests/eth_getLogs/topic-wildcard.io +++ b/tests/eth_getLogs/topic-wildcard.io @@ -1,3 +1,3 @@ // queries for logs with two topics, performing a wildcard match in topic position zero ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":null,"fromBlock":"0x2","toBlock":"0x5","topics":[[],["0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]]}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0x8acb279f66e5fa56b6718166c0296dfd4bfaf7be6757d35cbbcc40367f2904ba","transactionIndex":"0x1","blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","logIndex":"0x1","removed":false}]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":null,"fromBlock":"0x2","toBlock":"0x5","topics":[[],["0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"]]}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","transactionIndex":"0x2","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x2","removed":false}]} diff --git a/tests/eth_getProof/get-account-proof-blockhash.io b/tests/eth_getProof/get-account-proof-blockhash.io index 7e43d44a2..08d93116a 100644 --- a/tests/eth_getProof/get-account-proof-blockhash.io +++ b/tests/eth_getProof/get-account-proof-blockhash.io @@ -1,3 +1,3 @@ // gets proof for a certain account at the specified blockhash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf901f1a008b54c517f688f589cc496d3286120dd1f691619d96c17fb89ec4fb3f8708a58a0eacb1e3c3d67d56db2202350b3e15444fe47233780de4f7e2fa199e3a5ac434aa0841ea24fe50e2e5f87c1c3a3c28526c0bfafd0c5f6ff1292c5e37e5d09ea7c00a04d94eac381017e13f72dc19398dcc5da7beba1d44468a085ce24fe02fe3d23fea0cd0806999fce5819e693ff6e5deaa6e9cb14471979f81192a342ef1fc55483f3a0d1e1eecaab62b95d29464d6ff2c95d8bc423a8bde9678d59721cade3974766b2a00680d5b440bdd5c9f15defeacf24ba959e5297b068b5f71fb9f1237e563785fea01381d9d899b7ea2faae4bddd17d37c4f14513263b4be5df9010f54ae1a0173aba07f363196cd60f0d6708b3e37b43fb23cd0a4a1617204da194353d69bce7615b8a09d35b95a2a54797e1d5b1d815dbbc5dcbef33ccca1a6247a81061d9f84581ae8a06e6e99518c5763e53fe9193e85d4dbe5b2db213a00a10ad389a1dd1e24c32886a0d04fe22e90cd579bac08f3f91d31d11b93367241d82e172b0aba022ff373bf5da0cc6928c6690ed0b1f0d8a4ae67f2a32809c36b63874593ebce8a32e77ab6e6b5a0ee0f684219e130b70a2a7679d9293e84ca788867e6e029d8c44ddf8f7a7d7ae5a0f72668fda1d2c82a24ac73941a034478772a2fe1afc845de9b28111c95702fb08080","0xf87180a0b8e97f1936af37bcca42cfe5c5f14874412ab2d13ff2e4fce2d91848d0910403808080808080808080a0b81805d05a25b4e3e72408cd16eaaf83c34d212164600c821f3e2fc7141a7fdc808080a025440d5e013e1774d4b89a7db7f91e908538ac39c1d0c9c66d67cfd125711a1f80","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa0c59e2f9ab665cb405160bd9d8d1f90214b681740f2c161a9f493f417b010660ca0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xc59e2f9ab665cb405160bd9d8d1f90214b681740f2c161a9f493f417b010660c","storageProof":[]}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b"]} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a086f709e67fe37f2fb59eb3d5ddf9f5e8df5b7d578eaf41a40438acc4c887f1d5a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da05277d5479048ffd4849f746eae1c277ab6778950d19def8f56535eedf2eb00aca05e427744bb6faab86a9748f83ea5ef0232f6a79d30681f3dde3d38c6b3fe09a4a0674d82d1ce4b296bb9e65a7d147355a324e4cf3ed3ca4bee65e085af48416a44a09586414e0e14ae7b1eb4c878f95ed2ef24e01c9a27ebdf58e653a1c1df54e657a064225e65762dc6324b18d0702ae398575fdb966aa12394a4543ef111a7509be8a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a0041cd6a6c02907104ea1887b32cdc6e7cb5c99bffe0e4784a131eb86f2165b8ba038b221ad7c3d152ae58f4c709d79fb3470803708fb78a557d045078857050783a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a094a828debbe6da49b46ccb85da52282aedde5ff8d3568cea0fca2fde12ecee7ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf85180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d55780808080808080808080808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[]}} diff --git a/tests/eth_getProof/get-account-proof-latest.io b/tests/eth_getProof/get-account-proof-latest.io index 163c5f087..c866cc589 100644 --- a/tests/eth_getProof/get-account-proof-latest.io +++ b/tests/eth_getProof/get-account-proof-latest.io @@ -1,3 +1,3 @@ // requests the account proof for a known account >> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf901f1a008b54c517f688f589cc496d3286120dd1f691619d96c17fb89ec4fb3f8708a58a0eacb1e3c3d67d56db2202350b3e15444fe47233780de4f7e2fa199e3a5ac434aa0841ea24fe50e2e5f87c1c3a3c28526c0bfafd0c5f6ff1292c5e37e5d09ea7c00a04d94eac381017e13f72dc19398dcc5da7beba1d44468a085ce24fe02fe3d23fea0cd0806999fce5819e693ff6e5deaa6e9cb14471979f81192a342ef1fc55483f3a0d1e1eecaab62b95d29464d6ff2c95d8bc423a8bde9678d59721cade3974766b2a00680d5b440bdd5c9f15defeacf24ba959e5297b068b5f71fb9f1237e563785fea01381d9d899b7ea2faae4bddd17d37c4f14513263b4be5df9010f54ae1a0173aba07f363196cd60f0d6708b3e37b43fb23cd0a4a1617204da194353d69bce7615b8a09d35b95a2a54797e1d5b1d815dbbc5dcbef33ccca1a6247a81061d9f84581ae8a06e6e99518c5763e53fe9193e85d4dbe5b2db213a00a10ad389a1dd1e24c32886a0d04fe22e90cd579bac08f3f91d31d11b93367241d82e172b0aba022ff373bf5da0cc6928c6690ed0b1f0d8a4ae67f2a32809c36b63874593ebce8a32e77ab6e6b5a0ee0f684219e130b70a2a7679d9293e84ca788867e6e029d8c44ddf8f7a7d7ae5a0f72668fda1d2c82a24ac73941a034478772a2fe1afc845de9b28111c95702fb08080","0xf87180a0b8e97f1936af37bcca42cfe5c5f14874412ab2d13ff2e4fce2d91848d0910403808080808080808080a0b81805d05a25b4e3e72408cd16eaaf83c34d212164600c821f3e2fc7141a7fdc808080a025440d5e013e1774d4b89a7db7f91e908538ac39c1d0c9c66d67cfd125711a1f80","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa0c59e2f9ab665cb405160bd9d8d1f90214b681740f2c161a9f493f417b010660ca0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xc59e2f9ab665cb405160bd9d8d1f90214b681740f2c161a9f493f417b010660c","storageProof":[]}} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a086f709e67fe37f2fb59eb3d5ddf9f5e8df5b7d578eaf41a40438acc4c887f1d5a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da05277d5479048ffd4849f746eae1c277ab6778950d19def8f56535eedf2eb00aca05e427744bb6faab86a9748f83ea5ef0232f6a79d30681f3dde3d38c6b3fe09a4a0674d82d1ce4b296bb9e65a7d147355a324e4cf3ed3ca4bee65e085af48416a44a09586414e0e14ae7b1eb4c878f95ed2ef24e01c9a27ebdf58e653a1c1df54e657a064225e65762dc6324b18d0702ae398575fdb966aa12394a4543ef111a7509be8a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a0041cd6a6c02907104ea1887b32cdc6e7cb5c99bffe0e4784a131eb86f2165b8ba038b221ad7c3d152ae58f4c709d79fb3470803708fb78a557d045078857050783a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a094a828debbe6da49b46ccb85da52282aedde5ff8d3568cea0fca2fde12ecee7ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf85180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d55780808080808080808080808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[]}} diff --git a/tests/eth_getProof/get-account-proof-with-storage.io b/tests/eth_getProof/get-account-proof-with-storage.io index 7273ecdb2..49d4c693c 100644 --- a/tests/eth_getProof/get-account-proof-with-storage.io +++ b/tests/eth_getProof/get-account-proof-with-storage.io @@ -1,3 +1,3 @@ // gets proof for a certain account >> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",["0x00"],"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf901f1a008b54c517f688f589cc496d3286120dd1f691619d96c17fb89ec4fb3f8708a58a0eacb1e3c3d67d56db2202350b3e15444fe47233780de4f7e2fa199e3a5ac434aa0841ea24fe50e2e5f87c1c3a3c28526c0bfafd0c5f6ff1292c5e37e5d09ea7c00a04d94eac381017e13f72dc19398dcc5da7beba1d44468a085ce24fe02fe3d23fea0cd0806999fce5819e693ff6e5deaa6e9cb14471979f81192a342ef1fc55483f3a0d1e1eecaab62b95d29464d6ff2c95d8bc423a8bde9678d59721cade3974766b2a00680d5b440bdd5c9f15defeacf24ba959e5297b068b5f71fb9f1237e563785fea01381d9d899b7ea2faae4bddd17d37c4f14513263b4be5df9010f54ae1a0173aba07f363196cd60f0d6708b3e37b43fb23cd0a4a1617204da194353d69bce7615b8a09d35b95a2a54797e1d5b1d815dbbc5dcbef33ccca1a6247a81061d9f84581ae8a06e6e99518c5763e53fe9193e85d4dbe5b2db213a00a10ad389a1dd1e24c32886a0d04fe22e90cd579bac08f3f91d31d11b93367241d82e172b0aba022ff373bf5da0cc6928c6690ed0b1f0d8a4ae67f2a32809c36b63874593ebce8a32e77ab6e6b5a0ee0f684219e130b70a2a7679d9293e84ca788867e6e029d8c44ddf8f7a7d7ae5a0f72668fda1d2c82a24ac73941a034478772a2fe1afc845de9b28111c95702fb08080","0xf87180a0b8e97f1936af37bcca42cfe5c5f14874412ab2d13ff2e4fce2d91848d0910403808080808080808080a0b81805d05a25b4e3e72408cd16eaaf83c34d212164600c821f3e2fc7141a7fdc808080a025440d5e013e1774d4b89a7db7f91e908538ac39c1d0c9c66d67cfd125711a1f80","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa0c59e2f9ab665cb405160bd9d8d1f90214b681740f2c161a9f493f417b010660ca0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xc59e2f9ab665cb405160bd9d8d1f90214b681740f2c161a9f493f417b010660c","storageProof":[{"key":"0x0","value":"0x1c","proof":["0xf901b180a02d0c9fa6ed5d9d17e30229988542867fe94bf2fe61d825244ccde27254f61880a08032c70e3d8faea18e2f457bb0b20dc2b5c433a6bdafe76d33bfe2b131184e16a09aa17d2b6dbd2885e2dfbc6411a9d109f8132d3253f9ec64d383f08d6b6e3ca2a0973c5f9d4625124fbb54830c0576d8344ec8b5d9374fb08de676b94a2ffb3de2a0f803a75238b1964d2c53cb9de1ef633cbbb3cf54f1f8754b2c87b31281913693a0e10b5c8f06aa21100f409e0ced324d0189d84d0fd4b3dde4037e1430fb5766a68080a02c51eb039b457237cdf10a83e8f3a5e75cb0387b17dc923b25fca83677ed24a2a09001dfea7b822ceba805830e103fcfca910a1e3b4af2c80f470fd977550fa91aa05f2aae4de56807249299eb1a8afcb4e5c99e8fe2077d863099824a89df1a69c3a09c10c3e60e8851e4f4cd42032a78640b1210899c0a03cc4384c448a392f79e1aa0cf32a9b2d40a5c39507501d7a6c26b94c712d5c8ffab5ce33e452df137917123a068e90b542b1ec8f186ff8d5aa780a283cec3a7ad67fa62e54711ca1412f7605ea0bed6ade3e3d198fb8aa69af48b041a9bd45d5dfaf24ac8bcb6b06a78b305ebe980","0xf8718080a0f396dc5de5749afd80090c7dc685f1bc1c17221bf9422bf6b85b133263386a96808080808080a0a12a729c8a5250933e249fedb116df8ebd29e72d260cab050f4ec5b34223d8e18080808080a0ab6a1537c8f6640fa4b2508ab4e94d7704a142cb8dd0ebb1ee6bc321bad5631a80","0xe2a0200decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5631c"]}]}} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a086f709e67fe37f2fb59eb3d5ddf9f5e8df5b7d578eaf41a40438acc4c887f1d5a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da05277d5479048ffd4849f746eae1c277ab6778950d19def8f56535eedf2eb00aca05e427744bb6faab86a9748f83ea5ef0232f6a79d30681f3dde3d38c6b3fe09a4a0674d82d1ce4b296bb9e65a7d147355a324e4cf3ed3ca4bee65e085af48416a44a09586414e0e14ae7b1eb4c878f95ed2ef24e01c9a27ebdf58e653a1c1df54e657a064225e65762dc6324b18d0702ae398575fdb966aa12394a4543ef111a7509be8a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a0041cd6a6c02907104ea1887b32cdc6e7cb5c99bffe0e4784a131eb86f2165b8ba038b221ad7c3d152ae58f4c709d79fb3470803708fb78a557d045078857050783a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a094a828debbe6da49b46ccb85da52282aedde5ff8d3568cea0fca2fde12ecee7ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf85180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d55780808080808080808080808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[{"key":"0x0","value":"0x1c","proof":["0xf901d1a0c213124b9222692adadf1623505aede960c0931c033366d6b4e1832e9face0e4a04db2f6100702bd6edc3449d1af73d7fc89bd58ecb89419211cc9cea9d5e36a47a08c881030f3b37c0c65eb2e1d2afe94297a35c3c8ea5e946be436ec7b982dd864a00bf22d43e93c96fd47a33eda1dba34de46b338d448bce60a1fc5027ed0c1cee5a03e16690e5a15ffc0eb9afe168acaf1c36f2d97815fd8516c6fb9b1ec0548f754a0f128939c9145c4c1cbd7a69f94fb9a8904f91d54caf50974e708480a61be5d638080a0bc8c4cfbb85a4ace5b484be6d0c5bbdfc75368aaf83986f75b10bdee9f34f2d3a01016bc220459c1c77d0f322f308590e368785635e811f9df9e39e83c72d95565a053e6ec15db6d941bb632aa9a12012afb7a27e29cfcb02139e5017617acaec2f0a0b21742954aa8562494e843bde2df4cc511696680b9020aa62b6105ac9a7aab37a0d53c7900e9b0068fe26d77db78e2edb43dc5b52bfbcd50cd27ff045b4cc6d1fca028aa7b11cd4a7cc7b31b82ea25be30fd674b2bae3580b7bd0dc4e7c17c538354a0263786b1dbd8a47b563244323a8d2286ace6da5e8be56ffef647922d5d4276eda030d23bfc90fa78c278c1047e670efe64f347a466b0aa217c782ebba19145b73380","0xf871808080808080808080a0a12a729c8a5250933e249fedb116df8ebd29e72d260cab050f4ec5b34223d8e1a08bdf6c8dc0fdac64d727272bebe1af5fd9b8fbe702068df758366cfd167017f680808080a0b2b53be089701eb239463766f4394ac86a0b9aea72db682a1928c0fac8194deb80","0xe2a0200decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5631c"]}]}} diff --git a/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io b/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io index e8463191b..bc36349a0 100644 --- a/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io +++ b/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io @@ -1,3 +1,3 @@ // gets tx 0 in a non-empty block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockHashAndIndex","params":["0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x131ec","gasPrice":"0x342770c1","hash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xdf95c12446d276292221a19cca4f3e678f113a412bf3845bd85dc5bb5bd87def","s":"0x523b1712e2f5a7b421f5740d32f51fd33a525026a21fd89770a55480ad28732"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockHashAndIndex","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} diff --git a/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io b/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io index 4967825e8..55a1b681c 100644 --- a/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io +++ b/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io @@ -1,3 +1,3 @@ // gets tx 0 in a non-empty block >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockNumberAndIndex","params":["0x1","0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x131ec","gasPrice":"0x342770c1","hash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xdf95c12446d276292221a19cca4f3e678f113a412bf3845bd85dc5bb5bd87def","s":"0x523b1712e2f5a7b421f5740d32f51fd33a525026a21fd89770a55480ad28732"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} diff --git a/tests/eth_getTransactionByHash/get-access-list.io b/tests/eth_getTransactionByHash/get-access-list.io index 0dcf3ba6b..0b9046155 100644 --- a/tests/eth_getTransactionByHash/get-access-list.io +++ b/tests/eth_getTransactionByHash/get-access-list.io @@ -1,3 +1,3 @@ // gets an access list transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xa0762610d794acddd2dca15fb7c437ada3611c886f3bea675d53d8da8a6c41b2"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","hash":"0xa0762610d794acddd2dca15fb7c437ada3611c886f3bea675d53d8da8a6c41b2","input":"0xdb5306248e0313e7656d6974","nonce":"0x7","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x3","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xa3d07a7d68fbd49ec2f8e6befdd86c885f86c272819f6f345f365dec35ae6707"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xa79d18ef525b16a0ae153f48a8329e0cd5d6a97fac645008943bb5d996b82d2f","s":"0x385305da7dbc3135dbfa4cf02631b1eef49025bf9e76d4ad05a0ba19831ad525","yParity":"0x0"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","input":"0xdc4c8669df128318656d6974","nonce":"0xa","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xf341a34ae4f66c156552aa672d054c685a361240c66ef75c07f65ac69b1e2f7a","s":"0x7200d4f70fdeb984fee0dbe79a3d729ee28a392f5f58cda722c0212123df95cf","yParity":"0x1"}} diff --git a/tests/eth_getTransactionByHash/get-blob-tx.io b/tests/eth_getTransactionByHash/get-blob-tx.io index daba0be29..35ac3b378 100644 --- a/tests/eth_getTransactionByHash/get-blob-tx.io +++ b/tests/eth_getTransactionByHash/get-blob-tx.io @@ -1,3 +1,3 @@ // gets a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xb0ebf0d8fca6724d5111d0be9ac61f0e7bf174208e0fafcb653f337c72465b83"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x281d620e","maxFeePerGas":"0x281d620e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xb0ebf0d8fca6724d5111d0be9ac61f0e7bf174208e0fafcb653f337c72465b83","input":"0xdc4c8669df128318656d6974","nonce":"0x8","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0x478385a47075dd6ba56300b623038052a6e4bb03f8cfc53f367712f1c1d3e7de","s":"0x2f79ed9b154b0af2c97ddfc1f4f76e6c17725713b6d44ea922ca4c6bbc20775c","yParity":"0x0"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","input":"0x3f446a7c4145b1f0656d6974","nonce":"0xb","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0x3f05d73d107c94d50470342a6c5d133dca225f858d68ea4fd95fa16503c217b7","s":"0x5e94d20059c6191f17297401df493a5a1e93265a22c306024bd9d87016034e13","yParity":"0x1"}} diff --git a/tests/eth_getTransactionByHash/get-dynamic-fee.io b/tests/eth_getTransactionByHash/get-dynamic-fee.io index 71ece747f..d77e9ac03 100644 --- a/tests/eth_getTransactionByHash/get-dynamic-fee.io +++ b/tests/eth_getTransactionByHash/get-dynamic-fee.io @@ -1,3 +1,3 @@ // gets a dynamic fee transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x847f7a3261988dc4a34be85f4c28d5d534d47775792e9d25e1d9250cb2fb77eb"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x847f7a3261988dc4a34be85f4c28d5d534d47775792e9d25e1d9250cb2fb77eb","input":"0x3550170f18924a7a656d6974","nonce":"0x6","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x2","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x31ace74221ddb23d51ebfcb9e8c81cd8dc9b7d1e5522b52cbd2d3515f5970295","s":"0x7d04bd8244a39ceab322933d2613258106dc3050d4088ea496ed4b6d77ea9917","yParity":"0x1"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","input":"0xcd4a1f0815150453656d6974","nonce":"0x9","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x5","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xdb642586ab80271c8da5852da58846f2f3dcf42547a671e86e25cb04d25fa59a","s":"0x62d1e2f9284ccf46e66c54c8e0598e983a56a3f401975053f7c244c4d540b6d9","yParity":"0x0"}} diff --git a/tests/eth_getTransactionByHash/get-legacy-create.io b/tests/eth_getTransactionByHash/get-legacy-create.io index 164716a62..2aaef7488 100644 --- a/tests/eth_getTransactionByHash/get-legacy-create.io +++ b/tests/eth_getTransactionByHash/get-legacy-create.io @@ -1,3 +1,3 @@ // gets a legacy contract create transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x131ec","gasPrice":"0x342770c1","hash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xdf95c12446d276292221a19cca4f3e678f113a412bf3845bd85dc5bb5bd87def","s":"0x523b1712e2f5a7b421f5740d32f51fd33a525026a21fd89770a55480ad28732"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} diff --git a/tests/eth_getTransactionByHash/get-legacy-input.io b/tests/eth_getTransactionByHash/get-legacy-input.io index a85b4bcb2..7fa0ad59e 100644 --- a/tests/eth_getTransactionByHash/get-legacy-input.io +++ b/tests/eth_getTransactionByHash/get-legacy-input.io @@ -1,3 +1,3 @@ // gets a legacy transaction with input data ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x131ec","gasPrice":"0x342770c1","hash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xdf95c12446d276292221a19cca4f3e678f113a412bf3845bd85dc5bb5bd87def","s":"0x523b1712e2f5a7b421f5740d32f51fd33a525026a21fd89770a55480ad28732"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} diff --git a/tests/eth_getTransactionByHash/get-legacy-tx.io b/tests/eth_getTransactionByHash/get-legacy-tx.io index b5fb122fd..26a7d8758 100644 --- a/tests/eth_getTransactionByHash/get-legacy-tx.io +++ b/tests/eth_getTransactionByHash/get-legacy-tx.io @@ -1,3 +1,3 @@ // gets a legacy transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x3f38cdc805c02e152bfed34471a3a13a786fed436b3aec0c3eca35d23e2cdd2c"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7e5d03caac4eb2b613ae9c919ef3afcc8ed0e384f31ee746381d3c8739475d2a","blockNumber":"0x4","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x23237dee","hash":"0x3f38cdc805c02e152bfed34471a3a13a786fed436b3aec0c3eca35d23e2cdd2c","input":"0x","nonce":"0xc","to":"0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8","transactionIndex":"0x0","value":"0x1","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x3d61f5d7e93eecd0669a31eb640ab3349e9e5868a44c2be1337c90a893b51990","s":"0xc55f44ba123af37d0e73ed75e578647c3f473805349936f64ea902ea9e03bc7"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x215dfde45f66435283ce435902e59787e936d99b8570d3fa7287f3b100f61f68"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x49c5b1b5315eae3f2b4872338302e0a763e5b4b02e774b58413b1fd26166149f","blockNumber":"0x4","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x23334a86","hash":"0x215dfde45f66435283ce435902e59787e936d99b8570d3fa7287f3b100f61f68","input":"0x","nonce":"0x10","to":"0x2d389075be5be9f2246ad654ce152cf05990b209","transactionIndex":"0x2","value":"0x1","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x9dad9aa28d9ee10cf4eba8fbfeb05c6e9131cc1bc8cc55e55dbb4847ae21a756","s":"0x38dfd6c14c540aa2bfaef27298262e168c999aaa27ea5e3fc1260903d842a746"}} diff --git a/tests/eth_getTransactionByHash/get-setcode-tx.io b/tests/eth_getTransactionByHash/get-setcode-tx.io new file mode 100644 index 000000000..d2f3d87e0 --- /dev/null +++ b/tests/eth_getTransactionByHash/get-setcode-tx.io @@ -0,0 +1,3 @@ +// retrieves an EIP-7702 transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","input":"0x","nonce":"0x7","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x6cad054757f422066e2e474e5e81ed495bdcc979","nonce":"0x0","v":"0x1","r":"0x1a63d81054d08d92118b33115b5a515817e50a3828fd96939f979ac93694751e","s":"0x306a64ef2eb532805f1f5079af7591704b1623e82e56bb0c6b18342b48958b06"}],"v":"0x0","r":"0xfc169339eea66ef47f1cfea0fd18797b91853d0977c3d360bafae7e3c0f7ca3d","s":"0x445cf1b2b73d6457b9324c4351024bb406b0111e7ea038713dac4968a625e43","yParity":"0x0"}} diff --git a/tests/eth_getTransactionCount/get-nonce.io b/tests/eth_getTransactionCount/get-nonce.io index 3560b77dc..86e0bd7a1 100644 --- a/tests/eth_getTransactionCount/get-nonce.io +++ b/tests/eth_getTransactionCount/get-nonce.io @@ -1,3 +1,3 @@ // gets nonce for a known account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionCount","params":["0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionCount","params":["0x0ed465f2d38113203793802eafcfe2a302f5141f","latest"]} << {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/eth_getTransactionReceipt/get-access-list.io b/tests/eth_getTransactionReceipt/get-access-list.io index 814008a8d..d2399067d 100644 --- a/tests/eth_getTransactionReceipt/get-access-list.io +++ b/tests/eth_getTransactionReceipt/get-access-list.io @@ -1,3 +1,3 @@ // gets an access list transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xa0762610d794acddd2dca15fb7c437ada3611c886f3bea675d53d8da8a6c41b2"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x45a1b","effectiveGasPrice":"0x2dbf1f9a","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xa3d07a7d68fbd49ec2f8e6befdd86c885f86c272819f6f345f365dec35ae6707"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0xa0762610d794acddd2dca15fb7c437ada3611c886f3bea675d53d8da8a6c41b2","transactionIndex":"0x3","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0xb","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000200800000000000000000000000000000000000000000800000000000000000000000000000000000000000000000004000010000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xa0762610d794acddd2dca15fb7c437ada3611c886f3bea675d53d8da8a6c41b2","transactionIndex":"0x3","type":"0x1"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x282416a8","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","transactionIndex":"0x0","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","transactionIndex":"0x0","type":"0x1"}} diff --git a/tests/eth_getTransactionReceipt/get-blob-tx.io b/tests/eth_getTransactionReceipt/get-blob-tx.io index bf2050842..6c3ae2ade 100644 --- a/tests/eth_getTransactionReceipt/get-blob-tx.io +++ b/tests/eth_getTransactionReceipt/get-blob-tx.io @@ -1,3 +1,3 @@ // gets a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xb0ebf0d8fca6724d5111d0be9ac61f0e7bf174208e0fafcb653f337c72465b83"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","blockNumber":"0x3","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x281d620e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0xb0ebf0d8fca6724d5111d0be9ac61f0e7bf174208e0fafcb653f337c72465b83","transactionIndex":"0x0","blockHash":"0x1732a5fe86d54098c431fa4fea34387b650e41dbff65ca554370028172fcdb6a","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xb0ebf0d8fca6724d5111d0be9ac61f0e7bf174208e0fafcb653f337c72465b83","transactionIndex":"0x0","type":"0x3"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","contractAddress":null,"cumulativeGasUsed":"0x19538","effectiveGasPrice":"0x282416a8","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","transactionIndex":"0x1","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x1","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","transactionIndex":"0x1","type":"0x3"}} diff --git a/tests/eth_getTransactionReceipt/get-dynamic-fee.io b/tests/eth_getTransactionReceipt/get-dynamic-fee.io index 2755e5087..027e0d3a9 100644 --- a/tests/eth_getTransactionReceipt/get-dynamic-fee.io +++ b/tests/eth_getTransactionReceipt/get-dynamic-fee.io @@ -1,3 +1,3 @@ // gets a dynamic fee transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x847f7a3261988dc4a34be85f4c28d5d534d47775792e9d25e1d9250cb2fb77eb"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x38f7f","effectiveGasPrice":"0x2dbf1f9a","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xbfac","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x847f7a3261988dc4a34be85f4c28d5d534d47775792e9d25e1d9250cb2fb77eb","transactionIndex":"0x2","blockHash":"0xa111ce2477e1dd45173ba93cac819e62947e62a63a7d561b6f4825fb31c22645","logIndex":"0xa","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000002000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x847f7a3261988dc4a34be85f4c28d5d534d47775792e9d25e1d9250cb2fb77eb","transactionIndex":"0x2","type":"0x2"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x5ab61","effectiveGasPrice":"0x2dbf1f9a","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xbfac","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0xa","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000004000000081000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","type":"0x2"}} diff --git a/tests/eth_getTransactionReceipt/get-legacy-contract.io b/tests/eth_getTransactionReceipt/get-legacy-contract.io index cde27e488..b8d5829e6 100644 --- a/tests/eth_getTransactionReceipt/get-legacy-contract.io +++ b/tests/eth_getTransactionReceipt/get-legacy-contract.io @@ -1,3 +1,3 @@ // gets a legacy contract create transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","transactionIndex":"0x0","type":"0x0"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"}} diff --git a/tests/eth_getTransactionReceipt/get-legacy-input.io b/tests/eth_getTransactionReceipt/get-legacy-input.io index 6ea24272a..e18efdb14 100644 --- a/tests/eth_getTransactionReceipt/get-legacy-input.io +++ b/tests/eth_getTransactionReceipt/get-legacy-input.io @@ -1,3 +1,3 @@ // gets a legacy transaction with input data ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xac5c61edb087a51279674fe01d5c1f65eac3fd8597f9bea215058e745df8088e","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xbdb37c763e721bf1a0e94e0bc72db704110b2ccc6720713708744422a2cc95d6","transactionIndex":"0x0","type":"0x0"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"}} diff --git a/tests/eth_getTransactionReceipt/get-legacy-receipt.io b/tests/eth_getTransactionReceipt/get-legacy-receipt.io index bcb06dc5e..d993dd670 100644 --- a/tests/eth_getTransactionReceipt/get-legacy-receipt.io +++ b/tests/eth_getTransactionReceipt/get-legacy-receipt.io @@ -1,3 +1,3 @@ // gets the receipt for a legacy value transfer tx ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x3f38cdc805c02e152bfed34471a3a13a786fed436b3aec0c3eca35d23e2cdd2c"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7e5d03caac4eb2b613ae9c919ef3afcc8ed0e384f31ee746381d3c8739475d2a","blockNumber":"0x4","contractAddress":null,"cumulativeGasUsed":"0x5208","effectiveGasPrice":"0x23237dee","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8","transactionHash":"0x3f38cdc805c02e152bfed34471a3a13a786fed436b3aec0c3eca35d23e2cdd2c","transactionIndex":"0x0","type":"0x0"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x215dfde45f66435283ce435902e59787e936d99b8570d3fa7287f3b100f61f68"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x49c5b1b5315eae3f2b4872338302e0a763e5b4b02e774b58413b1fd26166149f","blockNumber":"0x4","contractAddress":null,"cumulativeGasUsed":"0xf618","effectiveGasPrice":"0x23334a86","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x2d389075be5be9f2246ad654ce152cf05990b209","transactionHash":"0x215dfde45f66435283ce435902e59787e936d99b8570d3fa7287f3b100f61f68","transactionIndex":"0x2","type":"0x0"}} diff --git a/tests/eth_sendRawTransaction/send-access-list-transaction.io b/tests/eth_sendRawTransaction/send-access-list-transaction.io index 5bda20f6f..e6b99e618 100644 --- a/tests/eth_sendRawTransaction/send-access-list-transaction.io +++ b/tests/eth_sendRawTransaction/send-access-list-transaction.io @@ -1,3 +1,3 @@ // sends a transaction with access list ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x01f8cc870c72dd9d5e883e0284044105e683015f90947dcd17433742f4c0ca53122ab541d0ba67fc27df8083010203f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000001a0f80409b3b493d286ac64576ef565c1fea10f3d23257f13fb4e537bde396c8c6aa01b0d6f26f3ca4f0939bc65e5ec69249e308e03ce18104f44412427d7f4ee0737"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x4a56863b8cd807a1ff7cd1dc6f8a24978f05f64e3c2da30fedc0faab9ad35e1d"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x01f8cc870c72dd9d5e883e02840442715183015f90947dcd17433742f4c0ca53122ab541d0ba67fc27df8083010203f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000001a05d974b732ece6b4dd979292e9cf0c09077925650db378d809f9e10b88e366c38a02f1d3f5508e8a3c4269b1b54fb7bbb67af4c667532c492e2cc871acb32acd565"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x2cc5433bea574ebe4f8bf9ef249e55bb8fc5ed8534188a9701d567fa52cd9d27"} diff --git a/tests/eth_sendRawTransaction/send-blob-tx.io b/tests/eth_sendRawTransaction/send-blob-tx.io index 8b8b3d59d..f2cb81e36 100644 --- a/tests/eth_sendRawTransaction/send-blob-tx.io +++ b/tests/eth_sendRawTransaction/send-blob-tx.io @@ -1,3 +1,3 @@ // sends a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x03fa0201a6f90137870c72dd9d5e883e808201f484044105e683013880947dcd17433742f4c0ca53122ab541d0ba67fc27df80b844a9059cbb000000000000000000000000cff33720980c026cc155dcb366861477e988fd870000000000000000000000000000000000000000000000000000000002fd6892f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000083020000e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a04a0ab61dc19e0596d2445f4c8e7679703d6c9bea762355ab8d89957b420f3d8ca00f50ecf2cc11fc5990d69e9ac5fd2709116fca38dc08d16d279752fdf4b6bc32fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x3f1f6834e904b0062d403f0ab51aa5541fdc5c17b23f52351f0d6f9f9e525648"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x03fa0201a6f90137870c72dd9d5e883e808201f4840442715183013880947dcd17433742f4c0ca53122ab541d0ba67fc27df80b844a9059cbb000000000000000000000000cff33720980c026cc155dcb366861477e988fd870000000000000000000000000000000000000000000000000000000002fd6892f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000083020000e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0ee82dd86d416a8715f80b7370dce2583f864f47cbcc06de9fb64f256bb96deffa051b64a4b36859b22790c56b60975afce5dad54745e837c30d82a9c54c20849abfa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x6345283e3d4b4d0854f5977109bef50d82d2557d32f5194900c3818a32968fad"} diff --git a/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io b/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io index ce238f2c4..cdef4b20a 100644 --- a/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io +++ b/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io @@ -1,3 +1,3 @@ // sends a transaction with dynamic fee and access list ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f8d0870c72dd9d5e883e038201f484044105e683013880947dcd17433742f4c0ca53122ab541d0ba67fc27df808401020304f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000001a0aa1aee42f3598c855334c126868f3ee35fb7330dd4ef4e91b9f236749a5d0c10a016909df719f8478651ac65f0276dfb902a3695fb59ccab89de066ab32b76bebb"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xdb31cf1e265200075f663530c491653ac9a8613079756de1d71fd9aa0ba1ea92"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f8d0870c72dd9d5e883e038201f4840442715183013880947dcd17433742f4c0ca53122ab541d0ba67fc27df808401020304f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000001a0723d812e906d86f7f758420a369181d205827993ec052a77b161b129c3048a9ea05758d51d3a0f2703c2f5cc76c6a4239debf5d54a837d4868b0e777c4993c67bd"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x4ba238ff17ee53f80777805d761816f7d00fba2194e2ee56bbbeff04831bc987"} diff --git a/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io b/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io index 5c0de3884..e90d20c10 100644 --- a/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io +++ b/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io @@ -1,3 +1,3 @@ // sends a create transaction with dynamic fee ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f892870c72dd9d5e883e018201f484044105e682ea60802ab73d602d80600a3d3981f3363d3d373d3d3d363d734d11c446473105a02b5c1ab9ebe9b03f33902a295af43d82803e903d91602b57fd5bf3c001a018abc2e874f7e7d4bb3ee687a080a6599b55fa502b43bc102dc850d35769491fa06604215052fdd8af1256cfc7d645b1a83889d085ff939b1f0431db61f8036fe8"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xe3f31d5aeeadc122865c5e666d6c540c93066d58e46761a71f5d1fb3ce6be93f"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f892870c72dd9d5e883e018201f4840442715182ea60802ab73d602d80600a3d3981f3363d3d373d3d3d363d734d11c446473105a02b5c1ab9ebe9b03f33902a295af43d82803e903d91602b57fd5bf3c080a07ca3beab5d1d0019389c1cd455f37c9fd712f899c3c42eaa36b77a191a75f7bea00681f4b0bbc710d72cf28640568621fc6113a84dda022b1c57188aad7a0ca8e0"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x39af252b441e7b977606af8fd82905952dbd88e759c7c4785133df8c6216c593"} diff --git a/tests/eth_sendRawTransaction/send-legacy-transaction.io b/tests/eth_sendRawTransaction/send-legacy-transaction.io index ef91079f3..76fb29324 100644 --- a/tests/eth_sendRawTransaction/send-legacy-transaction.io +++ b/tests/eth_sendRawTransaction/send-legacy-transaction.io @@ -1,3 +1,3 @@ // sends a raw legacy transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0xf86c8084044103f38261a894aa000000000000000000000000000000000000000a8255448718e5bb3abd109fa0dd5a76981eee3e5684d994130d05bb165e516c20ea23b149aa1b17b4cb0564e6a021bdb5747224359f458d6463440acd35620e63e78f733e80fb43f4b7b7ab27b6"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x7f256faa4161b9675df9e6c8c0cddb47bc02da482881c9b0604446104e1e2274"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0xf86c808404426f5e8261a894aa000000000000000000000000000000000000000a8255448718e5bb3abd109fa0fe0f2d62f8084ac7906f478d49740e122f6eecd104eaa7f526d5d45070ea936ca049c7ebf0bfa81090e660553b0b51d9f4752fc66caa48a7409b5eadb1293b0bd2"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0515c910908ab0cac71f946f7b6c58de5a4d3cf5864bed836a3c78c5ae4cf534"} diff --git a/tests/forkenv.json b/tests/forkenv.json index f25bf488c..f1ce241fc 100644 --- a/tests/forkenv.json +++ b/tests/forkenv.json @@ -15,6 +15,7 @@ "HIVE_FORK_TANGERINE": "0", "HIVE_MERGE_BLOCK_ID": "0", "HIVE_NETWORK_ID": "3503995874084926", + "HIVE_PRAGUE_TIMESTAMP": "0", "HIVE_SHANGHAI_TIMESTAMP": "0", "HIVE_TERMINAL_TOTAL_DIFFICULTY": "131072" } \ No newline at end of file diff --git a/tests/genesis.json b/tests/genesis.json index 96e91f711..bec97c10e 100644 --- a/tests/genesis.json +++ b/tests/genesis.json @@ -17,8 +17,9 @@ "mergeNetsplitBlock": 0, "shanghaiTime": 0, "cancunTime": 0, + "pragueTime": 0, "terminalTotalDifficulty": 131072, - "terminalTotalDifficultyPassed": true, + "depositContractAddress": "0x0000000000000000000000000000000000000000", "ethash": {} }, "nonce": "0x0", @@ -33,6 +34,18 @@ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "balance": "0x2a" }, + "01abea29659e5e97c95107f20bb753cd3e09bbbb": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cf573615156028575f545f5260205ff35b366060141561019a5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f821115608057810190830284830290049160010191906065565b90939004341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060011160e3575060015b5f5b8181146101295780607402838201600402600401805490600101805490600101805490600101549260601b84529083601401528260340152906054015260010160e5565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", + "balance": "0x1" + }, + "09fc772d0857550724b07b850a4323f39112aaaa": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460c7573615156028575f545f5260205ff35b36603814156101f05760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f057600182026001905f5b5f821115608057810190830284830290049160010191906065565b9093900434106101f057600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160db575060105b5f5b81811461017f5780604c02838201600302600401805490600101805490600101549160601b83528260140152807fffffffffffffffffffffffffffffffff0000000000000000000000000000000016826034015260401c906044018160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160dd565b9101809214610191579060025561019c565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101c957505f5b6001546002828201116101de5750505f6101e4565b01600290035b5f555f600155604c025ff35b5f5ffd", + "balance": "0x1" + }, + "0aae40965e6800cd9b1f4b05ff21581047e3f91e": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460575767ffffffffffffffff5f3511605357600143035f3511604b575f35612000014311604b57611fff5f3516545f5260205ff35b5f5f5260205ff35b5f5ffd5b5f35611fff60014303165500", + "balance": "0x1" + }, "0c2c51a0990aee1d73c1228de158688341557508": { "balance": "0xc097ce7bc90715b34b9f1000000000" }, diff --git a/tests/headfcu.json b/tests/headfcu.json index 00ac59ee8..43edbce57 100644 --- a/tests/headfcu.json +++ b/tests/headfcu.json @@ -4,9 +4,9 @@ "method": "engine_forkchoiceUpdatedV3", "params": [ { - "headBlockHash": "0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902", - "safeBlockHash": "0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902", - "finalizedBlockHash": "0x8f64c4436f7213cfdf02cfb9f45d012f1774dfb329b8803de5e7479b11586902" + "headBlockHash": "0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b", + "safeBlockHash": "0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b", + "finalizedBlockHash": "0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b" }, null ] From 751102c0718477d0a533e27d55d6db08b48a39ca Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 17 Dec 2024 17:10:04 +0100 Subject: [PATCH 2/3] tests: rename requestsRoot -> requestsHash --- tests/eth_createAccessList/create-al-contract-eip1559.io | 2 +- tests/eth_getBlockByHash/get-block-by-hash.io | 2 +- tests/eth_getBlockByNumber/get-block-eip7685-requests.io | 2 +- tests/eth_getBlockByNumber/get-block-n.io | 2 +- tests/eth_getBlockByNumber/get-finalized.io | 2 +- tests/eth_getBlockByNumber/get-genesis.io | 2 +- tests/eth_getBlockByNumber/get-latest.io | 2 +- tests/eth_getBlockByNumber/get-safe.io | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/eth_createAccessList/create-al-contract-eip1559.io b/tests/eth_createAccessList/create-al-contract-eip1559.io index d01d74d0c..d9b9163b1 100644 --- a/tests/eth_createAccessList/create-al-contract-eip1559.io +++ b/tests/eth_createAccessList/create-al-contract-eip1559.io @@ -1,4 +1,4 @@ // Creates an access list for a contract invocation that accesses storage. // This invocation uses EIP-1559 fields to specify the gas price. >> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","input":"0x010203040506","maxFeePerGas":"0x4426f5d","maxPriorityFeePerGas":"0x3","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2"]}],"gasUsed":"0xca3c"}} +<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"gasUsed":"0xca3c"}} diff --git a/tests/eth_getBlockByHash/get-block-by-hash.io b/tests/eth_getBlockByHash/get-block-by-hash.io index 9173c3e1c..8470e47e4 100644 --- a/tests/eth_getBlockByHash/get-block-by-hash.io +++ b/tests/eth_getBlockByHash/get-block-by-hash.io @@ -1,3 +1,3 @@ // gets block 1 >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x342770c0","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x4ee5f","hash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1","parentBeaconBlockRoot":"0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd","parentHash":"0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464","receiptsRoot":"0x061f3f6edb0780e654014c901221182d4818a7bcdc83d2bee4346808ba112d6d","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x534","stateRoot":"0xc218c6a7fe6afe137592c08035628468319a71ec3ec938286f750520468146fd","timestamp":"0xa","transactions":[{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x14f7e","gasPrice":"0x342770c1","hash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","input":"0x600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3","nonce":"0x1","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x705f2b3623a84545c92eaf588f84817657395bc43f6e1167de9613090c3743d","s":"0x27fa18a9c90e62aefe3110e08183897252de0295edaaee489966d0b65d006479"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x17d96","gasPrice":"0x342770c1","hash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","input":"0x600d380380600d6000396000f360003515156036577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd","nonce":"0x2","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x583a345eede64b0f8b15732be69bbb432766b326ef4c4e735e2a25ce569c2d9a","s":"0x592f759ae2cb9a5bd3e489c5a1efd46d73ebfdf16c13dc195ae1b43b6f22e34"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x1bc1c","gasPrice":"0x342770c1","hash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","input":"0x43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f3","nonce":"0x3","to":null,"transactionIndex":"0x3","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xcdf976a093022e24e498e02cd505a09307321d11f6f3f8b9e5456153b912631a","s":"0x3aecc24af018c1188130f7032aacca3f5cde8958937d2bcdf2b037e917cd70a5"}],"transactionsRoot":"0xfff3461a7e0f5d44052dc052f6dfbff287d500e8db3460e22e331d80a2a31353","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x342770c0","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x4ee5f","hash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1","parentBeaconBlockRoot":"0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd","parentHash":"0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464","receiptsRoot":"0x061f3f6edb0780e654014c901221182d4818a7bcdc83d2bee4346808ba112d6d","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x534","stateRoot":"0xc218c6a7fe6afe137592c08035628468319a71ec3ec938286f750520468146fd","timestamp":"0xa","transactions":[{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x14f7e","gasPrice":"0x342770c1","hash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","input":"0x600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3","nonce":"0x1","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x705f2b3623a84545c92eaf588f84817657395bc43f6e1167de9613090c3743d","s":"0x27fa18a9c90e62aefe3110e08183897252de0295edaaee489966d0b65d006479"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x17d96","gasPrice":"0x342770c1","hash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","input":"0x600d380380600d6000396000f360003515156036577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd","nonce":"0x2","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x583a345eede64b0f8b15732be69bbb432766b326ef4c4e735e2a25ce569c2d9a","s":"0x592f759ae2cb9a5bd3e489c5a1efd46d73ebfdf16c13dc195ae1b43b6f22e34"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x1bc1c","gasPrice":"0x342770c1","hash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","input":"0x43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f3","nonce":"0x3","to":null,"transactionIndex":"0x3","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xcdf976a093022e24e498e02cd505a09307321d11f6f3f8b9e5456153b912631a","s":"0x3aecc24af018c1188130f7032aacca3f5cde8958937d2bcdf2b037e917cd70a5"}],"transactionsRoot":"0xfff3461a7e0f5d44052dc052f6dfbff287d500e8db3460e22e331d80a2a31353","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-block-eip7685-requests.io b/tests/eth_getBlockByNumber/get-block-eip7685-requests.io index 62cebd8bd..0184aad55 100644 --- a/tests/eth_getBlockByNumber/get-block-eip7685-requests.io +++ b/tests/eth_getBlockByNumber/get-block-eip7685-requests.io @@ -1,3 +1,3 @@ // retrieves a block containing non-empty EIP-7685 requests >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x3",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x282416a7","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x46a08","hash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logsBloom":"0x00000000000000000000000008000000000000000000000000000000800000000000000400000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000200000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3","parentBeaconBlockRoot":"0x756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67","parentHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","receiptsRoot":"0x5f7e046f4b5c311a55d03ffb28ac8c8317bdc33d64b4dd36e6cc80b26982f052","requestsRoot":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x56f","stateRoot":"0x1a484651602ae733584016c5dfab95de8cfa74d9c749c9e2fe773bc8e8a325df","timestamp":"0x1e","transactions":[{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","input":"0xdc4c8669df128318656d6974","nonce":"0xa","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xf341a34ae4f66c156552aa672d054c685a361240c66ef75c07f65ac69b1e2f7a","s":"0x7200d4f70fdeb984fee0dbe79a3d729ee28a392f5f58cda722c0212123df95cf","yParity":"0x1"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","input":"0x3f446a7c4145b1f0656d6974","nonce":"0xb","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0x3f05d73d107c94d50470342a6c5d133dca225f858d68ea4fd95fa16503c217b7","s":"0x5e94d20059c6191f17297401df493a5a1e93265a22c306024bd9d87016034e13","yParity":"0x1"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","input":"0x96fd14b8fdcbd4a9656d6974","nonce":"0xc","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x2","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x5b328d8b937fcdb5b6f4b7966406b8ed2b931933a1562d14b5fc90bfc679d801","s":"0x36f6a5c3791f10762d299f391c1327480f8d51fb69ac98c161ebf466d91db3"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x2","hash":"0x834877cf885973710dbea20f5a73ac9c1fa932e9dc0d74f090c9fca2fe281a18","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0xd","to":"0x09fc772d0857550724b07b850a4323f39112aaaa","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x883cbfe8510f86be00f75a5b67e5e589e5db735e52681feffafb2f8448450bf1","s":"0x7760414c0411c354c69f05489f275dad0777255c2414fb705cf229d5f0c2c29b","yParity":"0x0"}],"transactionsRoot":"0xef3818352b94fca264dc37feb9a6748e00185ea54291655b716f57ebab28d3af","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x282416a7","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x46a08","hash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logsBloom":"0x00000000000000000000000008000000000000000000000000000000800000000000000400000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000200000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3","parentBeaconBlockRoot":"0x756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67","parentHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","receiptsRoot":"0x5f7e046f4b5c311a55d03ffb28ac8c8317bdc33d64b4dd36e6cc80b26982f052","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x56f","stateRoot":"0x1a484651602ae733584016c5dfab95de8cfa74d9c749c9e2fe773bc8e8a325df","timestamp":"0x1e","transactions":[{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","input":"0xdc4c8669df128318656d6974","nonce":"0xa","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xf341a34ae4f66c156552aa672d054c685a361240c66ef75c07f65ac69b1e2f7a","s":"0x7200d4f70fdeb984fee0dbe79a3d729ee28a392f5f58cda722c0212123df95cf","yParity":"0x1"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","input":"0x3f446a7c4145b1f0656d6974","nonce":"0xb","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0x3f05d73d107c94d50470342a6c5d133dca225f858d68ea4fd95fa16503c217b7","s":"0x5e94d20059c6191f17297401df493a5a1e93265a22c306024bd9d87016034e13","yParity":"0x1"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","input":"0x96fd14b8fdcbd4a9656d6974","nonce":"0xc","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x2","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x5b328d8b937fcdb5b6f4b7966406b8ed2b931933a1562d14b5fc90bfc679d801","s":"0x36f6a5c3791f10762d299f391c1327480f8d51fb69ac98c161ebf466d91db3"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x2","hash":"0x834877cf885973710dbea20f5a73ac9c1fa932e9dc0d74f090c9fca2fe281a18","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0xd","to":"0x09fc772d0857550724b07b850a4323f39112aaaa","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x883cbfe8510f86be00f75a5b67e5e589e5db735e52681feffafb2f8448450bf1","s":"0x7760414c0411c354c69f05489f275dad0777255c2414fb705cf229d5f0c2c29b","yParity":"0x0"}],"transactionsRoot":"0xef3818352b94fca264dc37feb9a6748e00185ea54291655b716f57ebab28d3af","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-block-n.io b/tests/eth_getBlockByNumber/get-block-n.io index cca187b1c..8051b9c78 100644 --- a/tests/eth_getBlockByNumber/get-block-n.io +++ b/tests/eth_getBlockByNumber/get-block-n.io @@ -1,3 +1,3 @@ // gets block 2 >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x2",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x2dbf1f99","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x5ab61","hash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logsBloom":"0x00001000000000000000000010000000000010000000000000004000800000800000000040000200000000000000000000000a00000000004000000081000000000000000000000000004000000000000204000000000000001000000000022000000000002000200000000000004000400000000000880000000000000000000004000000000000000000000000000000000000000000000000000000000000000000020400009000000000000000000000000108010000000000000010000000002000010000100020000000080000000000000000000000000000000000000000000000000000000000000000000002008000000000010000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2","parentBeaconBlockRoot":"0x2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e","parentHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","receiptsRoot":"0x1c584df19d78d56a628e1bf6c8e6b7a721d02c4c2a3d163b3452407789254bf9","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x5f3","stateRoot":"0x1177c7bb3ede8e56bfc09a8613ea3bb36da325fbfa491e834a75d81bbd3db91e","timestamp":"0x14","transactions":[{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11f58","gasPrice":"0x2dbf1f9a","hash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","input":"0x4360005260006020525b604060002060208051600101905260206020a15a61271010600957","nonce":"0x4","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xf69b5bccffed490be6ab9b289262ac6147bb6a23f3b061e7356d5d9bc77ceefa","s":"0x101b956c4a93ffbf89484e68ca23763d045293b2df67c75c2a1c4349b3df0880"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x2088a","gasPrice":"0x2dbf1f9a","hash":"0x9c59ab4e3d9e2e06c778e270db5e8dab71586ae519b4bbfd0e4a88d5e7213292","input":"0x435b8080556001015a6161a810600157","nonce":"0x5","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x5934bc3388ea75269767783e0ee816deba22e297b596df122299ac92ea674c0f","s":"0x633b50dc84f67caf787dc5d4d96ea9a31eb98db10f92fb90a71865bb7d06f337"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11cfe","gasPrice":"0x2dbf1f9a","hash":"0xc96e16ba815c81fd8d14650c7c21c574bd88584801a9e17894b82412a20c56f6","input":"0x600d380380600d6000396000f33615600a575f355f55005b305f525f5460205260405ff3","nonce":"0x6","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x3688300a9fcf3ef90797042f765059cdd1f195493b16d04bed5b8baa85dca39c","s":"0x53d14f3767744502a1960a34d896488501765d426dfa0a8e11ba97cccefca6b8"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","input":"0x","nonce":"0x7","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x6cad054757f422066e2e474e5e81ed495bdcc979","nonce":"0x0","v":"0x1","r":"0x1a63d81054d08d92118b33115b5a515817e50a3828fd96939f979ac93694751e","s":"0x306a64ef2eb532805f1f5079af7591704b1623e82e56bb0c6b18342b48958b06"}],"v":"0x0","r":"0xfc169339eea66ef47f1cfea0fd18797b91853d0977c3d360bafae7e3c0f7ca3d","s":"0x445cf1b2b73d6457b9324c4351024bb406b0111e7ea038713dac4968a625e43","yParity":"0x0"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x2dbf1f9a","hash":"0xea09deb1fec8d86d396ed7912b82d9b619c271df482aee77ea55f8217c06fbc3","input":"0x696e766f6b6564","nonce":"0x8","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x4","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x9ffe039795b25e0fc3e54cb0c9405ebab7320501349392c8bfae5b87bb5950ba","s":"0x4296ef413b2db4dfc37be62b76931866139ba090516d110d5ae0322a6b2e02f5"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","input":"0xcd4a1f0815150453656d6974","nonce":"0x9","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x5","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xdb642586ab80271c8da5852da58846f2f3dcf42547a671e86e25cb04d25fa59a","s":"0x62d1e2f9284ccf46e66c54c8e0598e983a56a3f401975053f7c244c4d540b6d9","yParity":"0x0"}],"transactionsRoot":"0x0c741433f0cbaf39a8d1db8a621e914cf6f73a5c763a9df3e6467a668f282c50","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x2dbf1f99","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x5ab61","hash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logsBloom":"0x00001000000000000000000010000000000010000000000000004000800000800000000040000200000000000000000000000a00000000004000000081000000000000000000000000004000000000000204000000000000001000000000022000000000002000200000000000004000400000000000880000000000000000000004000000000000000000000000000000000000000000000000000000000000000000020400009000000000000000000000000108010000000000000010000000002000010000100020000000080000000000000000000000000000000000000000000000000000000000000000000002008000000000010000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2","parentBeaconBlockRoot":"0x2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e","parentHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","receiptsRoot":"0x1c584df19d78d56a628e1bf6c8e6b7a721d02c4c2a3d163b3452407789254bf9","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x5f3","stateRoot":"0x1177c7bb3ede8e56bfc09a8613ea3bb36da325fbfa491e834a75d81bbd3db91e","timestamp":"0x14","transactions":[{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11f58","gasPrice":"0x2dbf1f9a","hash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","input":"0x4360005260006020525b604060002060208051600101905260206020a15a61271010600957","nonce":"0x4","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xf69b5bccffed490be6ab9b289262ac6147bb6a23f3b061e7356d5d9bc77ceefa","s":"0x101b956c4a93ffbf89484e68ca23763d045293b2df67c75c2a1c4349b3df0880"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x2088a","gasPrice":"0x2dbf1f9a","hash":"0x9c59ab4e3d9e2e06c778e270db5e8dab71586ae519b4bbfd0e4a88d5e7213292","input":"0x435b8080556001015a6161a810600157","nonce":"0x5","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x5934bc3388ea75269767783e0ee816deba22e297b596df122299ac92ea674c0f","s":"0x633b50dc84f67caf787dc5d4d96ea9a31eb98db10f92fb90a71865bb7d06f337"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11cfe","gasPrice":"0x2dbf1f9a","hash":"0xc96e16ba815c81fd8d14650c7c21c574bd88584801a9e17894b82412a20c56f6","input":"0x600d380380600d6000396000f33615600a575f355f55005b305f525f5460205260405ff3","nonce":"0x6","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x3688300a9fcf3ef90797042f765059cdd1f195493b16d04bed5b8baa85dca39c","s":"0x53d14f3767744502a1960a34d896488501765d426dfa0a8e11ba97cccefca6b8"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","input":"0x","nonce":"0x7","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x6cad054757f422066e2e474e5e81ed495bdcc979","nonce":"0x0","v":"0x1","r":"0x1a63d81054d08d92118b33115b5a515817e50a3828fd96939f979ac93694751e","s":"0x306a64ef2eb532805f1f5079af7591704b1623e82e56bb0c6b18342b48958b06"}],"v":"0x0","r":"0xfc169339eea66ef47f1cfea0fd18797b91853d0977c3d360bafae7e3c0f7ca3d","s":"0x445cf1b2b73d6457b9324c4351024bb406b0111e7ea038713dac4968a625e43","yParity":"0x0"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x2dbf1f9a","hash":"0xea09deb1fec8d86d396ed7912b82d9b619c271df482aee77ea55f8217c06fbc3","input":"0x696e766f6b6564","nonce":"0x8","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x4","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x9ffe039795b25e0fc3e54cb0c9405ebab7320501349392c8bfae5b87bb5950ba","s":"0x4296ef413b2db4dfc37be62b76931866139ba090516d110d5ae0322a6b2e02f5"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","input":"0xcd4a1f0815150453656d6974","nonce":"0x9","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x5","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xdb642586ab80271c8da5852da58846f2f3dcf42547a671e86e25cb04d25fa59a","s":"0x62d1e2f9284ccf46e66c54c8e0598e983a56a3f401975053f7c244c4d540b6d9","yParity":"0x0"}],"transactionsRoot":"0x0c741433f0cbaf39a8d1db8a621e914cf6f73a5c763a9df3e6467a668f282c50","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-finalized.io b/tests/eth_getBlockByNumber/get-finalized.io index 231374055..e993b5f1f 100644 --- a/tests/eth_getBlockByNumber/get-finalized.io +++ b/tests/eth_getBlockByNumber/get-finalized.io @@ -1,3 +1,3 @@ // gets block finalized >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["finalized",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-genesis.io b/tests/eth_getBlockByNumber/get-genesis.io index 1ba15cfa0..5743cef36 100644 --- a/tests/eth_getBlockByNumber/get-genesis.io +++ b/tests/eth_getBlockByNumber/get-genesis.io @@ -1,3 +1,3 @@ // gets block 0 >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","difficulty":"0x20000","excessBlobGas":"0x0","extraData":"0x68697665636861696e","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x270","stateRoot":"0x9dc4958e19a5fe8e30e0b8e826375d4f89f362fbf272433977730285cf3cb741","timestamp":"0x0","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","difficulty":"0x20000","excessBlobGas":"0x0","extraData":"0x68697665636861696e","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x270","stateRoot":"0x9dc4958e19a5fe8e30e0b8e826375d4f89f362fbf272433977730285cf3cb741","timestamp":"0x0","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-latest.io b/tests/eth_getBlockByNumber/get-latest.io index 49a55e524..a4b2f117f 100644 --- a/tests/eth_getBlockByNumber/get-latest.io +++ b/tests/eth_getBlockByNumber/get-latest.io @@ -1,3 +1,3 @@ // gets block latest >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["latest",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-safe.io b/tests/eth_getBlockByNumber/get-safe.io index fff1b5511..23508814a 100644 --- a/tests/eth_getBlockByNumber/get-safe.io +++ b/tests/eth_getBlockByNumber/get-safe.io @@ -1,3 +1,3 @@ // gets block safe >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["safe",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsRoot":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} From c9f6063ae95e1c242fe531fcd12f4b4c2da5ff43 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Sun, 5 Jan 2025 18:01:32 +0100 Subject: [PATCH 3/3] tests: update --- tests/chain.rlp | Bin 24232 -> 24231 bytes tests/debug_getRawBlock/get-block-n.io | 2 +- tests/debug_getRawBlock/get-genesis.io | 2 +- tests/debug_getRawHeader/get-block-n.io | 2 +- tests/debug_getRawHeader/get-genesis.io | 2 +- tests/debug_getRawReceipts/get-block-n.io | 2 +- .../eth_call/call-callenv-options-eip1559.io | 4 ++-- .../create-al-contract-eip1559.io | 2 +- .../create-al-contract.io | 2 +- tests/eth_feeHistory/fee-history.io | 2 +- tests/eth_getBalance/get-balance-blockhash.io | 2 +- tests/eth_getBlockByHash/get-block-by-hash.io | 4 ++-- .../get-block-eip7685-requests.io | 2 +- tests/eth_getBlockByNumber/get-block-n.io | 2 +- tests/eth_getBlockByNumber/get-finalized.io | 2 +- tests/eth_getBlockByNumber/get-genesis.io | 2 +- tests/eth_getBlockByNumber/get-latest.io | 2 +- tests/eth_getBlockByNumber/get-safe.io | 2 +- .../get-block-receipts-by-hash.io | 4 ++-- .../get-block-receipts-latest.io | 2 +- .../get-block-receipts-n.io | 2 +- .../get-block-n.io | 2 +- .../get-genesis.io | 2 +- tests/eth_getLogs/contract-addr.io | 2 +- tests/eth_getLogs/no-topics.io | 2 +- tests/eth_getLogs/topic-exact-match.io | 2 +- tests/eth_getLogs/topic-wildcard.io | 2 +- .../get-account-proof-blockhash.io | 4 ++-- .../eth_getProof/get-account-proof-latest.io | 2 +- .../get-account-proof-with-storage.io | 2 +- .../get-block-n.io | 4 ++-- .../get-block-n.io | 2 +- .../get-access-list.io | 4 ++-- tests/eth_getTransactionByHash/get-blob-tx.io | 4 ++-- .../get-dynamic-fee.io | 2 +- .../get-legacy-create.io | 2 +- .../get-legacy-input.io | 2 +- .../eth_getTransactionByHash/get-legacy-tx.io | 4 ++-- .../get-setcode-tx.io | 2 +- .../get-access-list.io | 4 ++-- .../eth_getTransactionReceipt/get-blob-tx.io | 4 ++-- .../get-dynamic-fee.io | 2 +- .../get-legacy-contract.io | 2 +- .../get-legacy-input.io | 2 +- .../get-legacy-receipt.io | 4 ++-- .../get-setcode-tx.io | 3 +++ .../send-access-list-transaction.io | 4 ++-- tests/eth_sendRawTransaction/send-blob-tx.io | 4 ++-- ...end-dynamic-fee-access-list-transaction.io | 4 ++-- .../send-dynamic-fee-transaction.io | 4 ++-- .../send-legacy-transaction.io | 4 ++-- tests/genesis.json | 16 ++++++++-------- tests/headfcu.json | 6 +++--- 53 files changed, 79 insertions(+), 76 deletions(-) create mode 100644 tests/eth_getTransactionReceipt/get-setcode-tx.io diff --git a/tests/chain.rlp b/tests/chain.rlp index 9c17fd7a993651875000d990c091d2a44a6418c8..b62b4c1ff1a866840917109d62da5945a0dc0313 100644 GIT binary patch delta 8429 zcmZ{pby$;s*tgk6ca9E8>23+>?vjv^qq{*mq!bt^k~gg&B91NzNfAW_NdXA~MM8v8 z^BMT_d0zi`_t%bNJI;OY>)Lhhb62U$ftjr%2%MT z#`*1;d?#QZ{Tan8bdcPcwA%C>y6=DIlYO7u{VRU znZT6of2Po_cgl5>mjd+M^6Wj+3=c*j>=I>@iluYP?E1f(E$#fN>OH-#aXJ9ko0mQc zok;z#;sNaG-#!R$@u+W%b$}L--zk5H{?M`1HieBsLI}9QT;3;O2jIK4p}AyK7>`+W zm(Jm8p0|~Pu{=e_)B{_uSN608_oJ`sG}S)xb{d?O)VYTUMO+BTQyPABI^K&f8GEmG zG*gPT1o)ZPxVqu!Yip`YzIQW7V8}g&4*9>z9cENqq+!~WegT{u)<35Dey5K?7{p0{ z;L%IS9NHQM(LB~&ut-dL2O&i?im)QsEC>+qh;b2U5nKeh4KBh>lnV2l3|kq5g@vFH zrANSsWe~wq)Y;37|Gk%(feq{beZ)c%!Agp33E1u@ESDw6zRpR*ir5q7LFkjHQe(Hx zfKXE@!~u)Nx9=(vCSqP>L-;Y#Bf3dEEn|U*7)~pihrPm5MR5&TVWj}p2 zh_wz3M#MBxvY`5bD$ zoH82W8bfC`^!A=W-kgB#0QV`jv*GReyo_MHAiJAJ)6*hh98p<;hQpK9PYCk@4llom zH&ynHJeBwqi*R?OKRb%-6bEG9T%~I&AHD9cXp(>o~@ zRwxxD^1+cxfz{{9mmGjw`~A1}hardW&mmf{Xle2A3E5-yVLroGL?7E2og0qZd_gF$ zzf~klnm1ge7vs$*)5Nj2S@mig(cHYpN zodB+7M3@yvQdrjYi3u|S*L=G;vN{NL8syjDr^43(TV$vx%0!lT7#d7iT(=ZR*yG77 z_bC2eiy!`A{FbV5HuEhx3F}dVeO}OKp;}~gMw(r^Slq-hdztg=ynQ_SLQ6om z-c-z_%idMW(`_)Zh=0)fmj*LP=2g{1%P0pwtUab}7L1zy`;DLm{UKkP#*NO~b!m7}zqrK9kW z>mE&Tc{(oM4l`zEaD*@Ay(Kd_^J}x&OQ~Q|+jBUGins0rK!OQ*a`@-`CVlCcCT18{np!Isia3P&46;-e5AUD z-`bnKO$P~liMtmXlWNA458Vf*@0$6qs?J^7aP>02v=~JBhH$`Gm+7PW=aQcrF7>Id zM(2y4LDQ6@W72QqU3FG}YlT*5lvLpRtFNbtwaBg4%^Vp3WyFrN zYS_1muks;@8If~NzMNEizaQuq*pyVfpceNcKxP?pfe@r@vS3$sgf?3^*p&mpca1@> z7X;WNOMj1ga}zlcB1wo#;Uu}Pe(b%Ys^Zz}TzT2g3aEf+{zQ)anJN(*3;zVR>teP^ zrC%!g1AlhV%7P%DYc{t~9t?@J4OhTxm;s%y<0$OWZqdb4qBl_4za~#9sx}9Ut#k`) z9*1=MaR~qswzx?Wq>>mb4@YK`!A}L2!qpE z6{;U-JVScE@ZJ(Y(6FxMMFamuF8x* z-Z|Kuk*~*<$ifzZ9`f2?VKH>!fI}Ia_EH>;sg{6uu5(RU9J3tf1g~41DU>4ytjy6T zuR5$FrVdjaqDhvKZ`m;eUO7%C$*HLxVX|v71 zKlXOw3Nr05?*hEB11`uv*M6q&-Ei%Xexm$cSAPJYdReZ(RA~{r-=m6xGbd8N#PBY) zr83r_4@)KcXfZkM)$CYdUNnfo02T$Vm#LUiW zes>ej7`@DCg*Xe06V>tSv2}h~udz8>K{d8P$CLy>1D>KfqYYi_*r@fPb))K{Fv?u3 z6Ibh@W?!i=4Ck%I%ntU@r4@aD1b%gNi+Q0T{D^O#P(6t02{W$7Fk^I$-Frx@vmx@T zsq>E1tL(GtkBN+#30->AY$q}up_?uIXU;G41h^4RL;ydUMiVT_J z%;rKNb-gw~lE_WvSV26~5)ZI@cMHl~hjlX#hj-(JC6!*2p>L6yr4FKT7aTZZu7QmT zy_QHRdPSs1^zqS}=VlmAh35 zl8{O8lMOmcAm5s+y!nE?GtgJr%2F>j~a92J+_j*Iq^^W z;rIhC;b-<3?JkuNqf!Ho4797OR#6^pq@%h+v|R^8A#diE;lC<@2=W{Cqvsrw&hkpK znO0f>d7*;kvkKfM!d=YJLml;(monVDl;Hx_*%>6Z3h+Ahcq6PFk;Ab=23p8v>9&Ex zEZ==W%3d|p?n^Y68m{7MOE_GriGMP9f#*$tkjlB)3=dTmC0-E@pwr{5OY6KA`Eo|? zWf=D_*54bhM%3kFoJpkf7AyE>mB?ZNOhXqN5f_3!;KdgRZy^qC-&h-d9|>LeB`>!$ z0|q<%Qf~HvjstY;xc#*f-REcsz^+(7Cz4porTPnc%Y%MnE2ImDV@9H%%ZHzk+6hsZ zg-YT|B-_Q%E<=ymb74G-T-}Ld2M1Z-7BoR*=HVnxUjWNodxXHpm85OPLvE=%lZWh8Ptjdt_R88x#OX;yZDvJ9L4HJ4)OM&&neiaDw1M073#-x0Mq|24{ z+rkI;B;*c0S;ROegnkFaCRQfsDr1;NnV<0A9FTOEA$Ae|wbCB?NqS*7$SU6zF)hr_ zc9BY;DeS!#w(2>JxVEFV%)vpAKLS1e*%&F6yw!lPzN#+0Fl!_*_c{8J1}m^S(FyY> zispc`yF=YqKBF3&oWp>RL9x3ff$g36C--}`I-yy~yG3Vo#m1KEYh|3Z1CJ(=St6L~ zl9gh{#UD%tV0^`5SqdO>58|1oV~kd|3QbRW(+_p>a~+GrCFNzugbDhlA#2DCf+M?V%2%p2bl0);&Ym_oD+;IG9!EkS_wsrrag{E?KG%;uJdEhx1(-6c5?-r||mL~7-p{#g_-thzrv zlG{n?xXLn>Ytw$=AtiEV3W?KwXn`>>*B?DemZGeD%u*RCy!$ebjBKUYLZYZ+$+>+8&X&yT~;7?B6% zlVAE!=yH78-gYaK-In@dSETL6S|X(oGVZk%nq^BmqH^4Gc3xh8)nIC4L^Ug$N%h@ zr9uYDC}j@}!~tLR9(7S3xPbbOYA z+-mAPz|dBC*G#3u?K80)NV5^nWS*}vgm>by^?~uBPXaxy_CM|t03{MDHeu*8%x1j1 znS}4}zOtfRbCI~1v_19Ma8C%6djNaUYd9Leh1CVvMxa+J(s~3G;bl+aTqf~27YYX6 zSQyr?P3Si@Iu!rwF2O(G6&XfM^sL82N;XXB!`Jyzbse~Vd})ug`_8$n!72^CzY%Rc zH3GnH2c!^tWjzm*uc3u^+X!t(Cga=kX)b%-`rRqobjuIrA@qmmWy%oqzv~-~h7F^% z=bLTiKOw_ep1um1Ot<%;Wl- zpNH)t>XMofcUbsu{;qv5631kGZ{U3aS9pSBT6~S5&vD{&5xd2TFL46A<$(2FlIAWE zqE~+VrF1T8#ixDi*w#VY=RFNpuMFE-P#s7;IeQRTavf1G?*o?HxKdiN=+1>zzN`ah z0{;(M%ClSdJsyRF{dR3Vg}iD^NQXjz=r75`WbN}OHeh-dRd`T zsr&mmA|mW|zBX>ix4Z)0RR}=Ajo@lriZJRUh4sVLK6U)&Xnl$E&Oq_Y%Q_MjbAwO4 zvojDxpBX&@P{3hpVzwW&+ly7}CJLc^S~5{=zGd@ErcmX3<`AE)_QVatt4Z4VF!jRG zoB(AK_rQcBR9fr%jUbiCvah!0V)l#b&kC{tzc*4HCU5oCic7)5NcAZj%8yM*X{Czn zU^b?lBWrjPQb7?@XN!ZYWHG2@0k-&gHA_;;o)#d0`Qm=7I?0|dTs<|ETAv-_MlAZ2 z3bft6J+(1oZiCAW;6-?@iM$VFj)ZNPzTvzl6aE!#h8t^pcl7x+ZrtucwSS~0o=5=y z4^Mv6+uW7hFK=lH6z7}3?asBW<6X@#;GG&Z^7VWuu*nv0bqU}R<2fy~mR6-tHo0x) zPSdv#$LtqN=W!fDa(C1lKQ{IsrAdJP(issuH?y^06DXvR4ZnKK_{5yxiNm__)44|8 zc@uTq-}(6uZi#7^0^G({quAQe+8$|e_AnKfO2rZ&aLh^(U`K(K4=QM@B9JbaeCN+MAI1yQ#xNJZ;<( z=g9_;83BG{GBQ-3563fx%W;~xl%y?u9NNWuB&WA(cuzWT>`>RNUHmp(^jF&r%8{Vf z#J;Q6*40XhxzB0XaTh`v7jRcwVt!f(89vj==*H=0$lVK}0wA3fMQROJia(B1OeRM| z(QPz%jI#7UE1rT!@*9bNMj~fbF_Lse$f`%iz~fEubBP6vfk%Wtm;?LRGgqwK5^kCY zh-QzlU7YE}iCuhI>6U(F%@fDC)ALt*GR^A@pv-|~7VnnX(=wMADb9ZTF z{Qfp6`Mg~HS0-K6g1MQB#0A!{{ZAW-qu&y|3-0jT6kXAI3srX7p( z$bvdy7cIf?jqN61%VL&;-Ow26<7C<49l&>{GUgd{H!n@otM%-`Me18v+#qQ%n=#ww zwR5|C@&iMvHnkvpxbva$;A4fy~#hFBkvCnAK{~-!4|A&Xs87A@R7}c*Q1pLg1q09z9 zCcG|P*^87i6LAr*gIc&g`a<3VNH1Tndd%_8L2LHZ@mO6a`~jh`9&#XXs)If~{;P&5 zF=9oB3UjTO35itK(+dQEus#KM5K|Zq*QC4vx#-W##HQRhEgS3SZsf}*#uXj_XvP+Z z`&*d%%N>FYUVcWqmK>Gm>H=sXBhYf2+XHktW`b};PQZ=;{ISq<@_Bl;V7l^XazDK8 z@b(#KT;nKXNs6H@zd+02YJ&7L7*7xhu7VDA!g)O9B_g-!?#D&avNyQmOYTNer1bz5 z^?rSp4NdB*)6!S0Qhir`{8~R%d zjdfMRlGVjstoHymyb)s)L3Z4y3@Rlxhxc@Dw2SIBA>KLG`of3{pO#UgLY4k9=@DE; zG?)Y&&?ziL1W8zxdX0py-UmNYc2IqvFzu&i9kbLjIwFe?a87cojwe5`c9Mk4J$=C- z_%yU(8kaZjndQn#<%IKHqkqDY@_%Q}He&XmRNkyn`mDlxCaImAcXOh-wH9Qh<+(`4 zn&szHN_zAd2+<*hR_K0ot(Z}GqLBGhc`(>F)u`%`?_nd)bL{@m^-DLdT}F-7aY{HE zub{GcShx`$5`4ekb=%vYoq{!LK}=2HkoWAWvtMgIj8(x3?A?ca{U@t-@La0A_ZG&= zh7~9T?@Es4RRhuK^-o`as%|a!ZZxJBI1-PT#0_~vbgr<+;OWkhnm&bDMqws06tQm- z0SZH47HToEfCw*kzMAq$u@=}wwM1aoiJxOyL+_$9Rv(W;SkW+W4`6^ocbkvCiG!1t z!ek3`oQuhMf*NERn8jTbq84sTI-@*P5^>Tq!Y*B_Lq=_KopEBYJ8NKJ1Il+R@8#AK zDE5D&Ss!xp3#geopOBg1;^_JD?p)HB~&>Je0ZDXXSmJFiXjGZk+o?sOr zrSZINXQIe4RB&Obv2Vj?BGB^DZ>tPWcbloJ;^Py!ntAoI8?FYnUU=;cOb;cMSO4x; zsr!an;jkuPRRt#G@msG&sV%oI)}Yc`!{7&!tlfpbmC8FeZ{a+e%ZNdSnq!Jje5Jz^ z3j+`dMqrZKDzGRUGIhm%IV_u@<2aBLC};N}o#e;<(mCE^7sxj?!0(WA+fG`9?5U`? z!~?H%mlECvSv){ByIX0s2F} zRGFETx7lX5;|P(M;=UMRk@$2~&c2+wcfR18L}n7Edh6%EilPB-!y4Eqgjs}(x#>ob zGAWNq7_KRr&fQP#)?ivn&!YZ6xk&T>;6k@9*HZ;J^@39R3EO)^PDTDl6ASDI%WCTL zNesAvhV9bLgcjghA);Tby0t;O+sS8KbXnP?I`Pzhc}X#+%ja3zW2I%xG+nNz90BcW zuHN>O27-#Tv-h|}=feDQ^`|{}t=+r!lqVrC9k{L<`tH$Qs7!Fg!ZN3;Bn*e4YoWON zZfg1(fLe5kc)j3Z4?O$zTdclWesG-RX(m>)$#N6am-PKNv-x!~5Z~DyeO2TgYfMA= zuQZ8ct4d@0kK42`#Z&PWz?hQ}5oVjM?du5#8!@)xL@%dyw9m^CQ941={fP}Y+e8K{ zMHmdJ0NoG2LWpbz%`Mxx+D5paretNtKt!`Yu+K_NEtc8&SfN6+{}SmDo_3diPEMU< zt%9#{@)6=oM7T$|s=v*KqlmP)a}_XuchHFErj_RMyn9KrZ*WsXQGw=k{{6*Pr{zrT zCiJ+?4T|?E^XMP3>HInH|9^}zD{F~BhkM(+_x)uvjuW+{q$)V3U#Hzscdf*L5m!*LbkTLuFm$=uKbcAQ&jopzGOG$++quzD zv36dVxN|mAmtT$8dzC+ybwJix(zP7Xo9+)tcvqBq2CRC*t#IrtvEGfbb2J)+7qxv& OE%BCi??}(@?foDB3XEp} delta 8414 zcmZ{oWn5I>7q6L-?ydnOr5ou+V(9LY?hXmbL6H(T2q<+BBt(=D>68{kIwe#>Kw20= zyaWEc|LcqUdgk+-eb#rc=d8U;TOnnw5cX3H!BeO;cw=lh;mn)#$x(h3+QGofhZkAx z1=~qw`MS3RT7EthaR7W7#2CA%drL3fF3AGZJECseAzTEX`EJV&h;w)cVlb*itNf~t zXh3J%yTXMjpxsn<{p8M=DP=EyL+Z?sw%T;c)PRIO(b+xZ!sAyz$b2G%Om$N=I8kPGj9cq36ZI-g+2kfwQjB54^UnRmFR66*Ar zgGU#nGu7J9yEo}(mjXNPU#l-=`oyEjB||ACqAwr(h)v_P_6UOj0=-KPbn5c}{8;Xg z1Rw`%BQgvV!P|cGSuBL^GAgRrmO%VQlr4cRnuIOdp(uqdu8GZU8zVFe0ULcALt93D zTX~zqht#XhlC8uAplG}RZo!D`DOMIbe~_-(@aX;%xD@3ljUN_?FXI-9azTSp9Wmzs zWoTh0uEU^DPrnfYoYT+)jK)|HbbtU~^adIl8bBgQleUZj{1(Lnyzw~z zel47|WfCA<5*Ju7$3y)W2N=P}2Y3Yu@uO}apmMT|vFL8t3|FN_=U}BQ1@;8l0ZjrW z@*52^5ai@Te810m*735q2-J^dfDauF&_dvD0s#*diqyXydr&y)zjWrs&~z~uC6({> zI2KBuMbvm=2dRcQ7%rEIk=%_gNP+0_i}xWniGz4K3nb{s*wu)V_0C;iWq01)I&zw&uWfh@MOOS> zFah)$9}9)=W#C){^J1GAVX;<)#o;Qk9Hx;1M8tR8;-%X+^oSm`p`DmpIIpfgTAlZ| z)_1wNdv?x`P*cX+2ZL=DG|@@k8}=4ps1>kVRbmCRS+bI!`&b@uPVRMe<#cqM-WWcG zT7ecfX(U2X?L z-f6u5b~rYwyf>4IwjO|^vEv8cSL*gVsYNDx7njG`YW0Ot@3)oVKaHE-(BbE1Hs|!N zy-i{TfvU#=8Kj|5^#=ek8NDHIQssOB=K&%>#I<^C8hAr%y-YQ35cn}fqUXWG|e%RHTiN*t07BW-UJJ5H0AgfXF zi<({Kl0vPJ9ENlw{zLN-r&a&2&p|M+^4as`{1yD8t+MmWDod|4!68`xkkP7DvzqE_ zrcz^2d}*pv(-8N0`|AV0>|1=4Nl%}>WZ$%w>%4_?V@9!51<)X8W`y@t*9ls`mg83Q z6OM&0m)ftst>O#TFjbJcId<2Hyx_Xt+?5Air;eH0RXqt?4RorqogKH`W_)i`d-6wLOk2i2LoAiY+3aQGoRi;{X$@71?f!o zhsT7?XylEEGtq|ShDxECY2CreF2FgcwO2BsV~{Jl*AyVf{|Z#aV4oqVB04PL9C_%+ z8?5z-;b%g)ss0_;_Uz?#u9Sg>StxSq@17us{2^bN#f93_Et76Kzh<(Z=ewN5+ebwg zEh2hqSvEaYdzS)EZD&Ebp`dTtNUmj3%*`EeDOo~$k%6<0lSnqa#DH^s0H5TMQ!%P* zF!-+|{aZ<5V|x6Z#}LkZzh$hp{nIC}&J*6u2=f-OWu&}QDZNh7;;d;J?lH`6t^Nip z)FZAqU4oTuY7bUE2eBR^)T6)#lX5bmhF?8oV!ZLzw13|8*6yqKOiBSu+FxtLO_@69 z>}u<2P$~L{Uwcy)W(4)We{IRvuq#V$&fa=Kp9aYg7{Ckfv}po97~XByofAypQp?2n zTqrXEdcN|ijGzCNI#>HKS4}|8hsGhkWU$yz^0!vSOvFY+0xIyn&%T?@F$^od`c?0#&Y zj*-%nADq<~^@)baV5+}78X$t6!lVEcYb}WaM%iB#QrCYxL39`A;IC2&dry#Czt-%M1^!%GG^?&R2Fras{ z85t>$@L?HgQ40OVno$5mq?GB0|CooVe$7}CcaePoYQ5Rt;81K?>Q(U>DN4y^2-&$4 zh;*Ozeer`5k;Hi-bY;V@S3?R0mZRw8?XWwsOYfG32G13PmN}R8Srg(lCcX}37gRy7 zbM0mH$5Ml{^$3ZmE%H>x7&tO7$*YE!n1ZCW%bi)9s>cQa2pJ`y&SC(ZF$C%?4sbEiYIZ=t@rA0f4-pbn2M!;5 zw5W8>>slOdZ1EyCE1KVTXN~eigEneRxA`3hj!E{N~=?O9p_J@bkhf)F9mMt3^d>nZ{KH}s#rawNt zK;#|DRgV{JW2~1>1&pNIAd{I7U)8r}o3yc7*&Xq3?}L*kBMXj}ZTOmBI2L{FWdkUf znHeuIf~S z2hG_>F4XUI{pgQj`OvTQ9$@C$6t*V2!_KUke?pC{9xrmMLT4A?Jn-=cSg}0=gK9^Z zQSIZ7xR#(Us}|Hf4kfMI@bNP7`41A#Rci8fQoqC2ZpnPPXyoR4I8)Z-C5f{~xeWRb zJ(*xqk9u}UpDMm|dAeU-t>gG}Ad?G$UKil2p|*f@rbm#sqi9Un45*DA86NHxgeK1Z zOAzvtg@Lr!E?idf_)S^My^rA`YVY?%L1}@dMw7{@cRJhpF`hg|1rOEIUxWmvsz`;( z4IY-+2K^%~2FM@wm9#3@JPn`krM)X6mcN}w=SPM`cu_K?^xjo*{bRyz(Tr1uQ8o*x zZ6Qji#-T6r8Scf<1|*qcNb5m4wpWR~270Naka+3;%vv}92amhu?g0UJ=0 zJwPSS#^|e5?F2h2)FPs5Ct7eCLyL$}PJ{s;In&?g_KT-`dKN{TkO8nANImXw3_ zVn5e68>>f9v@VB$><_peK2lDGEhN4qE)ndTb3werHV9uaUOkOH{XKRaoHP2!Vle_lCZY2xW8C2Pypw zLaz*_mMC$Wtw%R3anTyUG(CFukF%H|f9Sm2^oAVq?sdD6p{g6R0VdA}8h_{3({SS^ zbrYn}J7|rHY~g?+y~N8_JPGl{JMIro!c%A{-~HyC7i!Yutw&Tpl%JaWXZm6J1J38B zcLUA8CAp{Q$%bJOQnU2c*z_XFL*6&JnB+B_aqpo?z6FJ3R`qC4Qp#{!R^J8GJyzL_SnlaZEICZu_< z;P>2=RW?~73E?bs5vnfT=1=UXE?&?g-E>nNr^|hj8)dypaZ7 z*iZyd6<$jT_o2<|^ZWS>FUKvA;kW+qP(zOr2=+Ft(d9k-K!LRq7ARA>ZX@h0{LQpc zYbrU@`<^(rm?4PgNJ>AeZfQ!`l-)V(HWl{>k}@U9cxNluZ+u!hsVWzk;%8>ujpS1E zt>tu#SwM~#hoq146!mVKZsC(6_@L6e+$>P>G6OK31r>VML9yvR;sRF3_5-Xq@ z#urMg_@A>>;5_tNy*eLcpB4&7WM$<8wQkuT)Oh^5jtEqAAN@H zIU4(mvtc-+QSXcOJ! zD?#>W@ksn>hoRhz-VjUId!L{CDx9EwHzvqE#^VkF(^+wX3~~dy;z75b*7N+M=h{7_C<%$cR-e2 z+saO+h36l8@%{m?h{I5$rxnp}w*4KgXYZGZj$=ot3>JqDD^+o9Qbkga&r0f)(E9>0mOS( zq*fILn)>-D@?Om?uTa;u3=n}%4w@`+rMGt4I0uUzA8cnPNoSFIIl5+8M^{vDVh(yE z!vzqyjVRimb6mUY=aU0=9=Sd)!c9F$d(qe(2Vr}L?RE(oLiv1ZBY)6>Zu{&j{cK4T zrU_;Ies^LHMtpg$oF;t0_yn#HBEN}r7W~6Q4MnO2AiacyfqHp}SqfFp>s`MmJf-D= z)5eF7g}uBwdFA z=RhEXS7yGVN1xotWCuqlzA67~BOH{XQ*6rmST8RnHWe5vj#1=~9p(<{Y?H#BUdwB; z53s0}kww+n#O8Xo=#evqn%G|VlBm49aTLgOKfvV&2~F3RWdhvzx!dWfMIIypaZhh; z;@_fq?Yiy-%2`4&@;(g=Ot9JXemSpdE*qcy^fR2=3qw@hTlfIj*wjOqH2(V?pq(DtJs<`?%VNaFZ@4* z4hx85JpQ(x+IJZ4oH$AMkJ3aSf9Wvbhe8_MrK^Z>nl+4}ng_ayt!OmAATzGyot>h~ zI@bew2@$t~lBPOSfPjWb^nNl-3maW#I3oSH?EA66kEA#{vdf}mWbp03L>gdOk;?70 z?uy0q*CBDY#i#VSvg~=*q7l+OMfswsPI-cSnm((bDY^$CN7%4)N!ylUjaN9MvoYWA zu|BczjfrjJ3uWQlt9JT$CCSRRl;uJPlW@lbL#px#LrY$3Gm@{7F&u{Ed}nja9PHQ8 zir%qLuHde&G#iLm^6vkTl}aEPP4UKqZlsuAMEcTV4V-JUo(z{@{W#cSfK}2)iWr&u z{h$MECs!n#?qE+2+4CDDTnzM{QyVY?<2Y2l_@PJa3F?TmAy%>k?{1z^_k>+I8&6DpwW^ zF!8#pB^HMmzG}1SpJ1t-d{XTa$_C})FQFl&%{}qw8DY#kaTjrT)&lMuPK%m~pD~6w zHnWj#;(y`53J!%PBWaXj~Zg%8QYf{<2P9}alH6p~PYU?DG?-V;@jmEFCgxeu?S*6E^_HsrrGaGCX z@9d?9w_{NxX4TztyFJd@cM?H|i@GvtunU8QA6wVHRJDab_OCx*JaBEu!L{CSxPy<` z!kAc^f5JvSXr{%M#yr|3eYHp;SGnKwQ8OwLbl5$+J)WGYd!}?ar`ImyNT&&7h@!$P zH8CWk4IV7gMTScvutXORu1|azCNBsc4ILY;9Z_F=Suha)9jYgYj?LD*Z&Ie$)>>8% z+WshgjYkZ7GOqn5APA%k=mC^`Jt&?R8g;2W7JV)B6X`7VhlaYOQYfGfxU;=0t&Lwr ztDx?HhRG032*qodisXeBCHAl(}n23$jLTl-gfbLA1= zZAb%F)X7lqc{ME&YPfqufzK;;1G0G}#HsQdaJkrbjZYHt=0?tAvJeAVUHG)}TOgC# zgF3-Li&)LTpL`5j5brpHE}VLGmJ>8~r|6d*xnrnq!Voxx+JW_C9PNAOd-i6l`MO*K zJ%DfQdQY|n3E9(RwU}UzM$+rdCJDPZG(Cr2lDLrZc@2%~$JYHmjSJ7q|Zt-57 z+2KqDX?O!GPoQQ+BgvWZ*6Gbhq`eBUux)6~k< zIq(z7&kP|L8(h>Csal||w9cZeVBjwKJS}glNsuPYe~-FSP9MgH=&fzsz+~uo-oE&?P1a+{)@p( z?6A;tpdyg?-C>ykFaKw6m2us;e+DJ_|JIzQOYio|s(Rxw;`~SK_oL7LE}Dcy2F?rP z61U=;cg9arRqxG#P#(J6hzhK?*blx7_|FIb3S0$W!t#eVrmANvZr&C1zw+d_tFeQW zvffxvo-015_|sd6$6Q*+SbkDQ>EmBRquA5|Eyp*mlU*p0MSs$(cpB^Zi;{j?&iq$6 zoO|Q5lSF1h{4mQT);JjHMI0P%V&qKV*fL5>jpeVs)?!0nd4iYA$=N=|`iT~GHHGTN z24G)56w(NI7{DSS;2pXwr!d(SYE3Sed&22=va=hg$_TsehK<{;4>1f5z65!88FPKl zPu@RzT`m5#W$5JMhVtaGx4C`Fa1B}dUY`FPgaThk+`h5T->|td!+c!>Lg-(s^<>I*uU1#Ls>vF-5u|DIy;OT z`<>~7rS}h$nCw-!?9uvI=-Pdgyfd(naZ1+@yE^)zF07(FT3>KA6RpE7iJdf69o~kb zaqB#)A8?hiEq~a?|HKcxm#u@O!LirRjHVF{Dze@rc|c{_wr(>H^<+~yf3SQEv>Gxq z`se2~901g+Vwg0)J3e?K$3oLGFjQA)7+tvw%ANH?uZv%M|0PzN!Z;=%Xep6xb%5#R zT$d8I>THlpPY7uIX0Zj&%ZP(>D5T$djNEb*ncb>2wRH$Cb)TB)qa}{YQU5Mb8*GFs zzVfvSPmQ%9D*w%903YPhju>Wa0wL>(<}uxx)>9(88tlu=?&wih5^kpykT*pk#Q*b4 zB6-tlJ|L5?h z0{O$f(wU*Dry*@pWlsCKh`ZTJ5(z2Rha)Ea$7V@71M?eJ=~NHD<_Cgz>9#6r4I^sJ zMg|rstkdXXDMxGS`!ST;j|WQwnXDZDnUhri2j?@py0CiFl2Jo?Q+<9R@Ay*a1+=2p zFDRxPQ0AR$wuPcomVX0TzpkCr8&XlEs81@xvw|5G2J)j0TI1tenir>C3Gz1#%>e3>&{(=s#w7&yHR{U@nzU6-+OA# zsuB|Vd-oo;E4gQr7q7Ez>wp?#14pEs*@L%a8xz$T6koIQBfmkF?Ouo&seEp2&ROc;mP$ZACn1&^s$`1Z)+lGffP0o{@Y?N*?SuAqlP=Pn>CdUJlOgdxiSGgT z*Yy zvH&aq%udupKVw%o{_u%u_4E;{`K^pKV)201iwIum&^G{LqA8orX7#k52#Ni=@ay1# zP}xh)C5h3Ls+ODPtkKH-<23a@EB^m?a7Pqqpclg|_R1yThtVzgjUjZuZG}X$(9Uq& zMyz|0A*&wFli+=-?e=x?e)arN6;tXe?(p#aeICRYg0~K48|T4L+O~g2CyhUEgmREF z1XK^DZs%(GIo&M5t>*02V+uI&Zn4QVGIcDhtcT&Tz5|Ur@y16y6%;Oid-Bl&I&++h VcnS#ivUNX0)+YFVVRJ{v{{eP=dOH9B diff --git a/tests/debug_getRawBlock/get-block-n.io b/tests/debug_getRawBlock/get-block-n.io index dde30967a..1a229292f 100644 --- a/tests/debug_getRawBlock/get-block-n.io +++ b/tests/debug_getRawBlock/get-block-n.io @@ -1,3 +1,3 @@ // gets non-zero block >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf9056cf90261a0f8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01a484651602ae733584016c5dfab95de8cfa74d9c749c9e2fe773bc8e8a325dfa0ef3818352b94fca264dc37feb9a6748e00185ea54291655b716f57ebab28d3afa05f7e046f4b5c311a55d03ffb28ac8c8317bdc33d64b4dd36e6cc80b26982f052b9010000000000000000000000000008000000000000000000000000000000800000000000000400000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000200000000000000000000000000000000800384023f3e2083046a081e80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000084282416a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a0756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67a057cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543f90303b8d801f8d5870c72dd9d5e883e0a84282416a8830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cdc4c8669df128318656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f880101a0f341a34ae4f66c156552aa672d054c685a361240c66ef75c07f65ac69b1e2f7aa07200d4f70fdeb984fee0dbe79a3d729ee28a392f5f58cda722c0212123df95cfb8ff03f8fc870c72dd9d5e883e0b0184282416a8830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c3f446a7c4145b1f0656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a45683020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a03f05d73d107c94d50470342a6c5d133dca225f858d68ea4fd95fa16503c217b7a05e94d20059c6191f17297401df493a5a1e93265a22c306024bd9d87016034e13f8760c84282416a8830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c96fd14b8fdcbd4a9656d69748718e5bb3abd109fa05b328d8b937fcdb5b6f4b7966406b8ed2b931933a1562d14b5fc90bfc679d8019f36f6a5c3791f10762d299f391c1327480f8d51fb69ac98c161ebf466d91db3b8ae02f8ab870c72dd9d5e883e0d0284282416a8830249f09409fc772d0857550724b07b850a4323f39112aaaa843b9aca00b838b917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80c080a0883cbfe8510f86be00f75a5b67e5e589e5db735e52681feffafb2f8448450bf1a07760414c0411c354c69f05489f275dad0777255c2414fb705cf229d5f0c2c29bc0c0"} +<< {"jsonrpc":"2.0","id":1,"result":"0xf9056df90261a0ec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d5b9c8cfd6029085bbf0937793fd2c3b124fd463f7f0829ecad244f6d89f00dfa07055a76668054d49474535d2684e831a94f716c671c494c71b3edd151ce837b2a0f9f4ada813ec7dc11a2f01240993274c838dc6e9c90115a84bdc568485d0030eb9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004001000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000200002000000000000000000000000000800384023f3e20830469f91e80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000842824151fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a0756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67a057cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543f90304b8d801f8d5870c72dd9d5e883e0a8428241520830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028cdc4c8669df128318656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f880180a07a7f245868fa64371563b5e3923fcb3d921305876fa1f36f4781445367d5c75ca011175e17e8a2d7ebb47c50539d89017e13561232f6e85b15c6761318693b9d99b8ff03f8fc870c72dd9d5e883e0b018428241520830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df038c3f446a7c4145b1f0656d6974f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0b52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a45683020000e1a0015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f6801a05031618ccd7e8caa0a9e9dd30311c8d96e0a7a27c8b3ecbe5126c76ac04f5db1a044998503d1b38c4c648327d1fbab12cdeec9819da16e6d2847f087db4a15affcf8770c8428241520830186a0947dcd17433742f4c0ca53122ab541d0ba67fc27df028c96fd14b8fdcbd4a9656d69748718e5bb3abd10a0a0bd3bcd89c42a1f459558b78a08a2f43b8e86b5fb1d4c395501fd7fcd22c09336a00fc9787e18e8c0e6f1bef1f72b9fe3fe1242ebb68570b2556f855b441bf6bdadb8ae02f8ab870c72dd9d5e883e0d028428241520830249f0940c15f14308530b7cdb8460094bbb9cc28b9aaaaa843b9aca00b838b917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80c080a0bc48433782dbe8fe7882ec8db99365ec9caae710dfda47fefd6988dde89cfad4a03c92bb9aeabfa632292437b3b71f2f387c08c7a16ef449bfd550c825cafe8dafc0c0"} diff --git a/tests/debug_getRawBlock/get-genesis.io b/tests/debug_getRawBlock/get-genesis.io index a2024e7c8..4cd6786c7 100644 --- a/tests/debug_getRawBlock/get-genesis.io +++ b/tests/debug_getRawBlock/get-genesis.io @@ -1,3 +1,3 @@ // gets block 0 >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf9026df90267a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09dc4958e19a5fe8e30e0b8e826375d4f89f362fbf272433977730285cf3cb741a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000843b9aca00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c0c0c0"} +<< {"jsonrpc":"2.0","id":1,"result":"0xf9026df90267a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a9b5f4922543acfff8bb11844f2b905ebec27764c42b03b65a66b9c08c908b7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000843b9aca00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c0c0c0"} diff --git a/tests/debug_getRawHeader/get-block-n.io b/tests/debug_getRawHeader/get-block-n.io index 9ab74228c..aa1c266ac 100644 --- a/tests/debug_getRawHeader/get-block-n.io +++ b/tests/debug_getRawHeader/get-block-n.io @@ -1,3 +1,3 @@ // gets non-zero block >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf90261a0f8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01a484651602ae733584016c5dfab95de8cfa74d9c749c9e2fe773bc8e8a325dfa0ef3818352b94fca264dc37feb9a6748e00185ea54291655b716f57ebab28d3afa05f7e046f4b5c311a55d03ffb28ac8c8317bdc33d64b4dd36e6cc80b26982f052b9010000000000000000000000000008000000000000000000000000000000800000000000000400000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000200000000000000000000000000000000800384023f3e2083046a081e80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000084282416a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a0756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67a057cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543"} +<< {"jsonrpc":"2.0","id":1,"result":"0xf90261a0ec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d5b9c8cfd6029085bbf0937793fd2c3b124fd463f7f0829ecad244f6d89f00dfa07055a76668054d49474535d2684e831a94f716c671c494c71b3edd151ce837b2a0f9f4ada813ec7dc11a2f01240993274c838dc6e9c90115a84bdc568485d0030eb9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004001000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000200002000000000000000000000000000800384023f3e20830469f91e80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000842824151fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a0756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67a057cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543"} diff --git a/tests/debug_getRawHeader/get-genesis.io b/tests/debug_getRawHeader/get-genesis.io index 7f7057cb7..93bc555d4 100644 --- a/tests/debug_getRawHeader/get-genesis.io +++ b/tests/debug_getRawHeader/get-genesis.io @@ -1,3 +1,3 @@ // gets block 0 >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf90267a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09dc4958e19a5fe8e30e0b8e826375d4f89f362fbf272433977730285cf3cb741a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000843b9aca00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} +<< {"jsonrpc":"2.0","id":1,"result":"0xf90267a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a9b5f4922543acfff8bb11844f2b905ebec27764c42b03b65a66b9c08c908b7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000843b9aca00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} diff --git a/tests/debug_getRawReceipts/get-block-n.io b/tests/debug_getRawReceipts/get-block-n.io index 7cd2e3e69..dce0c21ff 100644 --- a/tests/debug_getRawReceipts/get-block-n.io +++ b/tests/debug_getRawReceipts/get-block-n.io @@ -1,3 +1,3 @@ // gets receipts non-zero block >> {"jsonrpc":"2.0","id":1,"method":"debug_getRawReceipts","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":["0x01f901850182ca9cb9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a0462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801a00000000000000000000000000000000000000000000000000000000000000001","0x03f901860183019538b9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a0b52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456a00000000000000000000000000000000000000000000000000000000000000002","0xf9018601830257a0b9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a016c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81a00000000000000000000000000000000000000000000000000000000000000003","0x02f901700183046a08b9010000000000000000000000000008000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f866f8649409fc772d0857550724b07b850a4323f39112aaaac0b84c7435ed30a8b4aeb0877cef0c6e8cffe834eb865fb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80"]} +<< {"jsonrpc":"2.0","id":1,"result":["0x01f901850182ca9cb9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a0462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801a00000000000000000000000000000000000000000000000000000000000000001","0x03f901860183019538b9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a0b52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456a00000000000000000000000000000000000000000000000000000000000000002","0xf9018601830257a0b9010000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000f87cf87a947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a000000000000000000000000000000000000000000000000000000000656d6974a016c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81a00000000000000000000000000000000000000000000000000000000000000003","0x02f9017001830469f9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000f866f864940c15f14308530b7cdb8460094bbb9cc28b9aaaaac0b84c7435ed30a8b4aeb0877cef0c6e8cffe834eb865fb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80"]} diff --git a/tests/eth_call/call-callenv-options-eip1559.io b/tests/eth_call/call-callenv-options-eip1559.io index 51cee4dc6..6a595541b 100644 --- a/tests/eth_call/call-callenv-options-eip1559.io +++ b/tests/eth_call/call-callenv-options-eip1559.io @@ -1,5 +1,5 @@ // Performs a call to the callenv contract, which echoes the EVM transaction environment. // This call uses EIP1559 transaction options. // See https://github.com/ethereum/hive/tree/master/cmd/hivechain/contracts/callenv.eas for the output structure. ->> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0xea60","input":"0x333435","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0xb","to":"0x9344b07175800259691961298ca11c824e65032d","value":"0x17"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000c72dd9d5e883e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004426f5d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e46043e63d0e3cdcf2530519f4cfaf35058cb20000000000000000000000000000000000000000000000000000000000000017"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0xea60","input":"0x333435","maxFeePerGas":"0x4426f2c","maxPriorityFeePerGas":"0xb","to":"0x9344b07175800259691961298ca11c824e65032d","value":"0x17"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000c72dd9d5e883e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004426f2b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e46043e63d0e3cdcf2530519f4cfaf35058cb20000000000000000000000000000000000000000000000000000000000000017"} diff --git a/tests/eth_createAccessList/create-al-contract-eip1559.io b/tests/eth_createAccessList/create-al-contract-eip1559.io index d9b9163b1..7f60bdaca 100644 --- a/tests/eth_createAccessList/create-al-contract-eip1559.io +++ b/tests/eth_createAccessList/create-al-contract-eip1559.io @@ -1,4 +1,4 @@ // Creates an access list for a contract invocation that accesses storage. // This invocation uses EIP-1559 fields to specify the gas price. ->> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","input":"0x010203040506","maxFeePerGas":"0x4426f5d","maxPriorityFeePerGas":"0x3","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","input":"0x010203040506","maxFeePerGas":"0x4426f2b","maxPriorityFeePerGas":"0x3","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} << {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"gasUsed":"0xca3c"}} diff --git a/tests/eth_createAccessList/create-al-contract.io b/tests/eth_createAccessList/create-al-contract.io index 0d335bfa1..d9de6ffb5 100644 --- a/tests/eth_createAccessList/create-al-contract.io +++ b/tests/eth_createAccessList/create-al-contract.io @@ -1,3 +1,3 @@ // creates an access list for a contract invocation that accesses storage ->> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x4426f5d","input":"0x010203040506","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x4426f2b","input":"0x010203040506","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} << {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2"]}],"gasUsed":"0xca3c"}} diff --git a/tests/eth_feeHistory/fee-history.io b/tests/eth_feeHistory/fee-history.io index f3d5c5079..decb4af70 100644 --- a/tests/eth_feeHistory/fee-history.io +++ b/tests/eth_feeHistory/fee-history.io @@ -1,3 +1,3 @@ // gets fee history information >> {"jsonrpc":"2.0","id":1,"method":"eth_feeHistory","params":["0x1","0x2",[95,99]]} -<< {"jsonrpc":"2.0","id":1,"result":{"oldestBlock":"0x2","reward":[["0x1","0x1"]],"baseFeePerGas":["0x2dbf1f99","0x282416a7"],"gasUsedRatio":[0.009855751478868038],"baseFeePerBlobGas":["0x1","0x1"],"blobGasUsedRatio":[0]}} +<< {"jsonrpc":"2.0","id":1,"result":{"oldestBlock":"0x2","reward":[["0x1","0x1"]],"baseFeePerGas":["0x2dbf1f99","0x2824151f"],"gasUsedRatio":[0.009853708990006765],"baseFeePerBlobGas":["0x1","0x1"],"blobGasUsedRatio":[0]}} diff --git a/tests/eth_getBalance/get-balance-blockhash.io b/tests/eth_getBalance/get-balance-blockhash.io index 099f4819b..a8b1d18eb 100644 --- a/tests/eth_getBalance/get-balance-blockhash.io +++ b/tests/eth_getBalance/get-balance-blockhash.io @@ -1,3 +1,3 @@ // retrieves the an account's balance at a specific blockhash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0xef7f2a4871b329673b69d84abfb8c4e1e94fc6fc63daee9265d4c7f9672c6005"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0xfd8909472f6de478e36bd69321ed44e023231908c816f7f3b17b3686e9af935a"]} << {"jsonrpc":"2.0","id":1,"result":"0x1b"} diff --git a/tests/eth_getBlockByHash/get-block-by-hash.io b/tests/eth_getBlockByHash/get-block-by-hash.io index 8470e47e4..379800834 100644 --- a/tests/eth_getBlockByHash/get-block-by-hash.io +++ b/tests/eth_getBlockByHash/get-block-by-hash.io @@ -1,3 +1,3 @@ // gets block 1 ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x342770c0","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x4ee5f","hash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1","parentBeaconBlockRoot":"0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd","parentHash":"0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464","receiptsRoot":"0x061f3f6edb0780e654014c901221182d4818a7bcdc83d2bee4346808ba112d6d","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x534","stateRoot":"0xc218c6a7fe6afe137592c08035628468319a71ec3ec938286f750520468146fd","timestamp":"0xa","transactions":[{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x14f7e","gasPrice":"0x342770c1","hash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","input":"0x600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3","nonce":"0x1","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x705f2b3623a84545c92eaf588f84817657395bc43f6e1167de9613090c3743d","s":"0x27fa18a9c90e62aefe3110e08183897252de0295edaaee489966d0b65d006479"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x17d96","gasPrice":"0x342770c1","hash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","input":"0x600d380380600d6000396000f360003515156036577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd","nonce":"0x2","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x583a345eede64b0f8b15732be69bbb432766b326ef4c4e735e2a25ce569c2d9a","s":"0x592f759ae2cb9a5bd3e489c5a1efd46d73ebfdf16c13dc195ae1b43b6f22e34"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x1bc1c","gasPrice":"0x342770c1","hash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","input":"0x43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f3","nonce":"0x3","to":null,"transactionIndex":"0x3","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xcdf976a093022e24e498e02cd505a09307321d11f6f3f8b9e5456153b912631a","s":"0x3aecc24af018c1188130f7032aacca3f5cde8958937d2bcdf2b037e917cd70a5"}],"transactionsRoot":"0xfff3461a7e0f5d44052dc052f6dfbff287d500e8db3460e22e331d80a2a31353","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54",true]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x342770c0","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x4ee5f","hash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1","parentBeaconBlockRoot":"0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd","parentHash":"0x6549118a1de2c28b204c671688e0aa4f6b522e72bf3a4a3f76cc8def0a7ecc8f","receiptsRoot":"0x061f3f6edb0780e654014c901221182d4818a7bcdc83d2bee4346808ba112d6d","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x534","stateRoot":"0x3f8db435adcc76f01bd64f20ad2a336bea35e09b2e26e89431fe2cd9c5874c86","timestamp":"0xa","transactions":[{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x14f7e","gasPrice":"0x342770c1","hash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","input":"0x600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3","nonce":"0x1","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x705f2b3623a84545c92eaf588f84817657395bc43f6e1167de9613090c3743d","s":"0x27fa18a9c90e62aefe3110e08183897252de0295edaaee489966d0b65d006479"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x17d96","gasPrice":"0x342770c1","hash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","input":"0x600d380380600d6000396000f360003515156036577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd","nonce":"0x2","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x583a345eede64b0f8b15732be69bbb432766b326ef4c4e735e2a25ce569c2d9a","s":"0x592f759ae2cb9a5bd3e489c5a1efd46d73ebfdf16c13dc195ae1b43b6f22e34"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x1bc1c","gasPrice":"0x342770c1","hash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","input":"0x43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f3","nonce":"0x3","to":null,"transactionIndex":"0x3","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xcdf976a093022e24e498e02cd505a09307321d11f6f3f8b9e5456153b912631a","s":"0x3aecc24af018c1188130f7032aacca3f5cde8958937d2bcdf2b037e917cd70a5"}],"transactionsRoot":"0xfff3461a7e0f5d44052dc052f6dfbff287d500e8db3460e22e331d80a2a31353","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-block-eip7685-requests.io b/tests/eth_getBlockByNumber/get-block-eip7685-requests.io index 0184aad55..d214d26d9 100644 --- a/tests/eth_getBlockByNumber/get-block-eip7685-requests.io +++ b/tests/eth_getBlockByNumber/get-block-eip7685-requests.io @@ -1,3 +1,3 @@ // retrieves a block containing non-empty EIP-7685 requests >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x3",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x282416a7","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x46a08","hash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logsBloom":"0x00000000000000000000000008000000000000000000000000000000800000000000000400000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000008000000000000000000000000000000000000200000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3","parentBeaconBlockRoot":"0x756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67","parentHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","receiptsRoot":"0x5f7e046f4b5c311a55d03ffb28ac8c8317bdc33d64b4dd36e6cc80b26982f052","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x56f","stateRoot":"0x1a484651602ae733584016c5dfab95de8cfa74d9c749c9e2fe773bc8e8a325df","timestamp":"0x1e","transactions":[{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","input":"0xdc4c8669df128318656d6974","nonce":"0xa","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xf341a34ae4f66c156552aa672d054c685a361240c66ef75c07f65ac69b1e2f7a","s":"0x7200d4f70fdeb984fee0dbe79a3d729ee28a392f5f58cda722c0212123df95cf","yParity":"0x1"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","input":"0x3f446a7c4145b1f0656d6974","nonce":"0xb","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0x3f05d73d107c94d50470342a6c5d133dca225f858d68ea4fd95fa16503c217b7","s":"0x5e94d20059c6191f17297401df493a5a1e93265a22c306024bd9d87016034e13","yParity":"0x1"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","input":"0x96fd14b8fdcbd4a9656d6974","nonce":"0xc","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x2","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x5b328d8b937fcdb5b6f4b7966406b8ed2b931933a1562d14b5fc90bfc679d801","s":"0x36f6a5c3791f10762d299f391c1327480f8d51fb69ac98c161ebf466d91db3"},{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x2","hash":"0x834877cf885973710dbea20f5a73ac9c1fa932e9dc0d74f090c9fca2fe281a18","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0xd","to":"0x09fc772d0857550724b07b850a4323f39112aaaa","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x883cbfe8510f86be00f75a5b67e5e589e5db735e52681feffafb2f8448450bf1","s":"0x7760414c0411c354c69f05489f275dad0777255c2414fb705cf229d5f0c2c29b","yParity":"0x0"}],"transactionsRoot":"0xef3818352b94fca264dc37feb9a6748e00185ea54291655b716f57ebab28d3af","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x2824151f","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x469f9","hash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000004001000000002000000000000000000000000000000000000000000000000000000010000000000000000000002000000000000000000000000000000000400000000000000000000000000000009000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000200002000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3","parentBeaconBlockRoot":"0x756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67","parentHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","receiptsRoot":"0xf9f4ada813ec7dc11a2f01240993274c838dc6e9c90115a84bdc568485d0030e","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x570","stateRoot":"0xd5b9c8cfd6029085bbf0937793fd2c3b124fd463f7f0829ecad244f6d89f00df","timestamp":"0x1e","transactions":[{"blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x28241520","hash":"0x2b027b6ede385a5dd48c9463fb91fd0d099c8919ed3bc83b3565293579f30e88","input":"0xdc4c8669df128318656d6974","nonce":"0xa","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x7a7f245868fa64371563b5e3923fcb3d921305876fa1f36f4781445367d5c75c","s":"0x11175e17e8a2d7ebb47c50539d89017e13561232f6e85b15c6761318693b9d99","yParity":"0x0"},{"blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x28241520","maxFeePerGas":"0x28241520","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x77ec9478917c59826176c8ab8380e6e5daa996148796b7bb21340dcd4db0b65e","input":"0x3f446a7c4145b1f0656d6974","nonce":"0xb","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0x5031618ccd7e8caa0a9e9dd30311c8d96e0a7a27c8b3ecbe5126c76ac04f5db1","s":"0x44998503d1b38c4c648327d1fbab12cdeec9819da16e6d2847f087db4a15affc","yParity":"0x1"},{"blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x28241520","hash":"0x03b5c2bfdf18ad7ca821efaa6101e1be9eec8c649c60294d512d2f1ad37f1a04","input":"0x96fd14b8fdcbd4a9656d6974","nonce":"0xc","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x2","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xbd3bcd89c42a1f459558b78a08a2f43b8e86b5fb1d4c395501fd7fcd22c09336","s":"0xfc9787e18e8c0e6f1bef1f72b9fe3fe1242ebb68570b2556f855b441bf6bdad"},{"blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x28241520","maxFeePerGas":"0x28241520","maxPriorityFeePerGas":"0x2","hash":"0xd4080926eeabd0a5f9f489e98f60e7521b12ddebc18ee8ae79369dee2c38fa58","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0xd","to":"0x0c15f14308530b7cdb8460094bbb9cc28b9aaaaa","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xbc48433782dbe8fe7882ec8db99365ec9caae710dfda47fefd6988dde89cfad4","s":"0x3c92bb9aeabfa632292437b3b71f2f387c08c7a16ef449bfd550c825cafe8daf","yParity":"0x0"}],"transactionsRoot":"0x7055a76668054d49474535d2684e831a94f716c671c494c71b3edd151ce837b2","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-block-n.io b/tests/eth_getBlockByNumber/get-block-n.io index 8051b9c78..b0e22f186 100644 --- a/tests/eth_getBlockByNumber/get-block-n.io +++ b/tests/eth_getBlockByNumber/get-block-n.io @@ -1,3 +1,3 @@ // gets block 2 >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x2",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x2dbf1f99","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x5ab61","hash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logsBloom":"0x00001000000000000000000010000000000010000000000000004000800000800000000040000200000000000000000000000a00000000004000000081000000000000000000000000004000000000000204000000000000001000000000022000000000002000200000000000004000400000000000880000000000000000000004000000000000000000000000000000000000000000000000000000000000000000020400009000000000000000000000000108010000000000000010000000002000010000100020000000080000000000000000000000000000000000000000000000000000000000000000000002008000000000010000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2","parentBeaconBlockRoot":"0x2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e","parentHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","receiptsRoot":"0x1c584df19d78d56a628e1bf6c8e6b7a721d02c4c2a3d163b3452407789254bf9","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x5f3","stateRoot":"0x1177c7bb3ede8e56bfc09a8613ea3bb36da325fbfa491e834a75d81bbd3db91e","timestamp":"0x14","transactions":[{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11f58","gasPrice":"0x2dbf1f9a","hash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","input":"0x4360005260006020525b604060002060208051600101905260206020a15a61271010600957","nonce":"0x4","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xf69b5bccffed490be6ab9b289262ac6147bb6a23f3b061e7356d5d9bc77ceefa","s":"0x101b956c4a93ffbf89484e68ca23763d045293b2df67c75c2a1c4349b3df0880"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x2088a","gasPrice":"0x2dbf1f9a","hash":"0x9c59ab4e3d9e2e06c778e270db5e8dab71586ae519b4bbfd0e4a88d5e7213292","input":"0x435b8080556001015a6161a810600157","nonce":"0x5","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x5934bc3388ea75269767783e0ee816deba22e297b596df122299ac92ea674c0f","s":"0x633b50dc84f67caf787dc5d4d96ea9a31eb98db10f92fb90a71865bb7d06f337"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11cfe","gasPrice":"0x2dbf1f9a","hash":"0xc96e16ba815c81fd8d14650c7c21c574bd88584801a9e17894b82412a20c56f6","input":"0x600d380380600d6000396000f33615600a575f355f55005b305f525f5460205260405ff3","nonce":"0x6","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x3688300a9fcf3ef90797042f765059cdd1f195493b16d04bed5b8baa85dca39c","s":"0x53d14f3767744502a1960a34d896488501765d426dfa0a8e11ba97cccefca6b8"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","input":"0x","nonce":"0x7","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x6cad054757f422066e2e474e5e81ed495bdcc979","nonce":"0x0","v":"0x1","r":"0x1a63d81054d08d92118b33115b5a515817e50a3828fd96939f979ac93694751e","s":"0x306a64ef2eb532805f1f5079af7591704b1623e82e56bb0c6b18342b48958b06"}],"v":"0x0","r":"0xfc169339eea66ef47f1cfea0fd18797b91853d0977c3d360bafae7e3c0f7ca3d","s":"0x445cf1b2b73d6457b9324c4351024bb406b0111e7ea038713dac4968a625e43","yParity":"0x0"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x2dbf1f9a","hash":"0xea09deb1fec8d86d396ed7912b82d9b619c271df482aee77ea55f8217c06fbc3","input":"0x696e766f6b6564","nonce":"0x8","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x4","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x9ffe039795b25e0fc3e54cb0c9405ebab7320501349392c8bfae5b87bb5950ba","s":"0x4296ef413b2db4dfc37be62b76931866139ba090516d110d5ae0322a6b2e02f5"},{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","input":"0xcd4a1f0815150453656d6974","nonce":"0x9","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x5","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xdb642586ab80271c8da5852da58846f2f3dcf42547a671e86e25cb04d25fa59a","s":"0x62d1e2f9284ccf46e66c54c8e0598e983a56a3f401975053f7c244c4d540b6d9","yParity":"0x0"}],"transactionsRoot":"0x0c741433f0cbaf39a8d1db8a621e914cf6f73a5c763a9df3e6467a668f282c50","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x2dbf1f99","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x5ab14","hash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logsBloom":"0x00001000000000000000000010000000000010000000000000004000800000800000000040000200000000000000000000000a00000000004000000081000000000000000000000000004000000000000204000000000000001000000000022000000000002000200000000000004000400000000000880000000000000000000004000000000000000000000000000000000000000000000000000000000000000000020400009000000000000000000000000108010000000000000010000000002000010000100020000000080000000000000000000000000000000000000000000000000000000000000000000002008000000000010000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2","parentBeaconBlockRoot":"0x2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e","parentHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","receiptsRoot":"0x5f7edef8292ef286bb85e3b4b016f1717dd75fa6434e6b2aad33faa4713ca6e9","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x5f2","stateRoot":"0xc3309a673e10c9b052e10153fdc497214099622db489c742190db9aa90c3d5d6","timestamp":"0x14","transactions":[{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11f58","gasPrice":"0x2dbf1f9a","hash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","input":"0x4360005260006020525b604060002060208051600101905260206020a15a61271010600957","nonce":"0x4","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xf69b5bccffed490be6ab9b289262ac6147bb6a23f3b061e7356d5d9bc77ceefa","s":"0x101b956c4a93ffbf89484e68ca23763d045293b2df67c75c2a1c4349b3df0880"},{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x2088a","gasPrice":"0x2dbf1f9a","hash":"0x9c59ab4e3d9e2e06c778e270db5e8dab71586ae519b4bbfd0e4a88d5e7213292","input":"0x435b8080556001015a6161a810600157","nonce":"0x5","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x5934bc3388ea75269767783e0ee816deba22e297b596df122299ac92ea674c0f","s":"0x633b50dc84f67caf787dc5d4d96ea9a31eb98db10f92fb90a71865bb7d06f337"},{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x2dbf1f9a","hash":"0x4de0d7c7c5146a1d213247952c7dcc0e1fd1a960090e34bf28cda9f491be7de7","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x6","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x19263b22bed61a96c9032234a1d13e9fda40224dffb5575d7113ad6b6c212461","s":"0x28b5dfd42ef936ee5827a05f19cf9679b66aadb18061169a107da297fed3badf"},{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","input":"0x","nonce":"0x7","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x6cad054757f422066e2e474e5e81ed495bdcc979","nonce":"0x0","yParity":"0x1","r":"0x1a63d81054d08d92118b33115b5a515817e50a3828fd96939f979ac93694751e","s":"0x306a64ef2eb532805f1f5079af7591704b1623e82e56bb0c6b18342b48958b06"}],"v":"0x0","r":"0xfc169339eea66ef47f1cfea0fd18797b91853d0977c3d360bafae7e3c0f7ca3d","s":"0x445cf1b2b73d6457b9324c4351024bb406b0111e7ea038713dac4968a625e43","yParity":"0x0"},{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x2dbf1f9a","hash":"0xea09deb1fec8d86d396ed7912b82d9b619c271df482aee77ea55f8217c06fbc3","input":"0x696e766f6b6564","nonce":"0x8","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x4","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x9ffe039795b25e0fc3e54cb0c9405ebab7320501349392c8bfae5b87bb5950ba","s":"0x4296ef413b2db4dfc37be62b76931866139ba090516d110d5ae0322a6b2e02f5"},{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","input":"0xcd4a1f0815150453656d6974","nonce":"0x9","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x5","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xdb642586ab80271c8da5852da58846f2f3dcf42547a671e86e25cb04d25fa59a","s":"0x62d1e2f9284ccf46e66c54c8e0598e983a56a3f401975053f7c244c4d540b6d9","yParity":"0x0"}],"transactionsRoot":"0x3a5d8a77d7d2ae28b1e1c5cbede4140c03683d9819ac892a9a4d4424ebae3bbb","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-finalized.io b/tests/eth_getBlockByNumber/get-finalized.io index e993b5f1f..00509a9c9 100644 --- a/tests/eth_getBlockByNumber/get-finalized.io +++ b/tests/eth_getBlockByNumber/get-finalized.io @@ -1,3 +1,3 @@ // gets block finalized >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["finalized",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f2b","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x49a625c0b9f9af09a38afbd2060bfc2f2b3aadfabe07b7bdef5f12f976bf6125","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4c9","stateRoot":"0xd099f07738757adce024663560051abcdc9dbd88898be4a0f8dd657acbdc6a5f","timestamp":"0xc8","transactions":[{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f2c","maxFeePerGas":"0x4426f2c","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xc8ec61d6406272bcfb78eff3144c78bd0c3e01a8c768f9372daa9009d985b405","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0x6f6b6702501bb7057ee089bab9db3a0b1263038b710c4e24b830c5a4301a4f13","s":"0x4bd3f5760b5bc55557b925b8c826ac87908d7f033191d322d934d5dda15d6e58","yParity":"0x0"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f2c","hash":"0x05cbab94521c939eea4addcd4701ac90d80d532451f2de90e64ea9a90ed9cf34","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xd5f990e30221242a0a08347a697a6645cf9167f80b4826943d01e5c61533948a","s":"0x9427d0bf15f14e41463e3d15fadbd2fde9bb57d8aae816f7b8681607d78df6"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f2c","maxFeePerGas":"0x4426f2c","maxPriorityFeePerGas":"0x1","hash":"0x95e395eead6ad1b1491ce5e3be473c9a91c8dee68901046d89ce1830c8743560","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x3473618eea298f71398cf7843636a3235d8d57fb53fb7eaab536e91c1b1742b4","s":"0x36e3f786c001ac910d7cf7b3c1bb5df6bdaa34c35025749d379c283178fea254","yParity":"0x1"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f2c","hash":"0x1db344636ee1281c26b9ccef2a9636b5bed070c6b1b794a5e8854de6b0856ac2","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x2d21ed3cafa3e4fc9b84edfbc8ab98a693f0c498ca90f20fbb9ebce07ac08b71","s":"0x346da39f6b72e36b6758055d5700d0ca2223b14e799cb8e7899e6d3769ba8b98","yParity":"0x1"}],"transactionsRoot":"0xaef5ff32adb53bc5cc0dac8d00b552e0b4166f0ed2eb54dbe532012afb7d4d43","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-genesis.io b/tests/eth_getBlockByNumber/get-genesis.io index 5743cef36..23d3a6a77 100644 --- a/tests/eth_getBlockByNumber/get-genesis.io +++ b/tests/eth_getBlockByNumber/get-genesis.io @@ -1,3 +1,3 @@ // gets block 0 >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","difficulty":"0x20000","excessBlobGas":"0x0","extraData":"0x68697665636861696e","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x270","stateRoot":"0x9dc4958e19a5fe8e30e0b8e826375d4f89f362fbf272433977730285cf3cb741","timestamp":"0x0","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","difficulty":"0x20000","excessBlobGas":"0x0","extraData":"0x68697665636861696e","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0x6549118a1de2c28b204c671688e0aa4f6b522e72bf3a4a3f76cc8def0a7ecc8f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x270","stateRoot":"0xa9b5f4922543acfff8bb11844f2b905ebec27764c42b03b65a66b9c08c908b7e","timestamp":"0x0","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-latest.io b/tests/eth_getBlockByNumber/get-latest.io index a4b2f117f..a3032ac28 100644 --- a/tests/eth_getBlockByNumber/get-latest.io +++ b/tests/eth_getBlockByNumber/get-latest.io @@ -1,3 +1,3 @@ // gets block latest >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["latest",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f2b","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x49a625c0b9f9af09a38afbd2060bfc2f2b3aadfabe07b7bdef5f12f976bf6125","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4c9","stateRoot":"0xd099f07738757adce024663560051abcdc9dbd88898be4a0f8dd657acbdc6a5f","timestamp":"0xc8","transactions":[{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f2c","maxFeePerGas":"0x4426f2c","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xc8ec61d6406272bcfb78eff3144c78bd0c3e01a8c768f9372daa9009d985b405","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0x6f6b6702501bb7057ee089bab9db3a0b1263038b710c4e24b830c5a4301a4f13","s":"0x4bd3f5760b5bc55557b925b8c826ac87908d7f033191d322d934d5dda15d6e58","yParity":"0x0"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f2c","hash":"0x05cbab94521c939eea4addcd4701ac90d80d532451f2de90e64ea9a90ed9cf34","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xd5f990e30221242a0a08347a697a6645cf9167f80b4826943d01e5c61533948a","s":"0x9427d0bf15f14e41463e3d15fadbd2fde9bb57d8aae816f7b8681607d78df6"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f2c","maxFeePerGas":"0x4426f2c","maxPriorityFeePerGas":"0x1","hash":"0x95e395eead6ad1b1491ce5e3be473c9a91c8dee68901046d89ce1830c8743560","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x3473618eea298f71398cf7843636a3235d8d57fb53fb7eaab536e91c1b1742b4","s":"0x36e3f786c001ac910d7cf7b3c1bb5df6bdaa34c35025749d379c283178fea254","yParity":"0x1"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f2c","hash":"0x1db344636ee1281c26b9ccef2a9636b5bed070c6b1b794a5e8854de6b0856ac2","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x2d21ed3cafa3e4fc9b84edfbc8ab98a693f0c498ca90f20fbb9ebce07ac08b71","s":"0x346da39f6b72e36b6758055d5700d0ca2223b14e799cb8e7899e6d3769ba8b98","yParity":"0x1"}],"transactionsRoot":"0xaef5ff32adb53bc5cc0dac8d00b552e0b4166f0ed2eb54dbe532012afb7d4d43","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockByNumber/get-safe.io b/tests/eth_getBlockByNumber/get-safe.io index 23508814a..364cacc58 100644 --- a/tests/eth_getBlockByNumber/get-safe.io +++ b/tests/eth_getBlockByNumber/get-safe.io @@ -1,3 +1,3 @@ // gets block safe >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["safe",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f5d","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x5a0a138de5ea6f00d6d8bb652a3d66a4adef6f44ceb1394f5c3fd2350e6b50da","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4ca","stateRoot":"0x42ab203ee8a47d8baa7bac7178486747393952f07887bf436b9814a4e725ec4f","timestamp":"0xc8","transactions":[{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0xb3ecfcecf2bfbf57c2129bd7dd90ae8d0188f51078937de75141e7cf232de5d1","s":"0x4dd67185c36813d4e03f06d68f557a8f07646ff14282c0bf3936af6dde2e93db","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f5e","hash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x9f9359f74a7add08ab65ed7082bd6d7032b2ff4507cf5b861a6e0f49a164c7c9","s":"0x6004559d997c5bdf73237fdfc72c02c0117633ada8c3719a747a9589be61a3f"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","maxFeePerGas":"0x4426f5e","maxPriorityFeePerGas":"0x1","hash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x5351822237ac6874ed552603cc0472ec418b597ac17c0ab907787f79e56c67d5","s":"0x7d17ecbfe738c84a9e7a465818b02b7c7cf1f12c84e20db46459e8fb77021abe","yParity":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f5e","hash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x4a7a18bf2abcf5d7bb392b48676ec55893662deb253fb921c0dce1e77b0b24b6","s":"0x56c10bd3cf6d4141feff6d2e1a934fda29de0b418427a8e7725424ba49f1a1bb","yParity":"0x1"}],"transactionsRoot":"0x4bd2c9f4122998ca263eb98b4a1e42ae242ff8e4024562a5345546ddbdb84f7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x4426f2b","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x23114","hash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x14","parentBeaconBlockRoot":"0x3cc9f65fc1f46927eb46fbf6d14bc94af078fe8ff982a984bdd117152cd1549f","parentHash":"0x49a625c0b9f9af09a38afbd2060bfc2f2b3aadfabe07b7bdef5f12f976bf6125","receiptsRoot":"0x352a1ceb0040f363d3be40a62c347548c4737a2264a8dc42295d014d29c7c7a2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4c9","stateRoot":"0xd099f07738757adce024663560051abcdc9dbd88898be4a0f8dd657acbdc6a5f","timestamp":"0xc8","transactions":[{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f2c","maxFeePerGas":"0x4426f2c","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0xc8ec61d6406272bcfb78eff3144c78bd0c3e01a8c768f9372daa9009d985b405","input":"0x7346f7df2f4852bf656d6974","nonce":"0x48","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x0","r":"0x6f6b6702501bb7057ee089bab9db3a0b1263038b710c4e24b830c5a4301a4f13","s":"0x4bd3f5760b5bc55557b925b8c826ac87908d7f033191d322d934d5dda15d6e58","yParity":"0x0"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x4426f2c","hash":"0x05cbab94521c939eea4addcd4701ac90d80d532451f2de90e64ea9a90ed9cf34","input":"0x4520339faf61a8c6656d6974","nonce":"0x49","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x2","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xd5f990e30221242a0a08347a697a6645cf9167f80b4826943d01e5c61533948a","s":"0x9427d0bf15f14e41463e3d15fadbd2fde9bb57d8aae816f7b8681607d78df6"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f2c","maxFeePerGas":"0x4426f2c","maxPriorityFeePerGas":"0x1","hash":"0x95e395eead6ad1b1491ce5e3be473c9a91c8dee68901046d89ce1830c8743560","input":"0x","nonce":"0x4a","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionIndex":"0x2","value":"0x1","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x3473618eea298f71398cf7843636a3235d8d57fb53fb7eaab536e91c1b1742b4","s":"0x36e3f786c001ac910d7cf7b3c1bb5df6bdaa34c35025749d379c283178fea254","yParity":"0x1"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x4426f2c","hash":"0x1db344636ee1281c26b9ccef2a9636b5bed070c6b1b794a5e8854de6b0856ac2","input":"0x","nonce":"0x4b","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionIndex":"0x3","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x2d21ed3cafa3e4fc9b84edfbc8ab98a693f0c498ca90f20fbb9ebce07ac08b71","s":"0x346da39f6b72e36b6758055d5700d0ca2223b14e799cb8e7899e6d3769ba8b98","yParity":"0x1"}],"transactionsRoot":"0xaef5ff32adb53bc5cc0dac8d00b552e0b4166f0ed2eb54dbe532012afb7d4d43","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io b/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io index ebfecdbc5..abe12b3f3 100644 --- a/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io +++ b/tests/eth_getBlockReceipts/get-block-receipts-by-hash.io @@ -1,3 +1,3 @@ // gets receipts for normal block hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x20d3e","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x115c7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x35129","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x143eb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x4ee5f","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x19d36","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","transactionIndex":"0x3","type":"0x0"}]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x20d3e","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x115c7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x35129","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x143eb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x4ee5f","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x19d36","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","transactionIndex":"0x3","type":"0x0"}]} diff --git a/tests/eth_getBlockReceipts/get-block-receipts-latest.io b/tests/eth_getBlockReceipts/get-block-receipts-latest.io index ff6bf0ae4..ceb86f011 100644 --- a/tests/eth_getBlockReceipts/get-block-receipts-latest.io +++ b/tests/eth_getBlockReceipts/get-block-receipts-latest.io @@ -1,3 +1,3 @@ // gets receipts for block latest >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x4426f5e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"],"data":"0x000000000000000000000000000000000000000000000000000000000000001a","blockNumber":"0x14","transactionHash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","transactionIndex":"0x0","blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xe1acd16bccdfc280a1022ab1e2baccf663a5e51770d3a2b9acb91176f2446445","transactionIndex":"0x0","type":"0x3"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x18d04","effectiveGasPrice":"0x4426f5e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xc268","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x5a4c04b22b95f8645e99d4092111005b4d94518f8a4b70c933dff5500b085a5c"],"data":"0x000000000000000000000000000000000000000000000000000000000000001b","blockNumber":"0x14","transactionHash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","transactionIndex":"0x1","blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","logIndex":"0x1","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x7d4006cdcb52ab5cd11e68aa3c3f0b9356b399d9f27503b3bf8db01da345f0e6","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x1df0c","effectiveGasPrice":"0x4426f5e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionHash":"0x07f663926bd370f5c558d5c550ea07b66933038e8f034d1106aff535e5c392e0","transactionIndex":"0x2","type":"0x2"},{"blockHash":"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x23114","effectiveGasPrice":"0x4426f5e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionHash":"0xe3764461aad4083151dbd686e8d10a5b6ba8589a19a7d1e7bfc67d64ae36ff57","transactionIndex":"0x3","type":"0x1"}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x4426f2c","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcb55d89f2ee070d017b426876d6072d91c2a7311ade9a1bed2f8200127ec380e"],"data":"0x000000000000000000000000000000000000000000000000000000000000001a","blockNumber":"0x14","transactionHash":"0xc8ec61d6406272bcfb78eff3144c78bd0c3e01a8c768f9372daa9009d985b405","transactionIndex":"0x0","blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xc8ec61d6406272bcfb78eff3144c78bd0c3e01a8c768f9372daa9009d985b405","transactionIndex":"0x0","type":"0x3"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x18d04","effectiveGasPrice":"0x4426f2c","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xc268","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x5a4c04b22b95f8645e99d4092111005b4d94518f8a4b70c933dff5500b085a5c"],"data":"0x000000000000000000000000000000000000000000000000000000000000001b","blockNumber":"0x14","transactionHash":"0x05cbab94521c939eea4addcd4701ac90d80d532451f2de90e64ea9a90ed9cf34","transactionIndex":"0x1","blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","logIndex":"0x1","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000100800000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x05cbab94521c939eea4addcd4701ac90d80d532451f2de90e64ea9a90ed9cf34","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x1df0c","effectiveGasPrice":"0x4426f2c","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df","transactionHash":"0x95e395eead6ad1b1491ce5e3be473c9a91c8dee68901046d89ce1830c8743560","transactionIndex":"0x2","type":"0x2"},{"blockHash":"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f","blockNumber":"0x14","contractAddress":null,"cumulativeGasUsed":"0x23114","effectiveGasPrice":"0x4426f2c","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x1f5bde34b4afc686f136c7a3cb6ec376f7357759","transactionHash":"0x1db344636ee1281c26b9ccef2a9636b5bed070c6b1b794a5e8854de6b0856ac2","transactionIndex":"0x3","type":"0x1"}]} diff --git a/tests/eth_getBlockReceipts/get-block-receipts-n.io b/tests/eth_getBlockReceipts/get-block-receipts-n.io index 0db68aef6..20988e273 100644 --- a/tests/eth_getBlockReceipts/get-block-receipts-n.io +++ b/tests/eth_getBlockReceipts/get-block-receipts-n.io @@ -1,3 +1,3 @@ // gets receipts non-zero block >> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x1"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x20d3e","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x115c7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x35129","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x143eb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x4ee5f","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x19d36","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","transactionIndex":"0x3","type":"0x0"}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x20d3e","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x115c7","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x1732167826154d3d414236a60c6e22cf99e3fc2542752e164b595473117612f9","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x35129","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x143eb","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x7a6572aeb5f2825d5e243c7b1be4173abbe711d8fa0f692b1ee8ce859922cdb9","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x4ee5f","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x19d36","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x97cb777e677baaddaf9d5c1c2f2d8efe8db65f7cc29a8baf78a427f92504bc47","transactionIndex":"0x3","type":"0x0"}]} diff --git a/tests/eth_getBlockTransactionCountByHash/get-block-n.io b/tests/eth_getBlockTransactionCountByHash/get-block-n.io index e8a73ab98..b493280d1 100644 --- a/tests/eth_getBlockTransactionCountByHash/get-block-n.io +++ b/tests/eth_getBlockTransactionCountByHash/get-block-n.io @@ -1,3 +1,3 @@ // gets tx count in a non-empty block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54"]} << {"jsonrpc":"2.0","id":1,"result":"0x4"} diff --git a/tests/eth_getBlockTransactionCountByHash/get-genesis.io b/tests/eth_getBlockTransactionCountByHash/get-genesis.io index fb3fabf29..f5dac1279 100644 --- a/tests/eth_getBlockTransactionCountByHash/get-genesis.io +++ b/tests/eth_getBlockTransactionCountByHash/get-genesis.io @@ -1,3 +1,3 @@ // gets tx count in block 0 ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x03d2cd8afa6f1295f49e8000f2c9aa87fc97bf9fec8ca89e502630bcf5873464"]} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x6549118a1de2c28b204c671688e0aa4f6b522e72bf3a4a3f76cc8def0a7ecc8f"]} << {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/eth_getLogs/contract-addr.io b/tests/eth_getLogs/contract-addr.io index e60c0c23a..2a7a608c9 100644 --- a/tests/eth_getLogs/contract-addr.io +++ b/tests/eth_getLogs/contract-addr.io @@ -1,3 +1,3 @@ // queries for logs from a specific contract across a range of blocks >> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"],"fromBlock":"0x1","toBlock":"0x4","topics":null}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","transactionIndex":"0x0","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x0","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","transactionIndex":"0x1","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x1","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","transactionIndex":"0x2","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x2","removed":false}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0x2b027b6ede385a5dd48c9463fb91fd0d099c8919ed3bc83b3565293579f30e88","transactionIndex":"0x0","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x0","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x77ec9478917c59826176c8ab8380e6e5daa996148796b7bb21340dcd4db0b65e","transactionIndex":"0x1","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x1","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0x03b5c2bfdf18ad7ca821efaa6101e1be9eec8c649c60294d512d2f1ad37f1a04","transactionIndex":"0x2","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x2","removed":false}]} diff --git a/tests/eth_getLogs/no-topics.io b/tests/eth_getLogs/no-topics.io index 9f5a7f45d..363a6dfbd 100644 --- a/tests/eth_getLogs/no-topics.io +++ b/tests/eth_getLogs/no-topics.io @@ -1,3 +1,3 @@ // queries for all logs across a range of blocks >> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":null,"fromBlock":"0x1","toBlock":"0x3","topics":null}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xabbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a569"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x0","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x1","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x2","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000004","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x3","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7"],"data":"0x0000000000000000000000000000000000000000000000000000000000000005","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x4","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a"],"data":"0x0000000000000000000000000000000000000000000000000000000000000006","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x5","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000007","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x6","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000008","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x7","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041"],"data":"0x0000000000000000000000000000000000000000000000000000000000000009","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x8","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3"],"data":"0x000000000000000000000000000000000000000000000000000000000000000a","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0x9","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","transactionIndex":"0x0","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x0","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","transactionIndex":"0x1","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x1","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","transactionIndex":"0x2","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x2","removed":false},{"address":"0x09fc772d0857550724b07b850a4323f39112aaaa","topics":[],"data":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865fb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","blockNumber":"0x3","transactionHash":"0x834877cf885973710dbea20f5a73ac9c1fa932e9dc0d74f090c9fca2fe281a18","transactionIndex":"0x3","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x3","removed":false}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xabbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a569"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x0","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x1","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x2","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000004","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x3","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7"],"data":"0x0000000000000000000000000000000000000000000000000000000000000005","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x4","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a"],"data":"0x0000000000000000000000000000000000000000000000000000000000000006","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x5","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000007","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x6","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000008","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x7","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041"],"data":"0x0000000000000000000000000000000000000000000000000000000000000009","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x8","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3"],"data":"0x000000000000000000000000000000000000000000000000000000000000000a","blockNumber":"0x2","transactionHash":"0x51a7c013ddcc27a750952d2e07e2a36cbf311f5f7ddc5f4c308ed7f9e73b1c8f","transactionIndex":"0x0","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0x9","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0x2b027b6ede385a5dd48c9463fb91fd0d099c8919ed3bc83b3565293579f30e88","transactionIndex":"0x0","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x0","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x77ec9478917c59826176c8ab8380e6e5daa996148796b7bb21340dcd4db0b65e","transactionIndex":"0x1","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x1","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0x03b5c2bfdf18ad7ca821efaa6101e1be9eec8c649c60294d512d2f1ad37f1a04","transactionIndex":"0x2","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x2","removed":false},{"address":"0x0c15f14308530b7cdb8460094bbb9cc28b9aaaaa","topics":[],"data":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865fb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","blockNumber":"0x3","transactionHash":"0xd4080926eeabd0a5f9f489e98f60e7521b12ddebc18ee8ae79369dee2c38fa58","transactionIndex":"0x3","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x3","removed":false}]} diff --git a/tests/eth_getLogs/topic-exact-match.io b/tests/eth_getLogs/topic-exact-match.io index c13095007..ac0090650 100644 --- a/tests/eth_getLogs/topic-exact-match.io +++ b/tests/eth_getLogs/topic-exact-match.io @@ -1,3 +1,3 @@ // queries for logs with two topics, with both topics set explictly >> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":null,"fromBlock":"0x2","toBlock":"0x5","topics":[["0x00000000000000000000000000000000000000000000000000000000656d6974"],["0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"]]}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","transactionIndex":"0x2","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x2","removed":false}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0x03b5c2bfdf18ad7ca821efaa6101e1be9eec8c649c60294d512d2f1ad37f1a04","transactionIndex":"0x2","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x2","removed":false}]} diff --git a/tests/eth_getLogs/topic-wildcard.io b/tests/eth_getLogs/topic-wildcard.io index 750090de7..169175d1f 100644 --- a/tests/eth_getLogs/topic-wildcard.io +++ b/tests/eth_getLogs/topic-wildcard.io @@ -1,3 +1,3 @@ // queries for logs with two topics, performing a wildcard match in topic position zero >> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":null,"fromBlock":"0x2","toBlock":"0x5","topics":[[],["0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"]]}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xe6303c0c25555cca9c404f53485be34be8c2327c02d0d1c306f2988be59c35d5","transactionIndex":"0x2","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x2","removed":false}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x16c82ec8f9ca85b24056a511f7cf791544abe2afe8e59f0d08d17bc2cdc99f81"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0x03b5c2bfdf18ad7ca821efaa6101e1be9eec8c649c60294d512d2f1ad37f1a04","transactionIndex":"0x2","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x2","removed":false}]} diff --git a/tests/eth_getProof/get-account-proof-blockhash.io b/tests/eth_getProof/get-account-proof-blockhash.io index 08d93116a..beb95cc1c 100644 --- a/tests/eth_getProof/get-account-proof-blockhash.io +++ b/tests/eth_getProof/get-account-proof-blockhash.io @@ -1,3 +1,3 @@ // gets proof for a certain account at the specified blockhash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a086f709e67fe37f2fb59eb3d5ddf9f5e8df5b7d578eaf41a40438acc4c887f1d5a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da05277d5479048ffd4849f746eae1c277ab6778950d19def8f56535eedf2eb00aca05e427744bb6faab86a9748f83ea5ef0232f6a79d30681f3dde3d38c6b3fe09a4a0674d82d1ce4b296bb9e65a7d147355a324e4cf3ed3ca4bee65e085af48416a44a09586414e0e14ae7b1eb4c878f95ed2ef24e01c9a27ebdf58e653a1c1df54e657a064225e65762dc6324b18d0702ae398575fdb966aa12394a4543ef111a7509be8a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a0041cd6a6c02907104ea1887b32cdc6e7cb5c99bffe0e4784a131eb86f2165b8ba038b221ad7c3d152ae58f4c709d79fb3470803708fb78a557d045078857050783a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a094a828debbe6da49b46ccb85da52282aedde5ff8d3568cea0fca2fde12ecee7ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf85180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d55780808080808080808080808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[]}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f"]} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a038f694e6fff515430264b606f405e5b9276c8ec9ce6e0cd10e00459c61e427d0a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da0bab0db0b8c4faf5cce4e0b7da1de0ca3a6976ff57216fbfa3294be1689dfaf2da00fb40ed1f9ddc147b9b1ec844116392bfc6fd63e503798ca45000f61a910b086a082ecfb821321736c70198cd5bc3651fae03d1dea62339e3a6da102b1c3e078c6a06f2a5a036355c81e8beeafca34523161f7f2cecfc62d84604e99f6e440b6d261a02b05d41218a1ef54c9692c44a49ad1df94f46528778e19cfc5dc06bb23733d79a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a03766d8dae099718508eb812526a6b99a9c974a9e56d0bcf0a6aea2d7a473199fa0ed9602b2aa2169894864a446141cf4a6a50973ccc690965c6759ad69459c3053a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a0aa9b2dc98f718c60582a6caf907c038d01ee5a2260d59b051b61a041bdcf382ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf87180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d5578080808080808080a0a86b4ac529b1fea68fa652e206e4c81d3ff6c52e580def278541a67452f8b49c80808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[]}} diff --git a/tests/eth_getProof/get-account-proof-latest.io b/tests/eth_getProof/get-account-proof-latest.io index c866cc589..4e30507f7 100644 --- a/tests/eth_getProof/get-account-proof-latest.io +++ b/tests/eth_getProof/get-account-proof-latest.io @@ -1,3 +1,3 @@ // requests the account proof for a known account >> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a086f709e67fe37f2fb59eb3d5ddf9f5e8df5b7d578eaf41a40438acc4c887f1d5a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da05277d5479048ffd4849f746eae1c277ab6778950d19def8f56535eedf2eb00aca05e427744bb6faab86a9748f83ea5ef0232f6a79d30681f3dde3d38c6b3fe09a4a0674d82d1ce4b296bb9e65a7d147355a324e4cf3ed3ca4bee65e085af48416a44a09586414e0e14ae7b1eb4c878f95ed2ef24e01c9a27ebdf58e653a1c1df54e657a064225e65762dc6324b18d0702ae398575fdb966aa12394a4543ef111a7509be8a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a0041cd6a6c02907104ea1887b32cdc6e7cb5c99bffe0e4784a131eb86f2165b8ba038b221ad7c3d152ae58f4c709d79fb3470803708fb78a557d045078857050783a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a094a828debbe6da49b46ccb85da52282aedde5ff8d3568cea0fca2fde12ecee7ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf85180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d55780808080808080808080808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[]}} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a038f694e6fff515430264b606f405e5b9276c8ec9ce6e0cd10e00459c61e427d0a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da0bab0db0b8c4faf5cce4e0b7da1de0ca3a6976ff57216fbfa3294be1689dfaf2da00fb40ed1f9ddc147b9b1ec844116392bfc6fd63e503798ca45000f61a910b086a082ecfb821321736c70198cd5bc3651fae03d1dea62339e3a6da102b1c3e078c6a06f2a5a036355c81e8beeafca34523161f7f2cecfc62d84604e99f6e440b6d261a02b05d41218a1ef54c9692c44a49ad1df94f46528778e19cfc5dc06bb23733d79a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a03766d8dae099718508eb812526a6b99a9c974a9e56d0bcf0a6aea2d7a473199fa0ed9602b2aa2169894864a446141cf4a6a50973ccc690965c6759ad69459c3053a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a0aa9b2dc98f718c60582a6caf907c038d01ee5a2260d59b051b61a041bdcf382ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf87180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d5578080808080808080a0a86b4ac529b1fea68fa652e206e4c81d3ff6c52e580def278541a67452f8b49c80808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[]}} diff --git a/tests/eth_getProof/get-account-proof-with-storage.io b/tests/eth_getProof/get-account-proof-with-storage.io index 49d4c693c..9c69fd7af 100644 --- a/tests/eth_getProof/get-account-proof-with-storage.io +++ b/tests/eth_getProof/get-account-proof-with-storage.io @@ -1,3 +1,3 @@ // gets proof for a certain account >> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",["0x00"],"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a086f709e67fe37f2fb59eb3d5ddf9f5e8df5b7d578eaf41a40438acc4c887f1d5a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da05277d5479048ffd4849f746eae1c277ab6778950d19def8f56535eedf2eb00aca05e427744bb6faab86a9748f83ea5ef0232f6a79d30681f3dde3d38c6b3fe09a4a0674d82d1ce4b296bb9e65a7d147355a324e4cf3ed3ca4bee65e085af48416a44a09586414e0e14ae7b1eb4c878f95ed2ef24e01c9a27ebdf58e653a1c1df54e657a064225e65762dc6324b18d0702ae398575fdb966aa12394a4543ef111a7509be8a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a0041cd6a6c02907104ea1887b32cdc6e7cb5c99bffe0e4784a131eb86f2165b8ba038b221ad7c3d152ae58f4c709d79fb3470803708fb78a557d045078857050783a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a094a828debbe6da49b46ccb85da52282aedde5ff8d3568cea0fca2fde12ecee7ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf85180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d55780808080808080808080808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[{"key":"0x0","value":"0x1c","proof":["0xf901d1a0c213124b9222692adadf1623505aede960c0931c033366d6b4e1832e9face0e4a04db2f6100702bd6edc3449d1af73d7fc89bd58ecb89419211cc9cea9d5e36a47a08c881030f3b37c0c65eb2e1d2afe94297a35c3c8ea5e946be436ec7b982dd864a00bf22d43e93c96fd47a33eda1dba34de46b338d448bce60a1fc5027ed0c1cee5a03e16690e5a15ffc0eb9afe168acaf1c36f2d97815fd8516c6fb9b1ec0548f754a0f128939c9145c4c1cbd7a69f94fb9a8904f91d54caf50974e708480a61be5d638080a0bc8c4cfbb85a4ace5b484be6d0c5bbdfc75368aaf83986f75b10bdee9f34f2d3a01016bc220459c1c77d0f322f308590e368785635e811f9df9e39e83c72d95565a053e6ec15db6d941bb632aa9a12012afb7a27e29cfcb02139e5017617acaec2f0a0b21742954aa8562494e843bde2df4cc511696680b9020aa62b6105ac9a7aab37a0d53c7900e9b0068fe26d77db78e2edb43dc5b52bfbcd50cd27ff045b4cc6d1fca028aa7b11cd4a7cc7b31b82ea25be30fd674b2bae3580b7bd0dc4e7c17c538354a0263786b1dbd8a47b563244323a8d2286ace6da5e8be56ffef647922d5d4276eda030d23bfc90fa78c278c1047e670efe64f347a466b0aa217c782ebba19145b73380","0xf871808080808080808080a0a12a729c8a5250933e249fedb116df8ebd29e72d260cab050f4ec5b34223d8e1a08bdf6c8dc0fdac64d727272bebe1af5fd9b8fbe702068df758366cfd167017f680808080a0b2b53be089701eb239463766f4394ac86a0b9aea72db682a1928c0fac8194deb80","0xe2a0200decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5631c"]}]}} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a038f694e6fff515430264b606f405e5b9276c8ec9ce6e0cd10e00459c61e427d0a0d64cca2a44674fe8eee215be82974fa85f69681f02238478daf78548dcaf0b9da0bab0db0b8c4faf5cce4e0b7da1de0ca3a6976ff57216fbfa3294be1689dfaf2da00fb40ed1f9ddc147b9b1ec844116392bfc6fd63e503798ca45000f61a910b086a082ecfb821321736c70198cd5bc3651fae03d1dea62339e3a6da102b1c3e078c6a06f2a5a036355c81e8beeafca34523161f7f2cecfc62d84604e99f6e440b6d261a02b05d41218a1ef54c9692c44a49ad1df94f46528778e19cfc5dc06bb23733d79a029ad7803f0618c5cc3cddf9482ebf8b0600108d65de43274ebaa41d2eef8ac58a04d606369546c0554199d0724243bf4738d0a48e0e53250f4292da2c53512db58a04598bd2e0756e3bafa8cd16d943e84e0f5cdbb6ae4864a3bc6ffd5ebb6fe7e5aa0ecc32d42721fb1406193af6adefe63b689122ba945cfe9f6fc68b679daedd719a03766d8dae099718508eb812526a6b99a9c974a9e56d0bcf0a6aea2d7a473199fa0ed9602b2aa2169894864a446141cf4a6a50973ccc690965c6759ad69459c3053a038df0a437d2f965fd4e8f06ebb2076e5834ce6671a4e9712998350a7621fd222a0aa9b2dc98f718c60582a6caf907c038d01ee5a2260d59b051b61a041bdcf382ca0a08e6bab71f325426d28b00310670752292f5e46cc9cbc8a2b08ea3835f8cbf580","0xf87180a0ffb1c33d039a128c812601451d15f11d6e8e77a47eac965fa7752c964fa0d5578080808080808080a0a86b4ac529b1fea68fa652e206e4c81d3ff6c52e580def278541a67452f8b49c80808080a066f0ea34b785d7feb8e7a4cba368c8903685fa2c3b5469b04f0fe0736294b06780","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f844803fa00c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3afa0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x3f","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0x0c06d6e8fd3cf8d5f764250fd46b5aaebff3a698f20b7813ed0ebe3715c7c3af","storageProof":[{"key":"0x0","value":"0x1c","proof":["0xf901d1a0c213124b9222692adadf1623505aede960c0931c033366d6b4e1832e9face0e4a04db2f6100702bd6edc3449d1af73d7fc89bd58ecb89419211cc9cea9d5e36a47a08c881030f3b37c0c65eb2e1d2afe94297a35c3c8ea5e946be436ec7b982dd864a00bf22d43e93c96fd47a33eda1dba34de46b338d448bce60a1fc5027ed0c1cee5a03e16690e5a15ffc0eb9afe168acaf1c36f2d97815fd8516c6fb9b1ec0548f754a0f128939c9145c4c1cbd7a69f94fb9a8904f91d54caf50974e708480a61be5d638080a0bc8c4cfbb85a4ace5b484be6d0c5bbdfc75368aaf83986f75b10bdee9f34f2d3a01016bc220459c1c77d0f322f308590e368785635e811f9df9e39e83c72d95565a053e6ec15db6d941bb632aa9a12012afb7a27e29cfcb02139e5017617acaec2f0a0b21742954aa8562494e843bde2df4cc511696680b9020aa62b6105ac9a7aab37a0d53c7900e9b0068fe26d77db78e2edb43dc5b52bfbcd50cd27ff045b4cc6d1fca028aa7b11cd4a7cc7b31b82ea25be30fd674b2bae3580b7bd0dc4e7c17c538354a0263786b1dbd8a47b563244323a8d2286ace6da5e8be56ffef647922d5d4276eda030d23bfc90fa78c278c1047e670efe64f347a466b0aa217c782ebba19145b73380","0xf871808080808080808080a0a12a729c8a5250933e249fedb116df8ebd29e72d260cab050f4ec5b34223d8e1a08bdf6c8dc0fdac64d727272bebe1af5fd9b8fbe702068df758366cfd167017f680808080a0b2b53be089701eb239463766f4394ac86a0b9aea72db682a1928c0fac8194deb80","0xe2a0200decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5631c"]}]}} diff --git a/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io b/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io index bc36349a0..43945f27d 100644 --- a/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io +++ b/tests/eth_getTransactionByBlockHashAndIndex/get-block-n.io @@ -1,3 +1,3 @@ // gets tx 0 in a non-empty block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockHashAndIndex","params":["0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockHashAndIndex","params":["0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} diff --git a/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io b/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io index 55a1b681c..81e23cf85 100644 --- a/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io +++ b/tests/eth_getTransactionByBlockNumberAndIndex/get-block-n.io @@ -1,3 +1,3 @@ // gets tx 0 in a non-empty block >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockNumberAndIndex","params":["0x1","0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} diff --git a/tests/eth_getTransactionByHash/get-access-list.io b/tests/eth_getTransactionByHash/get-access-list.io index 0b9046155..f1fc049c3 100644 --- a/tests/eth_getTransactionByHash/get-access-list.io +++ b/tests/eth_getTransactionByHash/get-access-list.io @@ -1,3 +1,3 @@ // gets an access list transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","hash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","input":"0xdc4c8669df128318656d6974","nonce":"0xa","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xf341a34ae4f66c156552aa672d054c685a361240c66ef75c07f65ac69b1e2f7a","s":"0x7200d4f70fdeb984fee0dbe79a3d729ee28a392f5f58cda722c0212123df95cf","yParity":"0x1"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x2b027b6ede385a5dd48c9463fb91fd0d099c8919ed3bc83b3565293579f30e88"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x28241520","hash":"0x2b027b6ede385a5dd48c9463fb91fd0d099c8919ed3bc83b3565293579f30e88","input":"0xdc4c8669df128318656d6974","nonce":"0xa","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x7a7f245868fa64371563b5e3923fcb3d921305876fa1f36f4781445367d5c75c","s":"0x11175e17e8a2d7ebb47c50539d89017e13561232f6e85b15c6761318693b9d99","yParity":"0x0"}} diff --git a/tests/eth_getTransactionByHash/get-blob-tx.io b/tests/eth_getTransactionByHash/get-blob-tx.io index 35ac3b378..ca7ddbef5 100644 --- a/tests/eth_getTransactionByHash/get-blob-tx.io +++ b/tests/eth_getTransactionByHash/get-blob-tx.io @@ -1,3 +1,3 @@ // gets a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x282416a8","maxFeePerGas":"0x282416a8","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","input":"0x3f446a7c4145b1f0656d6974","nonce":"0xb","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0x3f05d73d107c94d50470342a6c5d133dca225f858d68ea4fd95fa16503c217b7","s":"0x5e94d20059c6191f17297401df493a5a1e93265a22c306024bd9d87016034e13","yParity":"0x1"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x77ec9478917c59826176c8ab8380e6e5daa996148796b7bb21340dcd4db0b65e"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","blockNumber":"0x3","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x28241520","maxFeePerGas":"0x28241520","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x77ec9478917c59826176c8ab8380e6e5daa996148796b7bb21340dcd4db0b65e","input":"0x3f446a7c4145b1f0656d6974","nonce":"0xb","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x1","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0x5031618ccd7e8caa0a9e9dd30311c8d96e0a7a27c8b3ecbe5126c76ac04f5db1","s":"0x44998503d1b38c4c648327d1fbab12cdeec9819da16e6d2847f087db4a15affc","yParity":"0x1"}} diff --git a/tests/eth_getTransactionByHash/get-dynamic-fee.io b/tests/eth_getTransactionByHash/get-dynamic-fee.io index d77e9ac03..c11e1824a 100644 --- a/tests/eth_getTransactionByHash/get-dynamic-fee.io +++ b/tests/eth_getTransactionByHash/get-dynamic-fee.io @@ -1,3 +1,3 @@ // gets a dynamic fee transaction >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","input":"0xcd4a1f0815150453656d6974","nonce":"0x9","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x5","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xdb642586ab80271c8da5852da58846f2f3dcf42547a671e86e25cb04d25fa59a","s":"0x62d1e2f9284ccf46e66c54c8e0598e983a56a3f401975053f7c244c4d540b6d9","yParity":"0x0"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","input":"0xcd4a1f0815150453656d6974","nonce":"0x9","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x5","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xdb642586ab80271c8da5852da58846f2f3dcf42547a671e86e25cb04d25fa59a","s":"0x62d1e2f9284ccf46e66c54c8e0598e983a56a3f401975053f7c244c4d540b6d9","yParity":"0x0"}} diff --git a/tests/eth_getTransactionByHash/get-legacy-create.io b/tests/eth_getTransactionByHash/get-legacy-create.io index 2aaef7488..06632d747 100644 --- a/tests/eth_getTransactionByHash/get-legacy-create.io +++ b/tests/eth_getTransactionByHash/get-legacy-create.io @@ -1,3 +1,3 @@ // gets a legacy contract create transaction >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} diff --git a/tests/eth_getTransactionByHash/get-legacy-input.io b/tests/eth_getTransactionByHash/get-legacy-input.io index 7fa0ad59e..a1431a366 100644 --- a/tests/eth_getTransactionByHash/get-legacy-input.io +++ b/tests/eth_getTransactionByHash/get-legacy-input.io @@ -1,3 +1,3 @@ // gets a legacy transaction with input data >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13134","gasPrice":"0x342770c1","hash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x4bbfb315c19415b5e39df54c30c5a0c8d5e8100fc5e245e67623ff20dd839027","s":"0xa29f1401eec72972b601f590b17c904db69e9ccf3e10384e4da572788269b"}} diff --git a/tests/eth_getTransactionByHash/get-legacy-tx.io b/tests/eth_getTransactionByHash/get-legacy-tx.io index 26a7d8758..b6c47a3d3 100644 --- a/tests/eth_getTransactionByHash/get-legacy-tx.io +++ b/tests/eth_getTransactionByHash/get-legacy-tx.io @@ -1,3 +1,3 @@ // gets a legacy transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x215dfde45f66435283ce435902e59787e936d99b8570d3fa7287f3b100f61f68"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x49c5b1b5315eae3f2b4872338302e0a763e5b4b02e774b58413b1fd26166149f","blockNumber":"0x4","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x23334a86","hash":"0x215dfde45f66435283ce435902e59787e936d99b8570d3fa7287f3b100f61f68","input":"0x","nonce":"0x10","to":"0x2d389075be5be9f2246ad654ce152cf05990b209","transactionIndex":"0x2","value":"0x1","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0x9dad9aa28d9ee10cf4eba8fbfeb05c6e9131cc1bc8cc55e55dbb4847ae21a756","s":"0x38dfd6c14c540aa2bfaef27298262e168c999aaa27ea5e3fc1260903d842a746"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xe3cc6357c69459d9c13193d5b12585acb27ae224054cb3b9056f4f91759edb00"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x13bfc57a0e32494be6f1601a1eac767139a0a6fe45d4f8b319e443d30937ef3d","blockNumber":"0x4","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x233348eb","hash":"0xe3cc6357c69459d9c13193d5b12585acb27ae224054cb3b9056f4f91759edb00","input":"0x","nonce":"0x10","to":"0x2d389075be5be9f2246ad654ce152cf05990b209","transactionIndex":"0x2","value":"0x1","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xf26003be987b7fbcdb774767b70fce27f8706114c578329fd11ce64f27e3a76c","s":"0x6264b2c9ef4e664ebabbf46304b909020efd09eaf3ce7e5c0965887f6e8e110d"}} diff --git a/tests/eth_getTransactionByHash/get-setcode-tx.io b/tests/eth_getTransactionByHash/get-setcode-tx.io index d2f3d87e0..1bb92e917 100644 --- a/tests/eth_getTransactionByHash/get-setcode-tx.io +++ b/tests/eth_getTransactionByHash/get-setcode-tx.io @@ -1,3 +1,3 @@ // retrieves an EIP-7702 transaction >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","input":"0x","nonce":"0x7","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x6cad054757f422066e2e474e5e81ed495bdcc979","nonce":"0x0","v":"0x1","r":"0x1a63d81054d08d92118b33115b5a515817e50a3828fd96939f979ac93694751e","s":"0x306a64ef2eb532805f1f5079af7591704b1623e82e56bb0c6b18342b48958b06"}],"v":"0x0","r":"0xfc169339eea66ef47f1cfea0fd18797b91853d0977c3d360bafae7e3c0f7ca3d","s":"0x445cf1b2b73d6457b9324c4351024bb406b0111e7ea038713dac4968a625e43","yParity":"0x0"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x2dbf1f9a","maxFeePerGas":"0x2dbf1f9a","maxPriorityFeePerGas":"0x1","hash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","input":"0x","nonce":"0x7","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x6cad054757f422066e2e474e5e81ed495bdcc979","nonce":"0x0","yParity":"0x1","r":"0x1a63d81054d08d92118b33115b5a515817e50a3828fd96939f979ac93694751e","s":"0x306a64ef2eb532805f1f5079af7591704b1623e82e56bb0c6b18342b48958b06"}],"v":"0x0","r":"0xfc169339eea66ef47f1cfea0fd18797b91853d0977c3d360bafae7e3c0f7ca3d","s":"0x445cf1b2b73d6457b9324c4351024bb406b0111e7ea038713dac4968a625e43","yParity":"0x0"}} diff --git a/tests/eth_getTransactionReceipt/get-access-list.io b/tests/eth_getTransactionReceipt/get-access-list.io index d2399067d..acc755dd8 100644 --- a/tests/eth_getTransactionReceipt/get-access-list.io +++ b/tests/eth_getTransactionReceipt/get-access-list.io @@ -1,3 +1,3 @@ // gets an access list transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x282416a8","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","transactionIndex":"0x0","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xb00c941f8e42af20643367da74a99bcde643c99f9fcf52d100942ad7c2751881","transactionIndex":"0x0","type":"0x1"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x2b027b6ede385a5dd48c9463fb91fd0d099c8919ed3bc83b3565293579f30e88"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","blockNumber":"0x3","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x28241520","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x462708a3c1cd03b21605715d090136df64e227f7e7792f74bb1bd7a8288f8801"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0x2b027b6ede385a5dd48c9463fb91fd0d099c8919ed3bc83b3565293579f30e88","transactionIndex":"0x0","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000400000000000000000000000200000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x2b027b6ede385a5dd48c9463fb91fd0d099c8919ed3bc83b3565293579f30e88","transactionIndex":"0x0","type":"0x1"}} diff --git a/tests/eth_getTransactionReceipt/get-blob-tx.io b/tests/eth_getTransactionReceipt/get-blob-tx.io index 6c3ae2ade..cd5a16156 100644 --- a/tests/eth_getTransactionReceipt/get-blob-tx.io +++ b/tests/eth_getTransactionReceipt/get-blob-tx.io @@ -1,3 +1,3 @@ // gets a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","blockNumber":"0x3","contractAddress":null,"cumulativeGasUsed":"0x19538","effectiveGasPrice":"0x282416a8","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","transactionIndex":"0x1","blockHash":"0x5b1f1a15536ae8a099c399f15163349d7ba167048b30acee6cb1ece4ede1d43f","logIndex":"0x1","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x7c23e4bfb909cf1027706b23b5dae161a66d5446d7c505e05ba03c97327c9770","transactionIndex":"0x1","type":"0x3"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x77ec9478917c59826176c8ab8380e6e5daa996148796b7bb21340dcd4db0b65e"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","blockNumber":"0x3","contractAddress":null,"cumulativeGasUsed":"0x19538","effectiveGasPrice":"0x28241520","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xb52248fb459b43720abbf1d5218c4ede9036a623653b31c2077991e04da9a456"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0x77ec9478917c59826176c8ab8380e6e5daa996148796b7bb21340dcd4db0b65e","transactionIndex":"0x1","blockHash":"0x69d520fbc7eadb958c7507745d4150d6d63078237c90734fc7d1a6a90a9572f4","logIndex":"0x1","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000004000000000002000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x77ec9478917c59826176c8ab8380e6e5daa996148796b7bb21340dcd4db0b65e","transactionIndex":"0x1","type":"0x3"}} diff --git a/tests/eth_getTransactionReceipt/get-dynamic-fee.io b/tests/eth_getTransactionReceipt/get-dynamic-fee.io index 027e0d3a9..68d360c48 100644 --- a/tests/eth_getTransactionReceipt/get-dynamic-fee.io +++ b/tests/eth_getTransactionReceipt/get-dynamic-fee.io @@ -1,3 +1,3 @@ // gets a dynamic fee transaction >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x5ab61","effectiveGasPrice":"0x2dbf1f9a","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xbfac","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xf8b6ea3c507e3d7064c54794c1cdc643f36a6bd0565c1fd748add98c9b8d8bcc","logIndex":"0xa","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000004000000081000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","type":"0x2"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x5ab14","effectiveGasPrice":"0x2dbf1f9a","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xbfac","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xcafb6bca825986d957afdb8dae2d222b938677129730cb59744012d0477b5b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","logIndex":"0xa","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000004000000081000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x5f30eb02ff7845668f4787fca3a549c6632fbeb3d282cddbc95001a3252acf28","transactionIndex":"0x5","type":"0x2"}} diff --git a/tests/eth_getTransactionReceipt/get-legacy-contract.io b/tests/eth_getTransactionReceipt/get-legacy-contract.io index b8d5829e6..5a2099148 100644 --- a/tests/eth_getTransactionReceipt/get-legacy-contract.io +++ b/tests/eth_getTransactionReceipt/get-legacy-contract.io @@ -1,3 +1,3 @@ // gets a legacy contract create transaction >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"}} diff --git a/tests/eth_getTransactionReceipt/get-legacy-input.io b/tests/eth_getTransactionReceipt/get-legacy-input.io index e18efdb14..777ba0450 100644 --- a/tests/eth_getTransactionReceipt/get-legacy-input.io +++ b/tests/eth_getTransactionReceipt/get-legacy-input.io @@ -1,3 +1,3 @@ // gets a legacy transaction with input data >> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x7b41001f4569d06b20963b6338033bfa541ab169d5923d66439c5838c88d65a4","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"}} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x242d0b0e1a294622ab8b3011c2f8429ed06351bcea30c7dbdf91a6d1948a0c54","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0xf777","effectiveGasPrice":"0x342770c1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xf777","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xc6bf0511ae12477efae150fa743992b00867729fbc8dfe8e7b16f5a2596a979b","transactionIndex":"0x0","type":"0x0"}} diff --git a/tests/eth_getTransactionReceipt/get-legacy-receipt.io b/tests/eth_getTransactionReceipt/get-legacy-receipt.io index d993dd670..99ad2002c 100644 --- a/tests/eth_getTransactionReceipt/get-legacy-receipt.io +++ b/tests/eth_getTransactionReceipt/get-legacy-receipt.io @@ -1,3 +1,3 @@ // gets the receipt for a legacy value transfer tx ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x215dfde45f66435283ce435902e59787e936d99b8570d3fa7287f3b100f61f68"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x49c5b1b5315eae3f2b4872338302e0a763e5b4b02e774b58413b1fd26166149f","blockNumber":"0x4","contractAddress":null,"cumulativeGasUsed":"0xf618","effectiveGasPrice":"0x23334a86","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x2d389075be5be9f2246ad654ce152cf05990b209","transactionHash":"0x215dfde45f66435283ce435902e59787e936d99b8570d3fa7287f3b100f61f68","transactionIndex":"0x2","type":"0x0"}} +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xe3cc6357c69459d9c13193d5b12585acb27ae224054cb3b9056f4f91759edb00"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x13bfc57a0e32494be6f1601a1eac767139a0a6fe45d4f8b319e443d30937ef3d","blockNumber":"0x4","contractAddress":null,"cumulativeGasUsed":"0xf618","effectiveGasPrice":"0x233348eb","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x2d389075be5be9f2246ad654ce152cf05990b209","transactionHash":"0xe3cc6357c69459d9c13193d5b12585acb27ae224054cb3b9056f4f91759edb00","transactionIndex":"0x2","type":"0x0"}} diff --git a/tests/eth_getTransactionReceipt/get-setcode-tx.io b/tests/eth_getTransactionReceipt/get-setcode-tx.io new file mode 100644 index 000000000..89bf25f1a --- /dev/null +++ b/tests/eth_getTransactionReceipt/get-setcode-tx.io @@ -0,0 +1,3 @@ +// gets the receipt for a EIP-7702 setcode transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xec5a4f55357c7827547ebc4af4e3956d583d513b118cd5965c6cc45f179a8f7e","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x44204","effectiveGasPrice":"0x2dbf1f9a","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x8fc0","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x0000000000000000000000000000000000000000","transactionHash":"0xabb412d6230ef50141b0a530ed8b57dda282fbce24acd48810ef2b4d34cd9104","transactionIndex":"0x3","type":"0x4"}} diff --git a/tests/eth_sendRawTransaction/send-access-list-transaction.io b/tests/eth_sendRawTransaction/send-access-list-transaction.io index e6b99e618..69861c8ac 100644 --- a/tests/eth_sendRawTransaction/send-access-list-transaction.io +++ b/tests/eth_sendRawTransaction/send-access-list-transaction.io @@ -1,3 +1,3 @@ // sends a transaction with access list ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x01f8cc870c72dd9d5e883e02840442715183015f90947dcd17433742f4c0ca53122ab541d0ba67fc27df8083010203f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000001a05d974b732ece6b4dd979292e9cf0c09077925650db378d809f9e10b88e366c38a02f1d3f5508e8a3c4269b1b54fb7bbb67af4c667532c492e2cc871acb32acd565"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x2cc5433bea574ebe4f8bf9ef249e55bb8fc5ed8534188a9701d567fa52cd9d27"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x01f8cc870c72dd9d5e883e02840442711f83015f90947dcd17433742f4c0ca53122ab541d0ba67fc27df8083010203f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000001a0a7280b1fef57abe2de8659d1eb5ad08b6ad88265ab903f12958d155c4b5a28c5a02f1135d5d81be684c59149726abffdfe8ef16c461c9c6c051ce7934e6d1ec4da"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x01be082f50e82861ce08fdef1b6c72488b672480c8d610f5813fdcbc6f4893e7"} diff --git a/tests/eth_sendRawTransaction/send-blob-tx.io b/tests/eth_sendRawTransaction/send-blob-tx.io index f2cb81e36..186674fa1 100644 --- a/tests/eth_sendRawTransaction/send-blob-tx.io +++ b/tests/eth_sendRawTransaction/send-blob-tx.io @@ -1,3 +1,3 @@ // sends a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x03fa0201a6f90137870c72dd9d5e883e808201f4840442715183013880947dcd17433742f4c0ca53122ab541d0ba67fc27df80b844a9059cbb000000000000000000000000cff33720980c026cc155dcb366861477e988fd870000000000000000000000000000000000000000000000000000000002fd6892f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000083020000e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0ee82dd86d416a8715f80b7370dce2583f864f47cbcc06de9fb64f256bb96deffa051b64a4b36859b22790c56b60975afce5dad54745e837c30d82a9c54c20849abfa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x6345283e3d4b4d0854f5977109bef50d82d2557d32f5194900c3818a32968fad"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x03fa0201a6f90137870c72dd9d5e883e808201f4840442711f83013880947dcd17433742f4c0ca53122ab541d0ba67fc27df80b844a9059cbb000000000000000000000000cff33720980c026cc155dcb366861477e988fd870000000000000000000000000000000000000000000000000000000002fd6892f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000083020000e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0dd75764a90c64a3c5c5c7961ae857293d439151feef85ea8d0a527c98ad38a1fa07c1c3f835a84cf752a105e8c697e527bb172cd0732e3095f6e16f01cc7e5f5b8fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x66f9a00df3963ad9ca1fa569ceb82d7c962f458e51e4225cff5d0e2042aa5253"} diff --git a/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io b/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io index cdef4b20a..434c5bc94 100644 --- a/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io +++ b/tests/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io @@ -1,3 +1,3 @@ // sends a transaction with dynamic fee and access list ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f8d0870c72dd9d5e883e038201f4840442715183013880947dcd17433742f4c0ca53122ab541d0ba67fc27df808401020304f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000001a0723d812e906d86f7f758420a369181d205827993ec052a77b161b129c3048a9ea05758d51d3a0f2703c2f5cc76c6a4239debf5d54a837d4868b0e777c4993c67bd"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x4ba238ff17ee53f80777805d761816f7d00fba2194e2ee56bbbeff04831bc987"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f8d0870c72dd9d5e883e038201f4840442711f83013880947dcd17433742f4c0ca53122ab541d0ba67fc27df808401020304f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000001a085af143d283a9b58da76d3be3a8919f0926d0452540700a028421871f2d64ba7a03d47f2aa91287d7784ddb94f47fe278b57203359b77f8dacb229c3922bd4f213"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xc85582cac28808688c2e7e19c8486805601b33de131916b123eef029b0fd1452"} diff --git a/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io b/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io index e90d20c10..d643d0b38 100644 --- a/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io +++ b/tests/eth_sendRawTransaction/send-dynamic-fee-transaction.io @@ -1,3 +1,3 @@ // sends a create transaction with dynamic fee ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f892870c72dd9d5e883e018201f4840442715182ea60802ab73d602d80600a3d3981f3363d3d373d3d3d363d734d11c446473105a02b5c1ab9ebe9b03f33902a295af43d82803e903d91602b57fd5bf3c080a07ca3beab5d1d0019389c1cd455f37c9fd712f899c3c42eaa36b77a191a75f7bea00681f4b0bbc710d72cf28640568621fc6113a84dda022b1c57188aad7a0ca8e0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x39af252b441e7b977606af8fd82905952dbd88e759c7c4785133df8c6216c593"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f892870c72dd9d5e883e018201f4840442711f82ea60802ab73d602d80600a3d3981f3363d3d373d3d3d363d734d11c446473105a02b5c1ab9ebe9b03f33902a295af43d82803e903d91602b57fd5bf3c001a09660ec6684ce5fcd259d29a8875c4792ef294a56bce9019d2c9fd350334d4f98a040d0b5528748450fe4e324276d2ac8881a6614bbd8b016b692eaa73ab38257d9"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x3a21be308bce1ac0a76d5311cf70de5c818b313da9a85086c6b919ae2db693b8"} diff --git a/tests/eth_sendRawTransaction/send-legacy-transaction.io b/tests/eth_sendRawTransaction/send-legacy-transaction.io index 76fb29324..35b9b7b6f 100644 --- a/tests/eth_sendRawTransaction/send-legacy-transaction.io +++ b/tests/eth_sendRawTransaction/send-legacy-transaction.io @@ -1,3 +1,3 @@ // sends a raw legacy transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0xf86c808404426f5e8261a894aa000000000000000000000000000000000000000a8255448718e5bb3abd109fa0fe0f2d62f8084ac7906f478d49740e122f6eecd104eaa7f526d5d45070ea936ca049c7ebf0bfa81090e660553b0b51d9f4752fc66caa48a7409b5eadb1293b0bd2"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0515c910908ab0cac71f946f7b6c58de5a4d3cf5864bed836a3c78c5ae4cf534"} +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0xf86c808404426f2c8261a894aa000000000000000000000000000000000000000a8255448718e5bb3abd109fa00ad90b9c4c132da7cb39880cbd972f60c9fd2932ef3cd7ec62e6f51e09c88768a01decfc6209e5065c44c872a616795c9b032c2b192db71a36dcaa2df24f692edc"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x34ed1ee69133eab24f2435400bd8e0df3ecdc32afd0b16449c9201055301ad7e"} diff --git a/tests/genesis.json b/tests/genesis.json index bec97c10e..41549903e 100644 --- a/tests/genesis.json +++ b/tests/genesis.json @@ -34,21 +34,21 @@ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "balance": "0x2a" }, - "01abea29659e5e97c95107f20bb753cd3e09bbbb": { - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cf573615156028575f545f5260205ff35b366060141561019a5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f821115608057810190830284830290049160010191906065565b90939004341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060011160e3575060015b5f5b8181146101295780607402838201600402600401805490600101805490600101805490600101549260601b84529083601401528260340152906054015260010160e5565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", + "00431f263ce400f4455c2dcf564e53007ca4bbbb": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", "balance": "0x1" }, - "09fc772d0857550724b07b850a4323f39112aaaa": { - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460c7573615156028575f545f5260205ff35b36603814156101f05760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f057600182026001905f5b5f821115608057810190830284830290049160010191906065565b9093900434106101f057600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160db575060105b5f5b81811461017f5780604c02838201600302600401805490600101805490600101549160601b83528260140152807fffffffffffffffffffffffffffffffff0000000000000000000000000000000016826034015260401c906044018160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160dd565b9101809214610191579060025561019c565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101c957505f5b6001546002828201116101de5750505f6101e4565b01600290035b5f555f600155604c025ff35b5f5ffd", - "balance": "0x1" - }, - "0aae40965e6800cd9b1f4b05ff21581047e3f91e": { - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460575767ffffffffffffffff5f3511605357600143035f3511604b575f35612000014311604b57611fff5f3516545f5260205ff35b5f5f5260205ff35b5f5ffd5b5f35611fff60014303165500", + "0c15f14308530b7cdb8460094bbb9cc28b9aaaaa": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", "balance": "0x1" }, "0c2c51a0990aee1d73c1228de158688341557508": { "balance": "0xc097ce7bc90715b34b9f1000000000" }, + "0f792be4b0c0cb4dae440ef133e90c0ecd48cccc": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", + "balance": "0x1" + }, "14e46043e63d0e3cdcf2530519f4cfaf35058cb2": { "balance": "0xc097ce7bc90715b34b9f1000000000" }, diff --git a/tests/headfcu.json b/tests/headfcu.json index 43edbce57..744eb177f 100644 --- a/tests/headfcu.json +++ b/tests/headfcu.json @@ -4,9 +4,9 @@ "method": "engine_forkchoiceUpdatedV3", "params": [ { - "headBlockHash": "0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b", - "safeBlockHash": "0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b", - "finalizedBlockHash": "0x3890d259f63e7350fa4f747e5627abc7d95ef106b1f80d96c9586383f432cc2b" + "headBlockHash": "0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f", + "safeBlockHash": "0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f", + "finalizedBlockHash": "0xd3353956d9ff9053a5b7197f00d6f49d13a5d99c33bbbcf1e827fa2afdef1f3f" }, null ]