From fc4a548d6f715a1502e0d5eff1b679e79f8cf243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Mon, 16 Feb 2015 15:26:54 +0100 Subject: [PATCH] ManyFunctions performance test: ~200 functions in a contract, half of them are called randomly --- ManyFunctions.sol | 1485 ++++++++++++++++++++++++++++++++++ ManyFunctionsGenerator.py | 24 + vmPerformanceTestFiller.json | 29 + 3 files changed, 1538 insertions(+) create mode 100644 ManyFunctions.sol create mode 100644 ManyFunctionsGenerator.py diff --git a/ManyFunctions.sol b/ManyFunctions.sol new file mode 100644 index 000000000..60dc61c42 --- /dev/null +++ b/ManyFunctions.sol @@ -0,0 +1,1485 @@ + + function right1(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^79) + return right2(r); + return left2(r); + } + + function left1(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^79) + return left2(r); + return right2(r); + } + + + function right2(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^80) + return right3(r); + return left3(r); + } + + function left2(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^80) + return left3(r); + return right3(r); + } + + + function right3(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^81) + return right4(r); + return left4(r); + } + + function left3(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^81) + return left4(r); + return right4(r); + } + + + function right4(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^82) + return right5(r); + return left5(r); + } + + function left4(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^82) + return left5(r); + return right5(r); + } + + + function right5(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^83) + return right6(r); + return left6(r); + } + + function left5(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^83) + return left6(r); + return right6(r); + } + + + function right6(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^84) + return right7(r); + return left7(r); + } + + function left6(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^84) + return left7(r); + return right7(r); + } + + + function right7(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^85) + return right8(r); + return left8(r); + } + + function left7(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^85) + return left8(r); + return right8(r); + } + + + function right8(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^86) + return right9(r); + return left9(r); + } + + function left8(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^86) + return left9(r); + return right9(r); + } + + + function right9(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^87) + return right10(r); + return left10(r); + } + + function left9(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^87) + return left10(r); + return right10(r); + } + + + function right10(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^88) + return right11(r); + return left11(r); + } + + function left10(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^88) + return left11(r); + return right11(r); + } + + + function right11(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^89) + return right12(r); + return left12(r); + } + + function left11(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^89) + return left12(r); + return right12(r); + } + + + function right12(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^90) + return right13(r); + return left13(r); + } + + function left12(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^90) + return left13(r); + return right13(r); + } + + + function right13(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^91) + return right14(r); + return left14(r); + } + + function left13(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^91) + return left14(r); + return right14(r); + } + + + function right14(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^92) + return right15(r); + return left15(r); + } + + function left14(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^92) + return left15(r); + return right15(r); + } + + + function right15(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^93) + return right16(r); + return left16(r); + } + + function left15(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^93) + return left16(r); + return right16(r); + } + + + function right16(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^94) + return right17(r); + return left17(r); + } + + function left16(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^94) + return left17(r); + return right17(r); + } + + + function right17(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^95) + return right18(r); + return left18(r); + } + + function left17(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^95) + return left18(r); + return right18(r); + } + + + function right18(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^96) + return right19(r); + return left19(r); + } + + function left18(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^96) + return left19(r); + return right19(r); + } + + + function right19(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^97) + return right20(r); + return left20(r); + } + + function left19(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^97) + return left20(r); + return right20(r); + } + + + function right20(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^98) + return right21(r); + return left21(r); + } + + function left20(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^98) + return left21(r); + return right21(r); + } + + + function right21(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^99) + return right22(r); + return left22(r); + } + + function left21(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^99) + return left22(r); + return right22(r); + } + + + function right22(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^100) + return right23(r); + return left23(r); + } + + function left22(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^100) + return left23(r); + return right23(r); + } + + + function right23(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^101) + return right24(r); + return left24(r); + } + + function left23(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^101) + return left24(r); + return right24(r); + } + + + function right24(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^102) + return right25(r); + return left25(r); + } + + function left24(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^102) + return left25(r); + return right25(r); + } + + + function right25(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^103) + return right26(r); + return left26(r); + } + + function left25(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^103) + return left26(r); + return right26(r); + } + + + function right26(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^104) + return right27(r); + return left27(r); + } + + function left26(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^104) + return left27(r); + return right27(r); + } + + + function right27(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^105) + return right28(r); + return left28(r); + } + + function left27(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^105) + return left28(r); + return right28(r); + } + + + function right28(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^106) + return right29(r); + return left29(r); + } + + function left28(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^106) + return left29(r); + return right29(r); + } + + + function right29(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^107) + return right30(r); + return left30(r); + } + + function left29(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^107) + return left30(r); + return right30(r); + } + + + function right30(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^108) + return right31(r); + return left31(r); + } + + function left30(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^108) + return left31(r); + return right31(r); + } + + + function right31(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^109) + return right32(r); + return left32(r); + } + + function left31(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^109) + return left32(r); + return right32(r); + } + + + function right32(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^110) + return right33(r); + return left33(r); + } + + function left32(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^110) + return left33(r); + return right33(r); + } + + + function right33(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^111) + return right34(r); + return left34(r); + } + + function left33(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^111) + return left34(r); + return right34(r); + } + + + function right34(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^112) + return right35(r); + return left35(r); + } + + function left34(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^112) + return left35(r); + return right35(r); + } + + + function right35(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^113) + return right36(r); + return left36(r); + } + + function left35(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^113) + return left36(r); + return right36(r); + } + + + function right36(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^114) + return right37(r); + return left37(r); + } + + function left36(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^114) + return left37(r); + return right37(r); + } + + + function right37(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^115) + return right38(r); + return left38(r); + } + + function left37(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^115) + return left38(r); + return right38(r); + } + + + function right38(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^116) + return right39(r); + return left39(r); + } + + function left38(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^116) + return left39(r); + return right39(r); + } + + + function right39(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^117) + return right40(r); + return left40(r); + } + + function left39(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^117) + return left40(r); + return right40(r); + } + + + function right40(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^118) + return right41(r); + return left41(r); + } + + function left40(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^118) + return left41(r); + return right41(r); + } + + + function right41(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^119) + return right42(r); + return left42(r); + } + + function left41(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^119) + return left42(r); + return right42(r); + } + + + function right42(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^120) + return right43(r); + return left43(r); + } + + function left42(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^120) + return left43(r); + return right43(r); + } + + + function right43(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^121) + return right44(r); + return left44(r); + } + + function left43(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^121) + return left44(r); + return right44(r); + } + + + function right44(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^122) + return right45(r); + return left45(r); + } + + function left44(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^122) + return left45(r); + return right45(r); + } + + + function right45(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^123) + return right46(r); + return left46(r); + } + + function left45(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^123) + return left46(r); + return right46(r); + } + + + function right46(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^124) + return right47(r); + return left47(r); + } + + function left46(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^124) + return left47(r); + return right47(r); + } + + + function right47(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^125) + return right48(r); + return left48(r); + } + + function left47(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^125) + return left48(r); + return right48(r); + } + + + function right48(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^126) + return right49(r); + return left49(r); + } + + function left48(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^126) + return left49(r); + return right49(r); + } + + + function right49(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^127) + return right50(r); + return left50(r); + } + + function left49(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^127) + return left50(r); + return right50(r); + } + + + function right50(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^128) + return right51(r); + return left51(r); + } + + function left50(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^128) + return left51(r); + return right51(r); + } + + + function right51(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^129) + return right52(r); + return left52(r); + } + + function left51(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^129) + return left52(r); + return right52(r); + } + + + function right52(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^130) + return right53(r); + return left53(r); + } + + function left52(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^130) + return left53(r); + return right53(r); + } + + + function right53(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^131) + return right54(r); + return left54(r); + } + + function left53(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^131) + return left54(r); + return right54(r); + } + + + function right54(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^132) + return right55(r); + return left55(r); + } + + function left54(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^132) + return left55(r); + return right55(r); + } + + + function right55(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^133) + return right56(r); + return left56(r); + } + + function left55(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^133) + return left56(r); + return right56(r); + } + + + function right56(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^134) + return right57(r); + return left57(r); + } + + function left56(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^134) + return left57(r); + return right57(r); + } + + + function right57(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^135) + return right58(r); + return left58(r); + } + + function left57(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^135) + return left58(r); + return right58(r); + } + + + function right58(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^136) + return right59(r); + return left59(r); + } + + function left58(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^136) + return left59(r); + return right59(r); + } + + + function right59(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^137) + return right60(r); + return left60(r); + } + + function left59(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^137) + return left60(r); + return right60(r); + } + + + function right60(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^138) + return right61(r); + return left61(r); + } + + function left60(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^138) + return left61(r); + return right61(r); + } + + + function right61(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^139) + return right62(r); + return left62(r); + } + + function left61(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^139) + return left62(r); + return right62(r); + } + + + function right62(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^140) + return right63(r); + return left63(r); + } + + function left62(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^140) + return left63(r); + return right63(r); + } + + + function right63(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^141) + return right64(r); + return left64(r); + } + + function left63(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^141) + return left64(r); + return right64(r); + } + + + function right64(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^142) + return right65(r); + return left65(r); + } + + function left64(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^142) + return left65(r); + return right65(r); + } + + + function right65(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^143) + return right66(r); + return left66(r); + } + + function left65(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^143) + return left66(r); + return right66(r); + } + + + function right66(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^144) + return right67(r); + return left67(r); + } + + function left66(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^144) + return left67(r); + return right67(r); + } + + + function right67(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^145) + return right68(r); + return left68(r); + } + + function left67(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^145) + return left68(r); + return right68(r); + } + + + function right68(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^146) + return right69(r); + return left69(r); + } + + function left68(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^146) + return left69(r); + return right69(r); + } + + + function right69(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^147) + return right70(r); + return left70(r); + } + + function left69(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^147) + return left70(r); + return right70(r); + } + + + function right70(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^148) + return right71(r); + return left71(r); + } + + function left70(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^148) + return left71(r); + return right71(r); + } + + + function right71(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^149) + return right72(r); + return left72(r); + } + + function left71(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^149) + return left72(r); + return right72(r); + } + + + function right72(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^150) + return right73(r); + return left73(r); + } + + function left72(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^150) + return left73(r); + return right73(r); + } + + + function right73(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^151) + return right74(r); + return left74(r); + } + + function left73(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^151) + return left74(r); + return right74(r); + } + + + function right74(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^152) + return right75(r); + return left75(r); + } + + function left74(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^152) + return left75(r); + return right75(r); + } + + + function right75(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^153) + return right76(r); + return left76(r); + } + + function left75(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^153) + return left76(r); + return right76(r); + } + + + function right76(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^154) + return right77(r); + return left77(r); + } + + function left76(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^154) + return left77(r); + return right77(r); + } + + + function right77(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^155) + return right78(r); + return left78(r); + } + + function left77(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^155) + return left78(r); + return right78(r); + } + + + function right78(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^156) + return right79(r); + return left79(r); + } + + function left78(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^156) + return left79(r); + return right79(r); + } + + + function right79(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^157) + return right80(r); + return left80(r); + } + + function left79(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^157) + return left80(r); + return right80(r); + } + + + function right80(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^158) + return right81(r); + return left81(r); + } + + function left80(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^158) + return left81(r); + return right81(r); + } + + + function right81(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^159) + return right82(r); + return left82(r); + } + + function left81(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^159) + return left82(r); + return right82(r); + } + + + function right82(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^160) + return right83(r); + return left83(r); + } + + function left82(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^160) + return left83(r); + return right83(r); + } + + + function right83(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^161) + return right84(r); + return left84(r); + } + + function left83(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^161) + return left84(r); + return right84(r); + } + + + function right84(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^162) + return right85(r); + return left85(r); + } + + function left84(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^162) + return left85(r); + return right85(r); + } + + + function right85(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^163) + return right86(r); + return left86(r); + } + + function left85(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^163) + return left86(r); + return right86(r); + } + + + function right86(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^164) + return right87(r); + return left87(r); + } + + function left86(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^164) + return left87(r); + return right87(r); + } + + + function right87(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^165) + return right88(r); + return left88(r); + } + + function left87(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^165) + return left88(r); + return right88(r); + } + + + function right88(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^166) + return right89(r); + return left89(r); + } + + function left88(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^166) + return left89(r); + return right89(r); + } + + + function right89(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^167) + return right90(r); + return left90(r); + } + + function left89(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^167) + return left90(r); + return right90(r); + } + + + function right90(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^168) + return right91(r); + return left91(r); + } + + function left90(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^168) + return left91(r); + return right91(r); + } + + + function right91(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^169) + return right92(r); + return left92(r); + } + + function left91(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^169) + return left92(r); + return right92(r); + } + + + function right92(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^170) + return right93(r); + return left93(r); + } + + function left92(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^170) + return left93(r); + return right93(r); + } + + + function right93(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^171) + return right94(r); + return left94(r); + } + + function left93(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^171) + return left94(r); + return right94(r); + } + + + function right94(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^172) + return right95(r); + return left95(r); + } + + function left94(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^172) + return left95(r); + return right95(r); + } + + + function right95(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^173) + return right96(r); + return left96(r); + } + + function left95(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^173) + return left96(r); + return right96(r); + } + + + function right96(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^174) + return right97(r); + return left97(r); + } + + function left96(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^174) + return left97(r); + return right97(r); + } + + + function right97(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^175) + return right98(r); + return left98(r); + } + + function left97(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^175) + return left98(r); + return right98(r); + } + + + function right98(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^176) + return right99(r); + return left99(r); + } + + function left98(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^176) + return left99(r); + return right99(r); + } + + + function right99(uint seed) returns (uint) { + var r = nextRand(seed); + if (r >= 2^177) + return right100(r); + return left100(r); + } + + function left99(uint seed) returns (uint) { + var r = nextRand(nextRand(seed)); + if (r >= 2^177) + return left100(r); + return right100(r); + } + diff --git a/ManyFunctionsGenerator.py b/ManyFunctionsGenerator.py new file mode 100644 index 000000000..93eef784c --- /dev/null +++ b/ManyFunctionsGenerator.py @@ -0,0 +1,24 @@ + +n = 100 + +splitNumBegin = 128 - (n / 2) +i = 1 + +template = """ + function right{0}(uint seed) returns (uint) {{ + var r = nextRand(seed); + if (r >= 2^{2}) + return right{1}(r); + return left{1}(r); + }} + + function left{0}(uint seed) returns (uint) {{ + var r = nextRand(nextRand(seed)); + if (r >= 2^{2}) + return left{1}(r); + return right{1}(r); + }} +""" + +for i in range(1, n): + print template.format(i, i + 1, i + splitNumBegin) \ No newline at end of file diff --git a/vmPerformanceTestFiller.json b/vmPerformanceTestFiller.json index 3292916ec..eab8a2240 100644 --- a/vmPerformanceTestFiller.json +++ b/vmPerformanceTestFiller.json @@ -1,4 +1,33 @@ { + "manyFunctions100": { + "env" : { + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6", + "currentNumber" : "0", + "currentGasLimit" : "100000000000", + "currentDifficulty" : "256", + "currentTimestamp" : "1", + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" + }, + "pre" : { + "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "1000000000000000000", + "nonce" : "0", + "//" : "ManyFunctions.sol", + "code" : "0x60e060020a60003504806301f99ad7146108c3578063023a624a146108d857806303bdecf5146108ed57806305fe035f14610902578063082d8f4914610917578063090bf3b71461092c5780630bd9c534146109415780630c4bfa94146109565780630e20ebe21461096b5780630f76de0d1461098057806310cfcc191461099557806313ce15a9146109aa578063140dcec4146109bf57806314d07a3e146109d45780631687f112146109e957806316eb6603146109fe578063172cf71714610a135780631bd6f59614610a285780631cdb857114610a3d5780631cf74ece14610a525780631d09ba2c14610a675780631f69aa5114610a7c578063223dcc7414610a9157806325e524d314610aa6578063261de7c414610abb5780632632924d14610ad05780632909cc5d14610ae55780632981699814610afa5780632a85a45d14610b0f5780632ca36da014610b245780632cbf1f0d14610b395780632d0f557314610b4e5780632d97867814610b6357806331db9efd14610b7857806332064db714610b8d57806332931fbb14610ba2578063355f51a014610bb7578063361bb34014610bcc578063364ddb0e14610be15780633792a01814610bf657806338c68f8f14610c0b57806338e586fd14610c20578063392d42ae14610c3557806339a87bd914610c4a5780633a95a33214610c5f5780633b8ecdf914610c745780633cf0659a14610c895780633eaf992314610c9e5780633fe97ead14610cb35780633ff11c8b14610cc8578063404efc5314610cdd578063407fce7b14610cf257806340c3b18714610d07578063440208c314610d1c57806344e86b2f14610d31578063455df57914610d465780634689ab4d14610d5b57806346be2e0c14610d70578063487cd86f14610d8557806348e6178214610d9a57806349d4a34414610daf5780634a0f597414610dc45780634bc24ec514610dd95780634c2fe45614610dee5780634cc885d414610e035780634eaaad7b14610e185780634eb166af14610e2d5780635050093414610e42578063506bff1114610e57578063508762c114610e6c578063526938f814610e8157806354400c6014610e96578063559510d814610eab57806355a5f70214610ec057806356ca528f14610ed5578063570a2a1614610eea5780635dab2e0f14610eff5780635dca53d314610f1457806362017ebc14610f29578063621a25f814610f3e578063626d4a3614610f5357806362b6a28214610f6857806364faf22c14610f7d57806366d7ffde14610f9257806367b886e814610fa757806367e902c714610fbc57806369d7774014610fd15780636b7ae8e614610fe65780636c3b659114610ffb5780636e54181e146110105780636e978d91146110255780636f63d2ec1461103a578063706332d11461104f57806370ac4bb9146110645780637138ef521461107957806371dd46a91461108e57806372a7c229146110a35780637376fc8d146110b8578063738a2679146110cd57806374552650146110e2578063746fc8d0146110f757806379254bb81461110c5780637adaa3f8146111215780637e4eb35b14611136578063885ec18e1461114b5780638b9ff6b6146111605780638ce113dc146111755780638defbc5e1461118a5780638f4613d51461119f5780638fdc24ba146111b45780639002dba4146111c957806391d15735146111de57806391d43b23146111f357806393b14daa1461120857806394d63afd1461121d57806395805dad1461123257806396f68782146112475780639740e4a21461125c578063981290131461127157806399a3f0e8146112865780639acb1ad41461129b5780639be07908146112b05780639c15be0b146112c55780639d451c4d146112da5780639d8ee943146112ef5780639ef6ca0f14611304578063a0db0a2214611319578063a18e2eb91461132e578063a408384914611343578063a57544da14611358578063a5a83e4d1461136d578063a6843f3414611382578063a6dacdd714611397578063a8c4c8bc146113ac578063aa058a73146113c1578063aad62da2146113d6578063aaf3e4f4146113eb578063ab81e77314611400578063abc93aee14611415578063abde33f71461142a578063b114b96c1461143f578063b3df873714611454578063b4174cb014611469578063b5d02a561461147e578063b731e84814611493578063b7b96723146114a8578063bbcded7a146114bd578063bbececa9146114d2578063beca7440146114e7578063bf8981c0146114fc578063c028c67414611511578063c2385fa614611526578063c319a02c1461153b578063c569bae014611550578063c6715f8114611565578063c7b98dec1461157a578063c9acab841461158f578063ca9efc73146115a4578063cad80024146115b9578063cdadb0fa146115ce578063cdbdf391146115e3578063cf460fa5146115f8578063cf69318a1461160d578063d1835b8c14611622578063d353a1cb14611637578063d3e141e01461164c578063d5ec7e1d14611661578063d7ead1de14611676578063d90b02aa1461168b578063d959e244146116a0578063d9e68b44146116b5578063daacb24f146116ca578063dc12a805146116df578063dd946033146116f4578063dda5142414611709578063de6612171461171e578063dfb9560c14611733578063e03827d214611748578063e21720001461175d578063e2c718d814611772578063e3da539914611787578063e48e603f1461179c578063e5f9ec29146117b1578063e6c0459a146117c6578063e70addec146117db578063e7a01215146117f0578063ea7f4d2714611805578063ebb6c59f1461181a578063ed6302be1461182f578063ed64b36b14611844578063eecd278914611859578063f0ed14e01461186e578063f0f2134414611883578063f1e328f914611898578063f1e6f4cd146118ad578063f32fe995146118c2578063f75165c6146118d7578063f7ed71d0146118ec578063f80f44f314611901578063f8bc050514611916578063fbd3c51a1461192b578063fd72009014611940578063fed3a3001461195557005b6108ce600435611e83565b8060005260206000f35b6108e3600435611f50565b8060005260206000f35b6108f8600435613deb565b8060005260206000f35b61090d6004356119e8565b8060005260206000f35b610922600435612f82565b8060005260206000f35b6109376004356128fb565b8060005260206000f35b61094c60043561304f565b8060005260206000f35b61096160043561209b565b8060005260206000f35b610976600435614c0d565b8060005260206000f35b61098b60043561319a565b8060005260206000f35b6109a06004356122b3565b8060005260206000f35b6109b5600435613d1e565b8060005260206000f35b6109ca600435612598565b8060005260206000f35b6109df600435612875565b8060005260206000f35b6109f4600435613650565b8060005260206000f35b610a096004356133f9565b8060005260206000f35b610a1e6004356136d6565b8060005260206000f35b610a3360043561371d565b8060005260206000f35b610a48600435611ad9565b8060005260206000f35b610a5d60043561375c565b8060005260206000f35b610a72600435612168565b8060005260206000f35b610a8760043561425a565b8060005260206000f35b610a9c600435612121565b8060005260206000f35b610ab1600435611dbe565b8060005260206000f35b610ac6600435612b13565b8060005260206000f35b610adb600435612981565b8060005260206000f35b610af060043561222d565b8060005260206000f35b610b05600435613ac7565b8060005260206000f35b610b1a600435612db1565b8060005260206000f35b610b2f600435612e76565b8060005260206000f35b610b44600435613a80565b8060005260206000f35b610b59600435612c1f565b8060005260206000f35b610b6e6004356125d7565b8060005260206000f35b610b836004356147dd565b8060005260206000f35b610b98600435612445565b8060005260206000f35b610bad600435611a53565b8060005260206000f35b610bc2600435613373565b8060005260206000f35b610bd760043561332c565b8060005260206000f35b610bec600435613544565b8060005260206000f35b610c01600435611dfd565b8060005260206000f35b610c166004356145c5565b8060005260206000f35b610c2b600435611c2c565b8060005260206000f35b610c40600435612df0565b8060005260206000f35b610c55600435612a46565b8060005260206000f35b610c6a6004356137e2565b8060005260206000f35b610c7f600435611b20565b8060005260206000f35b610c946004356126a4565b8060005260206000f35b610ca9600435613d65565b8060005260206000f35b610cbe6004356133b2565b8060005260206000f35b610cd360043561464b565b8060005260206000f35b610ce8600435612769565b8060005260206000f35b610cfd600435612015565b8060005260206000f35b610d12600435612d6a565b8060005260206000f35b610d27600435611fd6565b8060005260206000f35b610d3c600435613f36565b8060005260206000f35b610d51600435614604565b8060005260206000f35b610d6660043561248c565b8060005260206000f35b610d7b600435612acc565b8060005260206000f35b610d90600435612b99565b8060005260206000f35b610da5600435611be5565b8060005260206000f35b610dba6004356129c8565b8060005260206000f35b610dcf6004356127ef565b8060005260206000f35b610de46004356139bb565b8060005260206000f35b610df9600435614b01565b8060005260206000f35b610e0e600435613bd3565b8060005260206000f35b610e23600435613fbc565b8060005260206000f35b610e38600435614003565b8060005260206000f35b610e4d600435612836565b8060005260206000f35b610e62600435611d77565b8060005260206000f35b610e77600435611eca565b8060005260206000f35b610e8c600435612c5e565b8060005260206000f35b610ea1600435612380565b8060005260206000f35b610eb66004356135ca565b8060005260206000f35b610ecb60043561315b565b8060005260206000f35b610ee06004356122fa565b8060005260206000f35b610ef560043561358b565b8060005260206000f35b610f0a6004356144f8565b8060005260206000f35b610f1f600435612942565b8060005260206000f35b610f34600435613220565b8060005260206000f35b610f49600435613c59565b8060005260206000f35b610f5e600435613697565b8060005260206000f35b610f73600435613008565b8060005260206000f35b610f88600435612339565b8060005260206000f35b610f9d60043561265d565b8060005260206000f35b610fb2600435614cd2565b8060005260206000f35b610fc76004356149f5565b8060005260206000f35b610fdc600435614a34565b8060005260206000f35b610ff16004356140c8565b8060005260206000f35b61100660043561453f565b8060005260206000f35b61101b60043561410f565b8060005260206000f35b6110306004356148e9565b8060005260206000f35b611045600435613c98565b8060005260206000f35b61105a6004356131e1565b8060005260206000f35b61106f600435612a8d565b8060005260206000f35b611084600435611e44565b8060005260206000f35b6110996004356123bf565b8060005260206000f35b6110ae600435612f43565b8060005260206000f35b6110c3600435613cdf565b8060005260206000f35b6110d860043561468a565b8060005260206000f35b6110ed600435614bc6565b8060005260206000f35b611102600435613267565b8060005260206000f35b6111176004356128bc565b8060005260206000f35b61112c600435612e37565b8060005260206000f35b61114160043561308e565b8060005260206000f35b611156600435611cf1565b8060005260206000f35b61116b6004356149ae565b8060005260206000f35b611180600435613935565b8060005260206000f35b611195600435612a07565b8060005260206000f35b6111aa600435611f09565b8060005260206000f35b6111bf600435614b40565b8060005260206000f35b6111d4600435612274565b8060005260206000f35b6111e9600435611f8f565b8060005260206000f35b6111fe600435614195565b8060005260206000f35b6112136004356120e2565b8060005260206000f35b611228600435611b5f565b8060005260206000f35b61123d60043561196a565b8060005260206000f35b611252600435613a41565b8060005260206000f35b611267600435614796565b8060005260206000f35b61127c6004356132a6565b8060005260206000f35b611291600435613e71565b8060005260206000f35b6112a6600435612d2b565b8060005260206000f35b6112bb600435614366565b8060005260206000f35b6112d0600435613c12565b8060005260206000f35b6112e560043561421b565b8060005260206000f35b6112fa600435613ef7565b8060005260206000f35b61130f600435612b52565b8060005260206000f35b611324600435611ba6565b8060005260206000f35b611339600435613e2a565b8060005260206000f35b61134e6004356130d5565b8060005260206000f35b611363600435612ca5565b8060005260206000f35b61137860043561496f565b8060005260206000f35b61138d6004356132ed565b8060005260206000f35b6113a26004356138af565b8060005260206000f35b6113b7600435613b4d565b8060005260206000f35b6113cc600435611cb2565b8060005260206000f35b6113e16004356148a2565b8060005260206000f35b6113f660043561481c565b8060005260206000f35b61140b6004356139fa565b8060005260206000f35b611420600435613b8c565b8060005260206000f35b61143560043561272a565b8060005260206000f35b61144a600435614d9f565b8060005260206000f35b61145f600435613438565b8060005260206000f35b61147460043561347f565b8060005260206000f35b6114896004356119b3565b8060005260206000f35b61149e600435614aba565b8060005260206000f35b6114b3600435611d38565b8060005260206000f35b6114c8600435614042565b8060005260206000f35b6114dd6004356142e0565b8060005260206000f35b6114f2600435613505565b8060005260206000f35b611507600435612ce4565b8060005260206000f35b61151c6004356144b9565b8060005260206000f35b6115316004356142a1565b8060005260206000f35b611546600435614d19565b8060005260206000f35b61155b600435614a7b565b8060005260206000f35b611570600435613114565b8060005260206000f35b611585600435611a14565b8060005260206000f35b61159a6004356138ee565b8060005260206000f35b6115af600435614472565b8060005260206000f35b6115c4600435613868565b8060005260206000f35b6115d9600435613829565b8060005260206000f35b6115ee600435612bd8565b8060005260206000f35b6116036004356121ee565b8060005260206000f35b611618600435613974565b8060005260206000f35b61162d6004356124cb565b8060005260206000f35b6116426004356119a9565b8060005260206000f35b611657600435611c6b565b8060005260206000f35b61166c600435612551565b8060005260206000f35b611681600435614089565b8060005260206000f35b6116966004356143ec565b8060005260206000f35b6116ab6004356126e3565b8060005260206000f35b6116c06004356119fa565b8060005260206000f35b6116d5600435612fc9565b8060005260206000f35b6116ea6004356137a3565b8060005260206000f35b6116ff600435614433565b8060005260206000f35b6117146004356143ad565b8060005260206000f35b61172960043561414e565b8060005260206000f35b61173e60043561261e565b8060005260206000f35b611753600435613eb0565b8060005260206000f35b611768600435613b06565b8060005260206000f35b61177d600435612406565b8060005260206000f35b611792600435614928565b8060005260206000f35b6117a7600435613611565b8060005260206000f35b6117bc6004356134be565b8060005260206000f35b6117d1600435614327565b8060005260206000f35b6117e6600435614757565b8060005260206000f35b6117fb600435611a9a565b8060005260206000f35b61181060043561205c565b8060005260206000f35b611825600435613f7d565b8060005260206000f35b61183a600435614d58565b8060005260206000f35b61184f6004356121a7565b8060005260206000f35b611864600435614710565b8060005260206000f35b611879600435614b87565b8060005260206000f35b61188e6004356127b0565b8060005260206000f35b6118a3600435613da4565b8060005260206000f35b6118b8600435612ebd565b8060005260206000f35b6118cd600435614c4c565b8060005260206000f35b6118e2600435612512565b8060005260206000f35b6118f7600435612efc565b8060005260206000f35b61190c600435614c93565b8060005260206000f35b6119216004356141d4565b8060005260206000f35b61193660043561457e565b8060005260206000f35b61194b6004356146d1565b8060005260206000f35b611960600435614863565b8060005260206000f35b60006000611977836119b3565b9050604c81101561198757611997565b61199081611a53565b91506119a3565b6119a081611a14565b91505b50919050565b6000819050919050565b600060007f5851f42d4c957f2c0000000000000000000000000000000000000000000000019050828102600101915050919050565b60006119f3826119a9565b9050919050565b6000611a0d611a08836119b3565b6119a9565b9050919050565b60006000611a21836119b3565b9050604d811015611a3157611a41565b611a3a81611a9a565b9150611a4d565b611a4a81611ad9565b91505b50919050565b60006000611a68611a63846119b3565b6119b3565b9050604d811015611a7857611a88565b611a8181611ad9565b9150611a94565b611a9181611a9a565b91505b50919050565b60006000611aa7836119b3565b90506052811015611ab757611ac7565b611ac081611b20565b9150611ad3565b611ad081611b5f565b91505b50919050565b60006000611aee611ae9846119b3565b6119b3565b90506052811015611afe57611b0e565b611b0781611b5f565b9150611b1a565b611b1781611b20565b91505b50919050565b60006000611b2d836119b3565b90506053811015611b3d57611b4d565b611b4681611ba6565b9150611b59565b611b5681611be5565b91505b50919050565b60006000611b74611b6f846119b3565b6119b3565b90506053811015611b8457611b94565b611b8d81611be5565b9150611ba0565b611b9d81611ba6565b91505b50919050565b60006000611bb3836119b3565b90506050811015611bc357611bd3565b611bcc81611c2c565b9150611bdf565b611bdc81611c6b565b91505b50919050565b60006000611bfa611bf5846119b3565b6119b3565b90506050811015611c0a57611c1a565b611c1381611c6b565b9150611c26565b611c2381611c2c565b91505b50919050565b60006000611c39836119b3565b90506051811015611c4957611c59565b611c5281611cb2565b9150611c65565b611c6281611cf1565b91505b50919050565b60006000611c80611c7b846119b3565b6119b3565b90506051811015611c9057611ca0565b611c9981611cf1565b9150611cac565b611ca981611cb2565b91505b50919050565b60006000611cbf836119b3565b90506056811015611ccf57611cdf565b611cd881611d38565b9150611ceb565b611ce881611d77565b91505b50919050565b60006000611d06611d01846119b3565b6119b3565b90506056811015611d1657611d26565b611d1f81611d77565b9150611d32565b611d2f81611d38565b91505b50919050565b60006000611d45836119b3565b90506057811015611d5557611d65565b611d5e81611dbe565b9150611d71565b611d6e81611dfd565b91505b50919050565b60006000611d8c611d87846119b3565b6119b3565b90506057811015611d9c57611dac565b611da581611dfd565b9150611db8565b611db581611dbe565b91505b50919050565b60006000611dcb836119b3565b90506054811015611ddb57611deb565b611de481611e44565b9150611df7565b611df481611e83565b91505b50919050565b60006000611e12611e0d846119b3565b6119b3565b90506054811015611e2257611e32565b611e2b81611e83565b9150611e3e565b611e3b81611e44565b91505b50919050565b60006000611e51836119b3565b90506055811015611e6157611e71565b611e6a81611eca565b9150611e7d565b611e7a81611f09565b91505b50919050565b60006000611e98611e93846119b3565b6119b3565b90506055811015611ea857611eb8565b611eb181611f09565b9150611ec4565b611ec181611eca565b91505b50919050565b60006000611ed7836119b3565b9050605a811015611ee757611ef7565b611ef081611f50565b9150611f03565b611f0081611f8f565b91505b50919050565b60006000611f1e611f19846119b3565b6119b3565b9050605a811015611f2e57611f3e565b611f3781611f8f565b9150611f4a565b611f4781611f50565b91505b50919050565b60006000611f5d836119b3565b9050605b811015611f6d57611f7d565b611f7681611fd6565b9150611f89565b611f8681612015565b91505b50919050565b60006000611fa4611f9f846119b3565b6119b3565b9050605b811015611fb457611fc4565b611fbd81612015565b9150611fd0565b611fcd81611fd6565b91505b50919050565b60006000611fe3836119b3565b90506058811015611ff357612003565b611ffc8161205c565b915061200f565b61200c8161209b565b91505b50919050565b6000600061202a612025846119b3565b6119b3565b9050605881101561203a5761204a565b6120438161209b565b9150612056565b6120538161205c565b91505b50919050565b60006000612069836119b3565b9050605981101561207957612089565b612082816120e2565b9150612095565b61209281612121565b91505b50919050565b600060006120b06120ab846119b3565b6119b3565b905060598110156120c0576120d0565b6120c981612121565b91506120dc565b6120d9816120e2565b91505b50919050565b600060006120ef836119b3565b9050605e8110156120ff5761210f565b61210881612168565b915061211b565b612118816121a7565b91505b50919050565b60006000612136612131846119b3565b6119b3565b9050605e81101561214657612156565b61214f816121a7565b9150612162565b61215f81612168565b91505b50919050565b60006000612175836119b3565b9050605f81101561218557612195565b61218e816121ee565b91506121a1565b61219e8161222d565b91505b50919050565b600060006121bc6121b7846119b3565b6119b3565b9050605f8110156121cc576121dc565b6121d58161222d565b91506121e8565b6121e5816121ee565b91505b50919050565b600060006121fb836119b3565b9050605c81101561220b5761221b565b61221481612274565b9150612227565b612224816122b3565b91505b50919050565b6000600061224261223d846119b3565b6119b3565b9050605c81101561225257612262565b61225b816122b3565b915061226e565b61226b81612274565b91505b50919050565b60006000612281836119b3565b9050605d811015612291576122a1565b61229a816122fa565b91506122ad565b6122aa81612339565b91505b50919050565b600060006122c86122c3846119b3565b6119b3565b9050605d8110156122d8576122e8565b6122e181612339565b91506122f4565b6122f1816122fa565b91505b50919050565b60006000612307836119b3565b9050606281101561231757612327565b61232081612380565b9150612333565b612330816123bf565b91505b50919050565b6000600061234e612349846119b3565b6119b3565b9050606281101561235e5761236e565b612367816123bf565b915061237a565b61237781612380565b91505b50919050565b6000600061238d836119b3565b9050606381101561239d576123ad565b6123a681612406565b91506123b9565b6123b681612445565b91505b50919050565b600060006123d46123cf846119b3565b6119b3565b905060638110156123e4576123f4565b6123ed81612445565b9150612400565b6123fd81612406565b91505b50919050565b60006000612413836119b3565b9050606081101561242357612433565b61242c8161248c565b915061243f565b61243c816124cb565b91505b50919050565b6000600061245a612455846119b3565b6119b3565b9050606081101561246a5761247a565b612473816124cb565b9150612486565b6124838161248c565b91505b50919050565b60006000612499836119b3565b905060618110156124a9576124b9565b6124b281612512565b91506124c5565b6124c281612551565b91505b50919050565b600060006124e06124db846119b3565b6119b3565b905060618110156124f057612500565b6124f981612551565b915061250c565b61250981612512565b91505b50919050565b6000600061251f836119b3565b9050606681101561252f5761253f565b61253881612598565b915061254b565b612548816125d7565b91505b50919050565b60006000612566612561846119b3565b6119b3565b9050606681101561257657612586565b61257f816125d7565b9150612592565b61258f81612598565b91505b50919050565b600060006125a5836119b3565b905060678110156125b5576125c5565b6125be8161261e565b91506125d1565b6125ce8161265d565b91505b50919050565b600060006125ec6125e7846119b3565b6119b3565b905060678110156125fc5761260c565b6126058161265d565b9150612618565b6126158161261e565b91505b50919050565b6000600061262b836119b3565b9050606481101561263b5761264b565b612644816126a4565b9150612657565b612654816126e3565b91505b50919050565b6000600061267261266d846119b3565b6119b3565b9050606481101561268257612692565b61268b816126e3565b915061269e565b61269b816126a4565b91505b50919050565b600060006126b1836119b3565b905060658110156126c1576126d1565b6126ca8161272a565b91506126dd565b6126da81612769565b91505b50919050565b600060006126f86126f3846119b3565b6119b3565b9050606581101561270857612718565b61271181612769565b9150612724565b6127218161272a565b91505b50919050565b60006000612737836119b3565b9050606a81101561274757612757565b612750816127b0565b9150612763565b612760816127ef565b91505b50919050565b6000600061277e612779846119b3565b6119b3565b9050606a81101561278e5761279e565b612797816127ef565b91506127aa565b6127a7816127b0565b91505b50919050565b600060006127bd836119b3565b9050606b8110156127cd576127dd565b6127d681612836565b91506127e9565b6127e681612875565b91505b50919050565b600060006128046127ff846119b3565b6119b3565b9050606b81101561281457612824565b61281d81612875565b9150612830565b61282d81612836565b91505b50919050565b60006000612843836119b3565b9050606881101561285357612863565b61285c816128bc565b915061286f565b61286c816128fb565b91505b50919050565b6000600061288a612885846119b3565b6119b3565b9050606881101561289a576128aa565b6128a3816128fb565b91506128b6565b6128b3816128bc565b91505b50919050565b600060006128c9836119b3565b905060698110156128d9576128e9565b6128e281612942565b91506128f5565b6128f281612981565b91505b50919050565b6000600061291061290b846119b3565b6119b3565b9050606981101561292057612930565b61292981612981565b915061293c565b61293981612942565b91505b50919050565b6000600061294f836119b3565b9050606e81101561295f5761296f565b61296881612a07565b915061297b565b61297881612a46565b91505b50919050565b60006000612996612991846119b3565b6119b3565b9050606e8110156129a6576129b6565b6129af81612a46565b91506129c2565b6129bf81612a07565b91505b50919050565b600060006129d5836119b3565b905060b38110156129e5576129f5565b6129ee816119e8565b9150612a01565b6129fe816119fa565b91505b50919050565b60006000612a14836119b3565b9050606f811015612a2457612a34565b612a2d81612a8d565b9150612a40565b612a3d81612acc565b91505b50919050565b60006000612a5b612a56846119b3565b6119b3565b9050606f811015612a6b57612a7b565b612a7481612acc565b9150612a87565b612a8481612a8d565b91505b50919050565b60006000612a9a836119b3565b9050606c811015612aaa57612aba565b612ab381612b13565b9150612ac6565b612ac381612b52565b91505b50919050565b60006000612ae1612adc846119b3565b6119b3565b9050606c811015612af157612b01565b612afa81612b52565b9150612b0d565b612b0a81612b13565b91505b50919050565b60006000612b20836119b3565b9050606d811015612b3057612b40565b612b3981612b99565b9150612b4c565b612b4981612bd8565b91505b50919050565b60006000612b67612b62846119b3565b6119b3565b9050606d811015612b7757612b87565b612b8081612bd8565b9150612b93565b612b9081612b99565b91505b50919050565b60006000612ba6836119b3565b90506072811015612bb657612bc6565b612bbf81612c1f565b9150612bd2565b612bcf81612c5e565b91505b50919050565b60006000612bed612be8846119b3565b6119b3565b90506072811015612bfd57612c0d565b612c0681612c5e565b9150612c19565b612c1681612c1f565b91505b50919050565b60006000612c2c836119b3565b90506073811015612c3c57612c4c565b612c4581612ca5565b9150612c58565b612c5581612ce4565b91505b50919050565b60006000612c73612c6e846119b3565b6119b3565b90506073811015612c8357612c93565b612c8c81612ce4565b9150612c9f565b612c9c81612ca5565b91505b50919050565b60006000612cb2836119b3565b90506070811015612cc257612cd2565b612ccb81612d2b565b9150612cde565b612cdb81612d6a565b91505b50919050565b60006000612cf9612cf4846119b3565b6119b3565b90506070811015612d0957612d19565b612d1281612d6a565b9150612d25565b612d2281612d2b565b91505b50919050565b60006000612d38836119b3565b90506071811015612d4857612d58565b612d5181612db1565b9150612d64565b612d6181612df0565b91505b50919050565b60006000612d7f612d7a846119b3565b6119b3565b90506071811015612d8f57612d9f565b612d9881612df0565b9150612dab565b612da881612db1565b91505b50919050565b60006000612dbe836119b3565b90506076811015612dce57612dde565b612dd781612e37565b9150612dea565b612de781612e76565b91505b50919050565b60006000612e05612e00846119b3565b6119b3565b90506076811015612e1557612e25565b612e1e81612e76565b9150612e31565b612e2e81612e37565b91505b50919050565b60006000612e44836119b3565b90506077811015612e5457612e64565b612e5d81612ebd565b9150612e70565b612e6d81612efc565b91505b50919050565b60006000612e8b612e86846119b3565b6119b3565b90506077811015612e9b57612eab565b612ea481612efc565b9150612eb7565b612eb481612ebd565b91505b50919050565b60006000612eca836119b3565b90506074811015612eda57612eea565b612ee381612f43565b9150612ef6565b612ef381612f82565b91505b50919050565b60006000612f11612f0c846119b3565b6119b3565b90506074811015612f2157612f31565b612f2a81612f82565b9150612f3d565b612f3a81612f43565b91505b50919050565b60006000612f50836119b3565b90506075811015612f6057612f70565b612f6981612fc9565b9150612f7c565b612f7981613008565b91505b50919050565b60006000612f97612f92846119b3565b6119b3565b90506075811015612fa757612fb7565b612fb081613008565b9150612fc3565b612fc081612fc9565b91505b50919050565b60006000612fd6836119b3565b9050607a811015612fe657612ff6565b612fef8161304f565b9150613002565b612fff8161308e565b91505b50919050565b6000600061301d613018846119b3565b6119b3565b9050607a81101561302d5761303d565b6130368161308e565b9150613049565b6130468161304f565b91505b50919050565b6000600061305c836119b3565b9050607b81101561306c5761307c565b613075816130d5565b9150613088565b61308581613114565b91505b50919050565b600060006130a361309e846119b3565b6119b3565b9050607b8110156130b3576130c3565b6130bc81613114565b91506130cf565b6130cc816130d5565b91505b50919050565b600060006130e2836119b3565b905060788110156130f257613102565b6130fb8161315b565b915061310e565b61310b8161319a565b91505b50919050565b60006000613129613124846119b3565b6119b3565b9050607881101561313957613149565b6131428161319a565b9150613155565b6131528161315b565b91505b50919050565b60006000613168836119b3565b9050607981101561317857613188565b613181816131e1565b9150613194565b61319181613220565b91505b50919050565b600060006131af6131aa846119b3565b6119b3565b905060798110156131bf576131cf565b6131c881613220565b91506131db565b6131d8816131e1565b91505b50919050565b600060006131ee836119b3565b9050607e8110156131fe5761320e565b61320781613267565b915061321a565b613217816132a6565b91505b50919050565b60006000613235613230846119b3565b6119b3565b9050607e81101561324557613255565b61324e816132a6565b9150613261565b61325e81613267565b91505b50919050565b60006000613274836119b3565b9050607f81101561328457613294565b61328d816132ed565b91506132a0565b61329d8161332c565b91505b50919050565b600060006132bb6132b6846119b3565b6119b3565b9050607f8110156132cb576132db565b6132d48161332c565b91506132e7565b6132e4816132ed565b91505b50919050565b600060006132fa836119b3565b9050607c81101561330a5761331a565b61331381613373565b9150613326565b613323816133b2565b91505b50919050565b6000600061334161333c846119b3565b6119b3565b9050607c81101561335157613361565b61335a816133b2565b915061336d565b61336a81613373565b91505b50919050565b60006000613380836119b3565b9050607d811015613390576133a0565b613399816133f9565b91506133ac565b6133a981613438565b91505b50919050565b600060006133c76133c2846119b3565b6119b3565b9050607d8110156133d7576133e7565b6133e081613438565b91506133f3565b6133f0816133f9565b91505b50919050565b60006000613406836119b3565b9050608281101561341657613426565b61341f8161347f565b9150613432565b61342f816134be565b91505b50919050565b6000600061344d613448846119b3565b6119b3565b9050608281101561345d5761346d565b613466816134be565b9150613479565b6134768161347f565b91505b50919050565b6000600061348c836119b3565b9050608381101561349c576134ac565b6134a581613505565b91506134b8565b6134b581613544565b91505b50919050565b600060006134d36134ce846119b3565b6119b3565b905060838110156134e3576134f3565b6134ec81613544565b91506134ff565b6134fc81613505565b91505b50919050565b60006000613512836119b3565b9050608081101561352257613532565b61352b8161358b565b915061353e565b61353b816135ca565b91505b50919050565b60006000613559613554846119b3565b6119b3565b9050608081101561356957613579565b613572816135ca565b9150613585565b6135828161358b565b91505b50919050565b60006000613598836119b3565b905060818110156135a8576135b8565b6135b181613611565b91506135c4565b6135c181613650565b91505b50919050565b600060006135df6135da846119b3565b6119b3565b905060818110156135ef576135ff565b6135f881613650565b915061360b565b61360881613611565b91505b50919050565b6000600061361e836119b3565b9050608681101561362e5761363e565b61363781613697565b915061364a565b613647816136d6565b91505b50919050565b60006000613665613660846119b3565b6119b3565b9050608681101561367557613685565b61367e816136d6565b9150613691565b61368e81613697565b91505b50919050565b600060006136a4836119b3565b905060878110156136b4576136c4565b6136bd8161371d565b91506136d0565b6136cd8161375c565b91505b50919050565b600060006136eb6136e6846119b3565b6119b3565b905060878110156136fb5761370b565b6137048161375c565b9150613717565b6137148161371d565b91505b50919050565b6000600061372a836119b3565b9050608481101561373a5761374a565b613743816137a3565b9150613756565b613753816137e2565b91505b50919050565b6000600061377161376c846119b3565b6119b3565b9050608481101561378157613791565b61378a816137e2565b915061379d565b61379a816137a3565b91505b50919050565b600060006137b0836119b3565b905060858110156137c0576137d0565b6137c981613829565b91506137dc565b6137d981613868565b91505b50919050565b600060006137f76137f2846119b3565b6119b3565b9050608581101561380757613817565b61381081613868565b9150613823565b61382081613829565b91505b50919050565b60006000613836836119b3565b9050608a81101561384657613856565b61384f816138af565b9150613862565b61385f816138ee565b91505b50919050565b6000600061387d613878846119b3565b6119b3565b9050608a81101561388d5761389d565b613896816138ee565b91506138a9565b6138a6816138af565b91505b50919050565b600060006138bc836119b3565b9050608b8110156138cc576138dc565b6138d581613935565b91506138e8565b6138e581613974565b91505b50919050565b600060006139036138fe846119b3565b6119b3565b9050608b81101561391357613923565b61391c81613974565b915061392f565b61392c81613935565b91505b50919050565b60006000613942836119b3565b9050608881101561395257613962565b61395b816139bb565b915061396e565b61396b816139fa565b91505b50919050565b60006000613989613984846119b3565b6119b3565b90506088811015613999576139a9565b6139a2816139fa565b91506139b5565b6139b2816139bb565b91505b50919050565b600060006139c8836119b3565b905060898110156139d8576139e8565b6139e181613a41565b91506139f4565b6139f181613a80565b91505b50919050565b60006000613a0f613a0a846119b3565b6119b3565b90506089811015613a1f57613a2f565b613a2881613a80565b9150613a3b565b613a3881613a41565b91505b50919050565b60006000613a4e836119b3565b9050608e811015613a5e57613a6e565b613a6781613ac7565b9150613a7a565b613a7781613b06565b91505b50919050565b60006000613a95613a90846119b3565b6119b3565b9050608e811015613aa557613ab5565b613aae81613b06565b9150613ac1565b613abe81613ac7565b91505b50919050565b60006000613ad4836119b3565b9050608f811015613ae457613af4565b613aed81613b4d565b9150613b00565b613afd81613b8c565b91505b50919050565b60006000613b1b613b16846119b3565b6119b3565b9050608f811015613b2b57613b3b565b613b3481613b8c565b9150613b47565b613b4481613b4d565b91505b50919050565b60006000613b5a836119b3565b9050608c811015613b6a57613b7a565b613b7381613bd3565b9150613b86565b613b8381613c12565b91505b50919050565b60006000613ba1613b9c846119b3565b6119b3565b9050608c811015613bb157613bc1565b613bba81613c12565b9150613bcd565b613bca81613bd3565b91505b50919050565b60006000613be0836119b3565b9050608d811015613bf057613c00565b613bf981613c59565b9150613c0c565b613c0981613c98565b91505b50919050565b60006000613c27613c22846119b3565b6119b3565b9050608d811015613c3757613c47565b613c4081613c98565b9150613c53565b613c5081613c59565b91505b50919050565b60006000613c66836119b3565b90506092811015613c7657613c86565b613c7f81613cdf565b9150613c92565b613c8f81613d1e565b91505b50919050565b60006000613cad613ca8846119b3565b6119b3565b90506092811015613cbd57613ccd565b613cc681613d1e565b9150613cd9565b613cd681613cdf565b91505b50919050565b60006000613cec836119b3565b90506093811015613cfc57613d0c565b613d0581613d65565b9150613d18565b613d1581613da4565b91505b50919050565b60006000613d33613d2e846119b3565b6119b3565b90506093811015613d4357613d53565b613d4c81613da4565b9150613d5f565b613d5c81613d65565b91505b50919050565b60006000613d72836119b3565b90506090811015613d8257613d92565b613d8b81613deb565b9150613d9e565b613d9b81613e2a565b91505b50919050565b60006000613db9613db4846119b3565b6119b3565b90506090811015613dc957613dd9565b613dd281613e2a565b9150613de5565b613de281613deb565b91505b50919050565b60006000613df8836119b3565b90506091811015613e0857613e18565b613e1181613e71565b9150613e24565b613e2181613eb0565b91505b50919050565b60006000613e3f613e3a846119b3565b6119b3565b90506091811015613e4f57613e5f565b613e5881613eb0565b9150613e6b565b613e6881613e71565b91505b50919050565b60006000613e7e836119b3565b90506096811015613e8e57613e9e565b613e9781613ef7565b9150613eaa565b613ea781613f36565b91505b50919050565b60006000613ec5613ec0846119b3565b6119b3565b90506096811015613ed557613ee5565b613ede81613f36565b9150613ef1565b613eee81613ef7565b91505b50919050565b60006000613f04836119b3565b90506097811015613f1457613f24565b613f1d81613f7d565b9150613f30565b613f2d81613fbc565b91505b50919050565b60006000613f4b613f46846119b3565b6119b3565b90506097811015613f5b57613f6b565b613f6481613fbc565b9150613f77565b613f7481613f7d565b91505b50919050565b60006000613f8a836119b3565b90506094811015613f9a57613faa565b613fa381614003565b9150613fb6565b613fb381614042565b91505b50919050565b60006000613fd1613fcc846119b3565b6119b3565b90506094811015613fe157613ff1565b613fea81614042565b9150613ffd565b613ffa81614003565b91505b50919050565b60006000614010836119b3565b9050609581101561402057614030565b61402981614089565b915061403c565b614039816140c8565b91505b50919050565b60006000614057614052846119b3565b6119b3565b9050609581101561406757614077565b614070816140c8565b9150614083565b61408081614089565b91505b50919050565b60006000614096836119b3565b9050609a8110156140a6576140b6565b6140af8161410f565b91506140c2565b6140bf8161414e565b91505b50919050565b600060006140dd6140d8846119b3565b6119b3565b9050609a8110156140ed576140fd565b6140f68161414e565b9150614109565b6141068161410f565b91505b50919050565b6000600061411c836119b3565b9050609b81101561412c5761413c565b61413581614195565b9150614148565b614145816141d4565b91505b50919050565b6000600061416361415e846119b3565b6119b3565b9050609b81101561417357614183565b61417c816141d4565b915061418f565b61418c81614195565b91505b50919050565b600060006141a2836119b3565b905060988110156141b2576141c2565b6141bb8161421b565b91506141ce565b6141cb8161425a565b91505b50919050565b600060006141e96141e4846119b3565b6119b3565b905060988110156141f957614209565b6142028161425a565b9150614215565b6142128161421b565b91505b50919050565b60006000614228836119b3565b9050609981101561423857614248565b614241816142a1565b9150614254565b614251816142e0565b91505b50919050565b6000600061426f61426a846119b3565b6119b3565b9050609981101561427f5761428f565b614288816142e0565b915061429b565b614298816142a1565b91505b50919050565b600060006142ae836119b3565b9050609e8110156142be576142ce565b6142c781614327565b91506142da565b6142d781614366565b91505b50919050565b600060006142f56142f0846119b3565b6119b3565b9050609e81101561430557614315565b61430e81614366565b9150614321565b61431e81614327565b91505b50919050565b60006000614334836119b3565b9050609f81101561434457614354565b61434d816143ad565b9150614360565b61435d816143ec565b91505b50919050565b6000600061437b614376846119b3565b6119b3565b9050609f81101561438b5761439b565b614394816143ec565b91506143a7565b6143a4816143ad565b91505b50919050565b600060006143ba836119b3565b9050609c8110156143ca576143da565b6143d381614433565b91506143e6565b6143e381614472565b91505b50919050565b600060006144016143fc846119b3565b6119b3565b9050609c81101561441157614421565b61441a81614472565b915061442d565b61442a81614433565b91505b50919050565b60006000614440836119b3565b9050609d81101561445057614460565b614459816144b9565b915061446c565b614469816144f8565b91505b50919050565b60006000614487614482846119b3565b6119b3565b9050609d811015614497576144a7565b6144a0816144f8565b91506144b3565b6144b0816144b9565b91505b50919050565b600060006144c6836119b3565b905060a28110156144d6576144e6565b6144df8161453f565b91506144f2565b6144ef8161457e565b91505b50919050565b6000600061450d614508846119b3565b6119b3565b905060a281101561451d5761452d565b6145268161457e565b9150614539565b6145368161453f565b91505b50919050565b6000600061454c836119b3565b905060a381101561455c5761456c565b614565816145c5565b9150614578565b61457581614604565b91505b50919050565b6000600061459361458e846119b3565b6119b3565b905060a38110156145a3576145b3565b6145ac81614604565b91506145bf565b6145bc816145c5565b91505b50919050565b600060006145d2836119b3565b905060a08110156145e2576145f2565b6145eb8161464b565b91506145fe565b6145fb8161468a565b91505b50919050565b60006000614619614614846119b3565b6119b3565b905060a081101561462957614639565b6146328161468a565b9150614645565b6146428161464b565b91505b50919050565b60006000614658836119b3565b905060a181101561466857614678565b614671816146d1565b9150614684565b61468181614710565b91505b50919050565b6000600061469f61469a846119b3565b6119b3565b905060a18110156146af576146bf565b6146b881614710565b91506146cb565b6146c8816146d1565b91505b50919050565b600060006146de836119b3565b905060a68110156146ee576146fe565b6146f781614757565b915061470a565b61470781614796565b91505b50919050565b60006000614725614720846119b3565b6119b3565b905060a681101561473557614745565b61473e81614796565b9150614751565b61474e81614757565b91505b50919050565b60006000614764836119b3565b905060a781101561477457614784565b61477d816147dd565b9150614790565b61478d8161481c565b91505b50919050565b600060006147ab6147a6846119b3565b6119b3565b905060a78110156147bb576147cb565b6147c48161481c565b91506147d7565b6147d4816147dd565b91505b50919050565b600060006147ea836119b3565b905060a48110156147fa5761480a565b61480381614863565b9150614816565b614813816148a2565b91505b50919050565b6000600061483161482c846119b3565b6119b3565b905060a481101561484157614851565b61484a816148a2565b915061485d565b61485a81614863565b91505b50919050565b60006000614870836119b3565b905060a581101561488057614890565b614889816148e9565b915061489c565b61489981614928565b91505b50919050565b600060006148b76148b2846119b3565b6119b3565b905060a58110156148c7576148d7565b6148d081614928565b91506148e3565b6148e0816148e9565b91505b50919050565b600060006148f6836119b3565b905060aa81101561490657614916565b61490f8161496f565b9150614922565b61491f816149ae565b91505b50919050565b6000600061493d614938846119b3565b6119b3565b905060aa81101561494d5761495d565b614956816149ae565b9150614969565b6149668161496f565b91505b50919050565b6000600061497c836119b3565b905060ab81101561498c5761499c565b614995816149f5565b91506149a8565b6149a581614a34565b91505b50919050565b600060006149c36149be846119b3565b6119b3565b905060ab8110156149d3576149e3565b6149dc81614a34565b91506149ef565b6149ec816149f5565b91505b50919050565b60006000614a02836119b3565b905060a8811015614a1257614a22565b614a1b81614a7b565b9150614a2e565b614a2b81614aba565b91505b50919050565b60006000614a49614a44846119b3565b6119b3565b905060a8811015614a5957614a69565b614a6281614aba565b9150614a75565b614a7281614a7b565b91505b50919050565b60006000614a88836119b3565b905060a9811015614a9857614aa8565b614aa181614b01565b9150614ab4565b614ab181614b40565b91505b50919050565b60006000614acf614aca846119b3565b6119b3565b905060a9811015614adf57614aef565b614ae881614b40565b9150614afb565b614af881614b01565b91505b50919050565b60006000614b0e836119b3565b905060ae811015614b1e57614b2e565b614b2781614b87565b9150614b3a565b614b3781614bc6565b91505b50919050565b60006000614b55614b50846119b3565b6119b3565b905060ae811015614b6557614b75565b614b6e81614bc6565b9150614b81565b614b7e81614b87565b91505b50919050565b60006000614b94836119b3565b905060af811015614ba457614bb4565b614bad81614c0d565b9150614bc0565b614bbd81614c4c565b91505b50919050565b60006000614bdb614bd6846119b3565b6119b3565b905060af811015614beb57614bfb565b614bf481614c4c565b9150614c07565b614c0481614c0d565b91505b50919050565b60006000614c1a836119b3565b905060ac811015614c2a57614c3a565b614c3381614c93565b9150614c46565b614c4381614cd2565b91505b50919050565b60006000614c61614c5c846119b3565b6119b3565b905060ac811015614c7157614c81565b614c7a81614cd2565b9150614c8d565b614c8a81614c93565b91505b50919050565b60006000614ca0836119b3565b905060ad811015614cb057614cc0565b614cb981614d19565b9150614ccc565b614cc981614d58565b91505b50919050565b60006000614ce7614ce2846119b3565b6119b3565b905060ad811015614cf757614d07565b614d0081614d58565b9150614d13565b614d1081614d19565b91505b50919050565b60006000614d26836119b3565b905060b2811015614d3657614d46565b614d3f816129c8565b9150614d52565b614d4f81614d9f565b91505b50919050565b60006000614d6d614d68846119b3565b6119b3565b905060b2811015614d7d57614d8d565b614d8681614d9f565b9150614d99565b614d96816129c8565b91505b50919050565b60006000614db4614daf846119b3565b6119b3565b905060b3811015614dc457614dd4565b614dcd816119fa565b9150614de0565b614ddd816119e8565b91505b5091905056", + "storage": {} + } + }, + "exec" : { + "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "origin" : "cd1722f3947def4cf144679da39c4c32bdc35681", + "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", + "value" : "1000000000000000000", + "//" : "ManyFunctions.start(1)", + "data" : "0x95805DAD0000000000000000000000000000000000000000000000000000000000000001", + "gasPrice" : "100000000000000", + "gas" : "10000" + } + }, "ackermann31": { "env" : { "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",