{ "contractName": "GnosisMath", "abi": [ { "constant": true, "inputs": [], "name": "LN2", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "LOG2_E", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "ONE", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "x", "type": "int256" } ], "name": "exp", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "name": "x", "type": "uint256" } ], "name": "ln", "outputs": [ { "name": "", "type": "int256" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "name": "x", "type": "uint256" } ], "name": "floorLog2", "outputs": [ { "name": "lo", "type": "int256" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [ { "name": "nums", "type": "int256[]" } ], "name": "max", "outputs": [ { "name": "maxNum", "type": "int256" } ], "payable": false, "stateMutability": "pure", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"LN2\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"LOG2_E\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"ln\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"floorLog2\",\"outputs\":[{\"name\":\"lo\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"nums\",\"type\":\"int256[]\"}],\"name\":\"max\",\"outputs\":[{\"name\":\"maxNum\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"x\",\"type\":\"int256\"}],\"name\":\"exp\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Alan Lu - Stefan George - \",\"methods\":{\"exp(int256)\":{\"details\":\"Returns natural exponential function value of given x\",\"params\":{\"x\":\"x\"},\"return\":\"e**x\"},\"floorLog2(uint256)\":{\"details\":\"Returns base 2 logarithm value of given x\",\"params\":{\"x\":\"x\"},\"return\":\"logarithmic value\"},\"ln(uint256)\":{\"details\":\"Returns natural logarithm value of given x\",\"params\":{\"x\":\"x\"},\"return\":\"ln(x)\"},\"max(int256[])\":{\"details\":\"Returns maximum of an array\",\"params\":{\"nums\":\"Numbers to look through\"},\"return\":\"Maximum number\"}},\"title\":\"Math library - Allows calculation of logarithmic and exponential functions\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@gnosis.pm/util-contracts/contracts/Math.sol\":\"GnosisMath\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":500},\"remappings\":[]},\"sources\":{\"@gnosis.pm/util-contracts/contracts/Math.sol\":{\"keccak256\":\"0x857768cd0d460e33778dcde29e997b539640bbf37ea23832213b2e5039147ea5\",\"urls\":[\"bzzr://628f7e63a0d6a092aad389b70cc55d6d9c10cd9753f3644d5ea9dc75a3314a8e\"]}},\"version\":1}", "bytecode": "0x6107c7610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806345b8bafc1161006557806345b8bafc146100cb578063c2ee3a08146100e8578063ccc13814146100f0578063e46751e31461019357610087565b8063027806771461008c57806324902e24146100a657806324d4e90a146100ae575b600080fd5b6100946101b0565b60408051918252519081900360200190f35b6100946101bc565b610094600480360360208110156100c457600080fd5b50356101c9565b610094600480360360208110156100e157600080fd5b5035610433565b6100946104a2565b6100946004803603602081101561010657600080fd5b81019060208101813564010000000081111561012157600080fd5b82018360208201111561013357600080fd5b8035906020019184602083028401116401000000008311171561015557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506104aa945050505050565b610094600480360360208110156101a957600080fd5b503561050b565b67b17217f7d1cf79ac81565b680171547652b82fe17781565b60008082116101d757600080fd5b60006101e283610433565b90506000808212156101fc578160000384901b9050610201565b5082811c5b6000600160401b8201600160401b808403028161021a57fe5b059050806000600160401b828181800205028161023357fe5b0590506003810582019150600160401b83600160401b8584028161025357fe5b05028161025c57fe5b0590506005810582019150600160401b83600160401b8584028161027c57fe5b05028161028557fe5b0590506007810582019150600160401b83600160401b858402816102a557fe5b0502816102ae57fe5b0590506009810582019150600160401b83600160401b858402816102ce57fe5b0502816102d757fe5b059050600b810582019150600160401b83600160401b858402816102f757fe5b05028161030057fe5b059050600d810582019150600160401b83600160401b8584028161032057fe5b05028161032957fe5b059050600f810582019150600160401b83600160401b8584028161034957fe5b05028161035257fe5b0590506011810582019150600160401b83600160401b8584028161037257fe5b05028161037b57fe5b0590506013810582019150600160401b83600160401b8584028161039b57fe5b0502816103a457fe5b0590506015810582019150600160401b83600160401b858402816103c457fe5b0502816103cd57fe5b0590506017810582019150600160401b83600160401b858402816103ed57fe5b0502816103f657fe5b05905060198105919091019060028202680171547652b82fe17770010000000000000000000000000000000087020501955050505050505b919050565b603f1960c1608160011d5b8183600101121561049b576000811280156104625750600160401b8160000385901b105b8061047e57506000811215801561047e5750600160401b84821c105b1561048b5780915061048f565b8092505b5080820160011d61043e565b5050919050565b600160401b81565b6000808251116104b957600080fd5b50600160ff1b60005b825181101561050557818382815181106104d857fe5b602002602001015113156104fd578281815181106104f257fe5b602002602001015191505b6001016104c2565b50919050565b600068851591f9dd5b9b40d782131561052357600080fd5b682c5c85fdf473de6af21982121561053d5750600061042e565b67b17217f7d1cf79ac600160401b83020591506000806000841261056d575050600160401b808305908307610593565b6001600160401b8505039150600160401b846000038161058957fe5b07600160401b0390505b80600160401b8067b17217f7d1cf79ab83020401600160401b828402049150600160401b673d7f7bff058b1d5083020401600160401b828402049150600160401b670e35846b82505fc583020401600160401b828402049150600160401b670276556df749cee583020401600160401b828402049150600160401b665761ff9e299cc483020401600160401b828402049150600160401b660a184897c363c383020401600160401b828402049150600160401b65ffe5fe2c458683020401600160401b828402049150600160401b65162c0223a5c883020401600160401b828402049150600160401b6501b5253d395e83020401600160401b828402049150600160401b641e4cf5158b83020401600160401b828402049150600160401b6401e8cac73583020401600160401b828402049150600160401b631c3bd65083020401600160401b828402049150600160401b630181619383020401600160401b828402049150600160401b6213149683020401600160401b828402049150600160401b61e1b783020401600160401b828402049150600160401b6109c7830204016000841261077e576000846101000382600082121561074e57fe5b901c11156107645760001994505050505061042e565b8381600082121561077157fe5b901b94505050505061042e565b8360000381600082121561078e57fe5b901c94505050505061042e56fea165627a7a72305820d26dc8b24dd7c68e2f89fece45705ad86fdf64f8fd1558a361fec835e4ab8bfa0029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806345b8bafc1161006557806345b8bafc146100cb578063c2ee3a08146100e8578063ccc13814146100f0578063e46751e31461019357610087565b8063027806771461008c57806324902e24146100a657806324d4e90a146100ae575b600080fd5b6100946101b0565b60408051918252519081900360200190f35b6100946101bc565b610094600480360360208110156100c457600080fd5b50356101c9565b610094600480360360208110156100e157600080fd5b5035610433565b6100946104a2565b6100946004803603602081101561010657600080fd5b81019060208101813564010000000081111561012157600080fd5b82018360208201111561013357600080fd5b8035906020019184602083028401116401000000008311171561015557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506104aa945050505050565b610094600480360360208110156101a957600080fd5b503561050b565b67b17217f7d1cf79ac81565b680171547652b82fe17781565b60008082116101d757600080fd5b60006101e283610433565b90506000808212156101fc578160000384901b9050610201565b5082811c5b6000600160401b8201600160401b808403028161021a57fe5b059050806000600160401b828181800205028161023357fe5b0590506003810582019150600160401b83600160401b8584028161025357fe5b05028161025c57fe5b0590506005810582019150600160401b83600160401b8584028161027c57fe5b05028161028557fe5b0590506007810582019150600160401b83600160401b858402816102a557fe5b0502816102ae57fe5b0590506009810582019150600160401b83600160401b858402816102ce57fe5b0502816102d757fe5b059050600b810582019150600160401b83600160401b858402816102f757fe5b05028161030057fe5b059050600d810582019150600160401b83600160401b8584028161032057fe5b05028161032957fe5b059050600f810582019150600160401b83600160401b8584028161034957fe5b05028161035257fe5b0590506011810582019150600160401b83600160401b8584028161037257fe5b05028161037b57fe5b0590506013810582019150600160401b83600160401b8584028161039b57fe5b0502816103a457fe5b0590506015810582019150600160401b83600160401b858402816103c457fe5b0502816103cd57fe5b0590506017810582019150600160401b83600160401b858402816103ed57fe5b0502816103f657fe5b05905060198105919091019060028202680171547652b82fe17770010000000000000000000000000000000087020501955050505050505b919050565b603f1960c1608160011d5b8183600101121561049b576000811280156104625750600160401b8160000385901b105b8061047e57506000811215801561047e5750600160401b84821c105b1561048b5780915061048f565b8092505b5080820160011d61043e565b5050919050565b600160401b81565b6000808251116104b957600080fd5b50600160ff1b60005b825181101561050557818382815181106104d857fe5b602002602001015113156104fd578281815181106104f257fe5b602002602001015191505b6001016104c2565b50919050565b600068851591f9dd5b9b40d782131561052357600080fd5b682c5c85fdf473de6af21982121561053d5750600061042e565b67b17217f7d1cf79ac600160401b83020591506000806000841261056d575050600160401b808305908307610593565b6001600160401b8505039150600160401b846000038161058957fe5b07600160401b0390505b80600160401b8067b17217f7d1cf79ab83020401600160401b828402049150600160401b673d7f7bff058b1d5083020401600160401b828402049150600160401b670e35846b82505fc583020401600160401b828402049150600160401b670276556df749cee583020401600160401b828402049150600160401b665761ff9e299cc483020401600160401b828402049150600160401b660a184897c363c383020401600160401b828402049150600160401b65ffe5fe2c458683020401600160401b828402049150600160401b65162c0223a5c883020401600160401b828402049150600160401b6501b5253d395e83020401600160401b828402049150600160401b641e4cf5158b83020401600160401b828402049150600160401b6401e8cac73583020401600160401b828402049150600160401b631c3bd65083020401600160401b828402049150600160401b630181619383020401600160401b828402049150600160401b6213149683020401600160401b828402049150600160401b61e1b783020401600160401b828402049150600160401b6109c7830204016000841261077e576000846101000382600082121561074e57fe5b901c11156107645760001994505050505061042e565b8381600082121561077157fe5b901b94505050505061042e565b8360000381600082121561078e57fe5b901c94505050505061042e56fea165627a7a72305820d26dc8b24dd7c68e2f89fece45705ad86fdf64f8fd1558a361fec835e4ab8bfa0029", "sourceMap": "200:9220:5:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", "deployedSourceMap": "200:9220:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;356:45;;;:::i;:::-;;;;;;;;;;;;;;;;407:49;;;:::i;3474:1779::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3474:1779:5;;:::i;5367:429::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5367:429:5;;:::i;304:46::-;;;:::i;5918:221::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5918:221:5;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5918:221:5;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5918:221:5;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5918:221:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5918:221:5;;-1:-1:-1;5918:221:5;;-1:-1:-1;;;;;5918:221:5:i;610:2761::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;610:2761:5;;:::i;356:45::-;383:18;356:45;:::o;407:49::-;437:19;407:49;:::o;3474:1779::-;3515:3;3542:1;3538;:5;3530:14;;;;;;3598:9;3610:12;3620:1;3610:9;:12::i;:::-;3598:24;;3632:5;3659:1;3651:5;:9;3647:81;;;3681:5;3680:6;;3670:1;:17;;3662:26;;3647:81;;;-1:-1:-1;3711:16:5;;;3647:81;3942:8;-1:-1:-1;;;3982:1:5;:12;-1:-1:-1;;;331:19:5;3954:1;:12;3953:25;:42;;;;;;;-1:-1:-1;3953:42:5;4005:11;-1:-1:-1;;;3953:42:5;331:19;4047:11;;;:22;:29;:40;;;;;;;-1:-1:-1;4118:1:5;4047:40;4108:11;4097:22;;;;-1:-1:-1;;;4167:4:5;-1:-1:-1;;;4149:4:5;4139:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4213:1:5;4139:43;4203:11;4192:22;;;;-1:-1:-1;;;4262:4:5;-1:-1:-1;;;4244:4:5;4234:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4308:1:5;4234:43;4298:11;4287:22;;;;-1:-1:-1;;;4357:4:5;-1:-1:-1;;;4339:4:5;4329:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4403:1:5;4329:43;4393:11;4382:22;;;;-1:-1:-1;;;4452:4:5;-1:-1:-1;;;4434:4:5;4424:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4498:2:5;4424:43;4488:12;4477:23;;;;-1:-1:-1;;;4548:4:5;-1:-1:-1;;;4530:4:5;4520:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4594:2:5;4520:43;4584:12;4573:23;;;;-1:-1:-1;;;4644:4:5;-1:-1:-1;;;4626:4:5;4616:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4690:2:5;4616:43;4680:12;4669:23;;;;-1:-1:-1;;;4740:4:5;-1:-1:-1;;;4722:4:5;4712:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4786:2:5;4712:43;4776:12;4765:23;;;;-1:-1:-1;;;4836:4:5;-1:-1:-1;;;4818:4:5;4808:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4882:2:5;4808:43;4872:12;4861:23;;;;-1:-1:-1;;;4932:4:5;-1:-1:-1;;;4914:4:5;4904:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;4978:2:5;4904:43;4968:12;4957:23;;;;-1:-1:-1;;;5028:4:5;-1:-1:-1;;;5010:4:5;5000:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;5074:2:5;5000:43;5064:12;5053:23;;;;-1:-1:-1;;;5124:4:5;-1:-1:-1;;;5106:4:5;5096:7;:14;:25;;;;;;:32;:43;;;;;;;-1:-1:-1;5170:2:5;5096:43;5160:12;5149:23;;;;;5235:1;:11;;437:19;5189:29;;;:43;:57;5182:64;;;;;;;3474:1779;;;;:::o;5367:429::-;-1:-1:-1;;5460:3:5;5577:7;5589:1;5576:14;5600:190;5618:2;5608;5613:1;5608:6;5607:13;5600:190;;;5646:1;5640:3;:7;:32;;;;;-1:-1:-1;;;5662:3:5;5661:4;;5651:1;:15;;:21;5640:32;:68;;;;5683:1;5676:3;:8;;:32;;;;-1:-1:-1;;;;5688:14:5;;;:20;5676:32;5636:109;;;5715:3;5710:8;;5636:109;;;5742:3;5737:8;;5636:109;-1:-1:-1;5766:7:5;;;5778:1;5765:14;5600:190;;;5367:429;;;;;:::o;304:46::-;-1:-1:-1;;;304:46:5;:::o;5918:221::-;5971:10;6015:1;6001:4;:11;:15;5993:24;;;;;;-1:-1:-1;;;;6060:6:5;6055:77;6076:4;:11;6072:1;:15;6055:77;;;6108:6;6098:4;6103:1;6098:7;;;;;;;;;;;;;;:16;6094:38;;;6125:4;6130:1;6125:7;;;;;;;;;;;;;;6116:16;;6094:38;6089:3;;6055:77;;;;5918:221;;;:::o;610:2761::-;651:4;799:22;794:1;:27;;786:36;;;;;;-1:-1:-1;;946:1:5;:26;942:40;;;-1:-1:-1;981:1:5;974:8;;942:40;383:18;-1:-1:-1;;;1036:12:5;;:23;1032:27;;1195:9;1214:6;1239:1;1234;:6;1230:191;;-1:-1:-1;;;;;1264:12:5;;;;1299;;1230:191;;;1366:1;-1:-1:-1;;;1351:1:5;:12;:16;1343:24;;-1:-1:-1;;;1397:1:5;1396:2;;:13;;;;;;-1:-1:-1;;;1385:25:5;1381:29;;1230:191;1968:1;-1:-1:-1;;;331:19:5;2016:18;:25;;:31;2006:41;-1:-1:-1;;;2064:8:5;;;:14;;-1:-1:-1;;;;2098:18:5;:25;;:31;2088:41;-1:-1:-1;;;2146:8:5;;;:14;;-1:-1:-1;;;;2180:17:5;:24;;:30;2170:40;-1:-1:-1;;;2227:8:5;;;:14;;-1:-1:-1;;;;2261:17:5;:24;;:30;2251:40;-1:-1:-1;;;2308:8:5;;;:14;;-1:-1:-1;;;;2342:16:5;:23;;:29;2332:39;-1:-1:-1;;;2388:8:5;;;:14;;-1:-1:-1;;;;2422:15:5;:22;;:28;2412:38;-1:-1:-1;;;2467:8:5;;;:14;;-1:-1:-1;;;;2501:14:5;:21;;:27;2491:37;-1:-1:-1;;;2545:8:5;;;:14;;-1:-1:-1;;;;2579:14:5;:21;;:27;2569:37;-1:-1:-1;;;2623:8:5;;;:14;;-1:-1:-1;;;;2657:13:5;:20;;:26;2647:36;-1:-1:-1;;;2700:8:5;;;:14;;-1:-1:-1;;;;2734:12:5;:19;;:25;2724:35;-1:-1:-1;;;2776:8:5;;;:14;;-1:-1:-1;;;;2810:11:5;:18;;:24;2800:34;-1:-1:-1;;;2851:8:5;;;:14;;-1:-1:-1;;;;2885:10:5;:17;;:23;2875:33;-1:-1:-1;;;2925:8:5;;;:14;;-1:-1:-1;;;;2959:9:5;:16;;:22;2949:32;-1:-1:-1;;;2998:8:5;;;:14;;-1:-1:-1;;;;3032:8:5;:15;;:21;3022:31;-1:-1:-1;;;3070:8:5;;;:14;;-1:-1:-1;;;;3104:6:5;:13;;:19;3094:29;-1:-1:-1;;;3140:8:5;;;:14;;-1:-1:-1;;;;3174:5:5;:12;;:18;3164:28;3215:1;3206:10;;3202:162;;3262:1;3253:5;3247:3;:11;3236:6;:23;;;;;;;;;;:27;3232:54;;;-1:-1:-1;;3265:21:5;;;;;;;;3232:54;3317:5;3307:6;:15;;;;;;;;;;3300:22;;;;;;;;3202:162;3358:5;3357:6;;3346;:18;;;;;;;;;;3339:25;;;;;;;", "source": "pragma solidity ^0.5.2;\n\n/// @title Math library - Allows calculation of logarithmic and exponential functions\n/// @author Alan Lu - \n/// @author Stefan George - \nlibrary GnosisMath {\n /*\n * Constants\n */\n // This is equal to 1 in our calculations\n uint public constant ONE = 0x10000000000000000;\n uint public constant LN2 = 0xb17217f7d1cf79ac;\n uint public constant LOG2_E = 0x171547652b82fe177;\n\n /*\n * Public functions\n */\n /// @dev Returns natural exponential function value of given x\n /// @param x x\n /// @return e**x\n function exp(int x) public pure returns (uint) {\n // revert if x is > MAX_POWER, where\n // MAX_POWER = int(mp.floor(mp.log(mpf(2**256 - 1) / ONE) * ONE))\n require(x <= 2454971259878909886679);\n // return 0 if exp(x) is tiny, using\n // MIN_POWER = int(mp.floor(mp.log(mpf(1) / ONE) * ONE))\n if (x < -818323753292969962227) return 0;\n // Transform so that e^x -> 2^x\n x = x * int(ONE) / int(LN2);\n // 2^x = 2^whole(x) * 2^frac(x)\n // ^^^^^^^^^^ is a bit shift\n // so Taylor expand on z = frac(x)\n int shift;\n uint z;\n if (x >= 0) {\n shift = x / int(ONE);\n z = uint(x % int(ONE));\n } else {\n shift = x / int(ONE) - 1;\n z = ONE - uint(-x % int(ONE));\n }\n // 2^x = 1 + (ln 2) x + (ln 2)^2/2! x^2 + ...\n //\n // Can generate the z coefficients using mpmath and the following lines\n // >>> from mpmath import mp\n // >>> mp.dps = 100\n // >>> ONE = 0x10000000000000000\n // >>> print('\\n'.join(hex(int(mp.log(2)**i / mp.factorial(i) * ONE)) for i in range(1, 7)))\n // 0xb17217f7d1cf79ab\n // 0x3d7f7bff058b1d50\n // 0xe35846b82505fc5\n // 0x276556df749cee5\n // 0x5761ff9e299cc4\n // 0xa184897c363c3\n uint zpow = z;\n uint result = ONE;\n result += 0xb17217f7d1cf79ab * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x3d7f7bff058b1d50 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0xe35846b82505fc5 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x276556df749cee5 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x5761ff9e299cc4 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0xa184897c363c3 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0xffe5fe2c4586 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x162c0223a5c8 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x1b5253d395e * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x1e4cf5158b * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x1e8cac735 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x1c3bd650 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x1816193 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x131496 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0xe1b7 * zpow / ONE;\n zpow = zpow * z / ONE;\n result += 0x9c7 * zpow / ONE;\n if (shift >= 0) {\n if (result >> (256 - shift) > 0) return (2 ** 256 - 1);\n return result << shift;\n } else return result >> (-shift);\n }\n\n /// @dev Returns natural logarithm value of given x\n /// @param x x\n /// @return ln(x)\n function ln(uint x) public pure returns (int) {\n require(x > 0);\n // binary search for floor(log2(x))\n int ilog2 = floorLog2(x);\n int z;\n if (ilog2 < 0) z = int(x << uint(-ilog2));\n else z = int(x >> uint(ilog2));\n // z = x * 2^-⌊log₂x⌋\n // so 1 <= z < 2\n // and ln z = ln x - ⌊log₂x⌋/log₂e\n // so just compute ln z using artanh series\n // and calculate ln x from that\n int term = (z - int(ONE)) * int(ONE) / (z + int(ONE));\n int halflnz = term;\n int termpow = term * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 3;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 5;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 7;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 9;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 11;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 13;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 15;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 17;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 19;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 21;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 23;\n termpow = termpow * term / int(ONE) * term / int(ONE);\n halflnz += termpow / 25;\n return (ilog2 * int(ONE)) * int(ONE) / int(LOG2_E) + 2 * halflnz;\n }\n\n /// @dev Returns base 2 logarithm value of given x\n /// @param x x\n /// @return logarithmic value\n function floorLog2(uint x) public pure returns (int lo) {\n lo = -64;\n int hi = 193;\n // I use a shift here instead of / 2 because it floors instead of rounding towards 0\n int mid = (hi + lo) >> 1;\n while ((lo + 1) < hi) {\n if (mid < 0 && x << uint(-mid) < ONE || mid >= 0 && x >> uint(mid) < ONE) hi = mid;\n else lo = mid;\n mid = (hi + lo) >> 1;\n }\n }\n\n /// @dev Returns maximum of an array\n /// @param nums Numbers to look through\n /// @return Maximum number\n function max(int[] memory nums) public pure returns (int maxNum) {\n require(nums.length > 0);\n maxNum = -2 ** 255;\n for (uint i = 0; i < nums.length; i++) if (nums[i] > maxNum) maxNum = nums[i];\n }\n\n /// @dev Returns whether an add operation causes an overflow\n /// @param a First addend\n /// @param b Second addend\n /// @return Did no overflow occur?\n function safeToAdd(uint a, uint b) internal pure returns (bool) {\n return a + b >= a;\n }\n\n /// @dev Returns whether a subtraction operation causes an underflow\n /// @param a Minuend\n /// @param b Subtrahend\n /// @return Did no underflow occur?\n function safeToSub(uint a, uint b) internal pure returns (bool) {\n return a >= b;\n }\n\n /// @dev Returns whether a multiply operation causes an overflow\n /// @param a First factor\n /// @param b Second factor\n /// @return Did no overflow occur?\n function safeToMul(uint a, uint b) internal pure returns (bool) {\n return b == 0 || a * b / b == a;\n }\n\n /// @dev Returns sum if no overflow occurred\n /// @param a First addend\n /// @param b Second addend\n /// @return Sum\n function add(uint a, uint b) internal pure returns (uint) {\n require(safeToAdd(a, b));\n return a + b;\n }\n\n /// @dev Returns difference if no overflow occurred\n /// @param a Minuend\n /// @param b Subtrahend\n /// @return Difference\n function sub(uint a, uint b) internal pure returns (uint) {\n require(safeToSub(a, b));\n return a - b;\n }\n\n /// @dev Returns product if no overflow occurred\n /// @param a First factor\n /// @param b Second factor\n /// @return Product\n function mul(uint a, uint b) internal pure returns (uint) {\n require(safeToMul(a, b));\n return a * b;\n }\n\n /// @dev Returns whether an add operation causes an overflow\n /// @param a First addend\n /// @param b Second addend\n /// @return Did no overflow occur?\n function safeToAdd(int a, int b) internal pure returns (bool) {\n return (b >= 0 && a + b >= a) || (b < 0 && a + b < a);\n }\n\n /// @dev Returns whether a subtraction operation causes an underflow\n /// @param a Minuend\n /// @param b Subtrahend\n /// @return Did no underflow occur?\n function safeToSub(int a, int b) internal pure returns (bool) {\n return (b >= 0 && a - b <= a) || (b < 0 && a - b > a);\n }\n\n /// @dev Returns whether a multiply operation causes an overflow\n /// @param a First factor\n /// @param b Second factor\n /// @return Did no overflow occur?\n function safeToMul(int a, int b) internal pure returns (bool) {\n return (b == 0) || (a * b / b == a);\n }\n\n /// @dev Returns sum if no overflow occurred\n /// @param a First addend\n /// @param b Second addend\n /// @return Sum\n function add(int a, int b) internal pure returns (int) {\n require(safeToAdd(a, b));\n return a + b;\n }\n\n /// @dev Returns difference if no overflow occurred\n /// @param a Minuend\n /// @param b Subtrahend\n /// @return Difference\n function sub(int a, int b) internal pure returns (int) {\n require(safeToSub(a, b));\n return a - b;\n }\n\n /// @dev Returns product if no overflow occurred\n /// @param a First factor\n /// @param b Second factor\n /// @return Product\n function mul(int a, int b) internal pure returns (int) {\n require(safeToMul(a, b));\n return a * b;\n }\n}\n", "sourcePath": "@gnosis.pm/util-contracts/contracts/Math.sol", "ast": { "absolutePath": "@gnosis.pm/util-contracts/contracts/Math.sol", "exportedSymbols": { "GnosisMath": [ 1458 ] }, "id": 1459, "nodeType": "SourceUnit", "nodes": [ { "id": 331, "literals": [ "solidity", "^", "0.5", ".2" ], "nodeType": "PragmaDirective", "src": "0:23:5" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": "@title Math library - Allows calculation of logarithmic and exponential functions\n @author Alan Lu - \n @author Stefan George - ", "fullyImplemented": true, "id": 1458, "linearizedBaseContracts": [ 1458 ], "name": "GnosisMath", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "id": 334, "name": "ONE", "nodeType": "VariableDeclaration", "scope": 1458, "src": "304:46:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 332, "name": "uint", "nodeType": "ElementaryTypeName", "src": "304:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "30783130303030303030303030303030303030", "id": 333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "331:19:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18446744073709551616_by_1", "typeString": "int_const 18446744073709551616" }, "value": "0x10000000000000000" }, "visibility": "public" }, { "constant": true, "id": 337, "name": "LN2", "nodeType": "VariableDeclaration", "scope": 1458, "src": "356:45:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 335, "name": "uint", "nodeType": "ElementaryTypeName", "src": "356:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "307862313732313766376431636637396163", "id": 336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "383:18:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12786308645202655660_by_1", "typeString": "int_const 12786308645202655660" }, "value": "0xb17217f7d1cf79ac" }, "visibility": "public" }, { "constant": true, "id": 340, "name": "LOG2_E", "nodeType": "VariableDeclaration", "scope": 1458, "src": "407:49:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 338, "name": "uint", "nodeType": "ElementaryTypeName", "src": "407:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "30783137313534373635326238326665313737", "id": 339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "437:19:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_26613026195688644983_by_1", "typeString": "int_const 26613026195688644983" }, "value": "0x171547652b82fe177" }, "visibility": "public" }, { "body": { "id": 712, "nodeType": "Block", "src": "657:2714:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 348, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "794:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "hexValue": "32343534393731323539383738393039383836363739", "id": 349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "799:22:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2454971259878909886679_by_1", "typeString": "int_const 2454971259878909886679" }, "value": "2454971259878909886679" }, "src": "794:27:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 347, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "786:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 351, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "786:36:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 352, "nodeType": "ExpressionStatement", "src": "786:36:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 353, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "946:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 355, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "950:22:5", "subExpression": { "argumentTypes": null, "hexValue": "383138333233373533323932393639393632323237", "id": 354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "951:21:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_818323753292969962227_by_1", "typeString": "int_const 818323753292969962227" }, "value": "818323753292969962227" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_818323753292969962227_by_1", "typeString": "int_const -818323753292969962227" } }, "src": "946:26:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 359, "nodeType": "IfStatement", "src": "942:40:5", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "30", "id": 357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "981:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 346, "id": 358, "nodeType": "Return", "src": "974:8:5" } }, { "expression": { "argumentTypes": null, "id": 370, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 360, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1032:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 361, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1036:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 363, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1044:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 362, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1040:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1040:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1036:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 367, "name": "LN2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 337, "src": "1055:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 366, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1051:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1051:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1036:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1032:27:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 371, "nodeType": "ExpressionStatement", "src": "1032:27:5" }, { "assignments": [ 373 ], "declarations": [ { "constant": false, "id": 373, "name": "shift", "nodeType": "VariableDeclaration", "scope": 712, "src": "1195:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 372, "name": "int", "nodeType": "ElementaryTypeName", "src": "1195:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 374, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "1195:9:5" }, { "assignments": [ 376 ], "declarations": [ { "constant": false, "id": 376, "name": "z", "nodeType": "VariableDeclaration", "scope": 712, "src": "1214:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 375, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1214:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 377, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "1214:6:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 380, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 378, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1234:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1239:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1234:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 423, "nodeType": "Block", "src": "1329:92:5", "statements": [ { "expression": { "argumentTypes": null, "id": 408, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 400, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "1343:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 407, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 401, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1351:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 403, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1359:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 402, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1355:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1355:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1351:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 406, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1366:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "1351:16:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1343:24:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 409, "nodeType": "ExpressionStatement", "src": "1343:24:5" }, { "expression": { "argumentTypes": null, "id": 421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 410, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "1381:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 411, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1385:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 418, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "1396:2:5", "subExpression": { "argumentTypes": null, "id": 413, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1397:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 416, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1405:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1401:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1401:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1396:13:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 412, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1391:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 419, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1391:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1385:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1381:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 422, "nodeType": "ExpressionStatement", "src": "1381:29:5" } ] }, "id": 424, "nodeType": "IfStatement", "src": "1230:191:5", "trueBody": { "id": 399, "nodeType": "Block", "src": "1242:81:5", "statements": [ { "expression": { "argumentTypes": null, "id": 387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 381, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "1256:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 382, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1264:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 384, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1272:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 383, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1268:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 385, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1268:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1264:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1256:20:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 388, "nodeType": "ExpressionStatement", "src": "1256:20:5" }, { "expression": { "argumentTypes": null, "id": 397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 389, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "1290:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 391, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1299:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 393, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1307:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 392, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1303:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1303:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1299:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 390, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1294:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 396, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1294:18:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1290:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 398, "nodeType": "ExpressionStatement", "src": "1290:22:5" } ] } }, { "assignments": [ 426 ], "declarations": [ { "constant": false, "id": 426, "name": "zpow", "nodeType": "VariableDeclaration", "scope": 712, "src": "1956:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 425, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1956:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 428, "initialValue": { "argumentTypes": null, "id": 427, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "1968:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1956:13:5" }, { "assignments": [ 430 ], "declarations": [ { "constant": false, "id": 430, "name": "result", "nodeType": "VariableDeclaration", "scope": 712, "src": "1979:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 429, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1979:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 432, "initialValue": { "argumentTypes": null, "id": 431, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1993:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1979:17:5" }, { "expression": { "argumentTypes": null, "id": 439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 433, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2006:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 438, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307862313732313766376431636637396162", "id": 434, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2016:18:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12786308645202655659_by_1", "typeString": "int_const 12786308645202655659" }, "value": "0xb17217f7d1cf79ab" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 435, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2037:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2016:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 437, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2044:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2016:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2006:41:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 440, "nodeType": "ExpressionStatement", "src": "2006:41:5" }, { "expression": { "argumentTypes": null, "id": 447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 441, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2057:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 442, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2064:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 443, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2071:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2064:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 445, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2075:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2064:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2057:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 448, "nodeType": "ExpressionStatement", "src": "2057:21:5" }, { "expression": { "argumentTypes": null, "id": 455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 449, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2088:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307833643766376266663035386231643530", "id": 450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2098:18:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4431396893595737424_by_1", "typeString": "int_const 4431396893595737424" }, "value": "0x3d7f7bff058b1d50" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 451, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2119:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2098:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 453, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2126:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2098:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2088:41:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 456, "nodeType": "ExpressionStatement", "src": "2088:41:5" }, { "expression": { "argumentTypes": null, "id": 463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 457, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2139:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 458, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2146:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 459, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2153:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2146:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 461, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2157:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2146:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2139:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 464, "nodeType": "ExpressionStatement", "src": "2139:21:5" }, { "expression": { "argumentTypes": null, "id": 471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 465, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2170:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 468, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078653335383436623832353035666335", "id": 466, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2180:17:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1023870087579328453_by_1", "typeString": "int_const 1023870087579328453" }, "value": "0xe35846b82505fc5" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 467, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2200:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2180:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 469, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2207:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2180:30:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2170:40:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 472, "nodeType": "ExpressionStatement", "src": "2170:40:5" }, { "expression": { "argumentTypes": null, "id": 479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 473, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2220:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 474, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2227:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 475, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2234:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2227:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 477, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2238:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2227:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2220:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 480, "nodeType": "ExpressionStatement", "src": "2220:21:5" }, { "expression": { "argumentTypes": null, "id": 487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 481, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2251:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078323736353536646637343963656535", "id": 482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2261:17:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_177423166116318949_by_1", "typeString": "int_const 177423166116318949" }, "value": "0x276556df749cee5" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 483, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2281:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2261:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 485, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2288:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2261:30:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2251:40:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 488, "nodeType": "ExpressionStatement", "src": "2251:40:5" }, { "expression": { "argumentTypes": null, "id": 495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 489, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2301:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 490, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2308:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 491, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2315:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2308:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 493, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2319:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2308:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2301:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 496, "nodeType": "ExpressionStatement", "src": "2301:21:5" }, { "expression": { "argumentTypes": null, "id": 503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 497, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2332:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "30783537363166663965323939636334", "id": 498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2342:16:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_24596073471909060_by_1", "typeString": "int_const 24596073471909060" }, "value": "0x5761ff9e299cc4" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 499, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2361:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2342:23:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 501, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2368:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2342:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2332:39:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 504, "nodeType": "ExpressionStatement", "src": "2332:39:5" }, { "expression": { "argumentTypes": null, "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 505, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2381:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 506, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2388:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 507, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2395:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2388:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 509, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2399:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2388:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2381:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 512, "nodeType": "ExpressionStatement", "src": "2381:21:5" }, { "expression": { "argumentTypes": null, "id": 519, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 513, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2412:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307861313834383937633336336333", "id": 514, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2422:15:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2841449829983171_by_1", "typeString": "int_const 2841449829983171" }, "value": "0xa184897c363c3" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 515, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2440:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2422:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 517, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2447:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2422:28:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2412:38:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 520, "nodeType": "ExpressionStatement", "src": "2412:38:5" }, { "expression": { "argumentTypes": null, "id": 527, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 521, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2460:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 522, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2467:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 523, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2474:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2467:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 525, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2478:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2467:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2460:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 528, "nodeType": "ExpressionStatement", "src": "2460:21:5" }, { "expression": { "argumentTypes": null, "id": 535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 529, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2491:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078666665356665326334353836", "id": 530, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2501:14:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_281363276907910_by_1", "typeString": "int_const 281363276907910" }, "value": "0xffe5fe2c4586" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 531, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2518:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2501:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 533, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2525:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2501:27:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2491:37:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 536, "nodeType": "ExpressionStatement", "src": "2491:37:5" }, { "expression": { "argumentTypes": null, "id": 543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 537, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2538:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 538, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2545:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 539, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2552:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2545:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 541, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2556:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2545:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2538:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 544, "nodeType": "ExpressionStatement", "src": "2538:21:5" }, { "expression": { "argumentTypes": null, "id": 551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 545, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2569:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078313632633032323361356338", "id": 546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2579:14:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_24378270262728_by_1", "typeString": "int_const 24378270262728" }, "value": "0x162c0223a5c8" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 547, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2596:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2579:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 549, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2603:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2579:27:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2569:37:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 552, "nodeType": "ExpressionStatement", "src": "2569:37:5" }, { "expression": { "argumentTypes": null, "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 553, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2616:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 554, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2623:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 555, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2630:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2623:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 557, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2634:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2623:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2616:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 560, "nodeType": "ExpressionStatement", "src": "2616:21:5" }, { "expression": { "argumentTypes": null, "id": 567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 561, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2647:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 566, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "30783162353235336433393565", "id": 562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2657:13:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1877525477726_by_1", "typeString": "int_const 1877525477726" }, "value": "0x1b5253d395e" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 563, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2673:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2657:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 565, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2680:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2657:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2647:36:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 568, "nodeType": "ExpressionStatement", "src": "2647:36:5" }, { "expression": { "argumentTypes": null, "id": 575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 569, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2693:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 570, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2700:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 571, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2707:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2700:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 573, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2711:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2700:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2693:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 576, "nodeType": "ExpressionStatement", "src": "2693:21:5" }, { "expression": { "argumentTypes": null, "id": 583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 577, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2724:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307831653463663531353862", "id": 578, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2734:12:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_130140149131_by_1", "typeString": "int_const 130140149131" }, "value": "0x1e4cf5158b" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 579, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2749:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2734:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 581, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2756:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2734:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2724:35:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 584, "nodeType": "ExpressionStatement", "src": "2724:35:5" }, { "expression": { "argumentTypes": null, "id": 591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 585, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2769:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 586, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2776:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 587, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2783:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2776:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 589, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2787:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2776:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2769:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 592, "nodeType": "ExpressionStatement", "src": "2769:21:5" }, { "expression": { "argumentTypes": null, "id": 599, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 593, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2800:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078316538636163373335", "id": 594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2810:11:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8200570677_by_1", "typeString": "int_const 8200570677" }, "value": "0x1e8cac735" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 595, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2824:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2810:18:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 597, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2831:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2810:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2800:34:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 600, "nodeType": "ExpressionStatement", "src": "2800:34:5" }, { "expression": { "argumentTypes": null, "id": 607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 601, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2844:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 602, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2851:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 603, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2858:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2851:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 605, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2862:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2851:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2844:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 608, "nodeType": "ExpressionStatement", "src": "2844:21:5" }, { "expression": { "argumentTypes": null, "id": 615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 609, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2875:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "30783163336264363530", "id": 610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2885:10:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_473683536_by_1", "typeString": "int_const 473683536" }, "value": "0x1c3bd650" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 611, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2898:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2885:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 613, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2905:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2885:23:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2875:33:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 616, "nodeType": "ExpressionStatement", "src": "2875:33:5" }, { "expression": { "argumentTypes": null, "id": 623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 617, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2918:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 618, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2925:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 619, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2932:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2925:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 621, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2936:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2925:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2918:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 624, "nodeType": "ExpressionStatement", "src": "2918:21:5" }, { "expression": { "argumentTypes": null, "id": 631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 625, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2949:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307831383136313933", "id": 626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2959:9:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25256339_by_1", "typeString": "int_const 25256339" }, "value": "0x1816193" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 627, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2971:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2959:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 629, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2978:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2959:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2949:32:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 632, "nodeType": "ExpressionStatement", "src": "2949:32:5" }, { "expression": { "argumentTypes": null, "id": 639, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 633, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2991:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 634, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2998:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 635, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "3005:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2998:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 637, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3009:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2998:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2991:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 640, "nodeType": "ExpressionStatement", "src": "2991:21:5" }, { "expression": { "argumentTypes": null, "id": 647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 641, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3022:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078313331343936", "id": 642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3032:8:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1250454_by_1", "typeString": "int_const 1250454" }, "value": "0x131496" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 643, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3043:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3032:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 645, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3050:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3032:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3022:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 648, "nodeType": "ExpressionStatement", "src": "3022:31:5" }, { "expression": { "argumentTypes": null, "id": 655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 649, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3063:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 654, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 650, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3070:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 651, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "3077:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3070:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 653, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3081:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3070:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3063:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 656, "nodeType": "ExpressionStatement", "src": "3063:21:5" }, { "expression": { "argumentTypes": null, "id": 663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 657, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3094:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307865316237", "id": 658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3104:6:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57783_by_1", "typeString": "int_const 57783" }, "value": "0xe1b7" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 659, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3113:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3104:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 661, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3120:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3104:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3094:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 664, "nodeType": "ExpressionStatement", "src": "3094:29:5" }, { "expression": { "argumentTypes": null, "id": 671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 665, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3133:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 666, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3140:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 667, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "3147:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3140:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 669, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3151:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3140:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3133:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 672, "nodeType": "ExpressionStatement", "src": "3133:21:5" }, { "expression": { "argumentTypes": null, "id": 679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 673, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3164:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078396337", "id": 674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3174:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2503_by_1", "typeString": "int_const 2503" }, "value": "0x9c7" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 675, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3182:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3174:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 677, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3189:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3174:18:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3164:28:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 680, "nodeType": "ExpressionStatement", "src": "3164:28:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 681, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "3206:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3215:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3206:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 705, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3346:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "id": 707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "3357:6:5", "subExpression": { "argumentTypes": null, "id": 706, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "3358:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 708, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3356:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3346:18:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 346, "id": 710, "nodeType": "Return", "src": "3339:25:5" }, "id": 711, "nodeType": "IfStatement", "src": "3202:162:5", "trueBody": { "id": 704, "nodeType": "Block", "src": "3218:115:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 684, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3236:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "323536", "id": 685, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3247:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "256" }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 686, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "3253:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3247:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 688, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3246:13:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3236:23:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3262:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3236:27:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 699, "nodeType": "IfStatement", "src": "3232:54:5", "trueBody": { "expression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", "typeString": "int_const 1157...(70 digits omitted)...9935" }, "id": 696, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", "typeString": "int_const 1157...(70 digits omitted)...9936" }, "id": 694, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "32", "id": 692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3273:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "323536", "id": 693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3278:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "256" }, "src": "3273:8:5", "typeDescriptions": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", "typeString": "int_const 1157...(70 digits omitted)...9936" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 695, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3284:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3273:12:5", "typeDescriptions": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", "typeString": "int_const 1157...(70 digits omitted)...9935" } } ], "id": 697, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3272:14:5", "typeDescriptions": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", "typeString": "int_const 1157...(70 digits omitted)...9935" } }, "functionReturnParameters": 346, "id": 698, "nodeType": "Return", "src": "3265:21:5" } }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 700, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3307:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "argumentTypes": null, "id": 701, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "3317:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3307:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 346, "id": 703, "nodeType": "Return", "src": "3300:22:5" } ] } } ] }, "documentation": "@dev Returns natural exponential function value of given x\n @param x x\n @return e**x", "id": 713, "implemented": true, "kind": "function", "modifiers": [], "name": "exp", "nodeType": "FunctionDefinition", "parameters": { "id": 343, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 342, "name": "x", "nodeType": "VariableDeclaration", "scope": 713, "src": "623:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 341, "name": "int", "nodeType": "ElementaryTypeName", "src": "623:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "622:7:5" }, "returnParameters": { "id": 346, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 345, "name": "", "nodeType": "VariableDeclaration", "scope": 713, "src": "651:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 344, "name": "uint", "nodeType": "ElementaryTypeName", "src": "651:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "650:6:5" }, "scope": 1458, "src": "610:2761:5", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { "id": 1067, "nodeType": "Block", "src": "3520:1733:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 721, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 715, "src": "3538:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3542:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3538:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 720, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "3530:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3530:14:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 725, "nodeType": "ExpressionStatement", "src": "3530:14:5" }, { "assignments": [ 727 ], "declarations": [ { "constant": false, "id": 727, "name": "ilog2", "nodeType": "VariableDeclaration", "scope": 1067, "src": "3598:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 726, "name": "int", "nodeType": "ElementaryTypeName", "src": "3598:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 731, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 729, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 715, "src": "3620:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 728, "name": "floorLog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1144, "src": "3610:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$", "typeString": "function (uint256) pure returns (int256)" } }, "id": 730, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3610:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "3598:24:5" }, { "assignments": [ 733 ], "declarations": [ { "constant": false, "id": 733, "name": "z", "nodeType": "VariableDeclaration", "scope": 1067, "src": "3632:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 732, "name": "int", "nodeType": "ElementaryTypeName", "src": "3632:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 734, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "3632:5:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 737, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 735, "name": "ilog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 727, "src": "3651:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 736, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3659:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3651:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 749, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 733, "src": "3703:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 751, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 715, "src": "3711:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 753, "name": "ilog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 727, "src": "3721:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 752, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3716:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 754, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3716:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3711:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3707:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 756, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3707:21:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3703:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 758, "nodeType": "ExpressionStatement", "src": "3703:25:5" }, "id": 759, "nodeType": "IfStatement", "src": "3647:81:5", "trueBody": { "expression": { "argumentTypes": null, "id": 747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 738, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 733, "src": "3662:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 740, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 715, "src": "3670:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "3680:6:5", "subExpression": { "argumentTypes": null, "id": 742, "name": "ilog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 727, "src": "3681:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 741, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3675:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3675:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3670:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 739, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3666:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 746, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3666:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3662:26:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 748, "nodeType": "ExpressionStatement", "src": "3662:26:5" } }, { "assignments": [ 761 ], "declarations": [ { "constant": false, "id": 761, "name": "term", "nodeType": "VariableDeclaration", "scope": 1067, "src": "3942:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 760, "name": "int", "nodeType": "ElementaryTypeName", "src": "3942:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 779, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 762, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 733, "src": "3954:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 764, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3962:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 763, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3958:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 765, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3958:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3954:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 767, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3953:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 769, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3974:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 768, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3970:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3970:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3953:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 776, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 772, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 733, "src": "3982:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 774, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3990:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 773, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3986:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3986:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3982:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 777, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3981:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3953:42:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "3942:53:5" }, { "assignments": [ 781 ], "declarations": [ { "constant": false, "id": 781, "name": "halflnz", "nodeType": "VariableDeclaration", "scope": 1067, "src": "4005:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 780, "name": "int", "nodeType": "ElementaryTypeName", "src": "4005:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 783, "initialValue": { "argumentTypes": null, "id": 782, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4019:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "4005:18:5" }, { "assignments": [ 785 ], "declarations": [ { "constant": false, "id": 785, "name": "termpow", "nodeType": "VariableDeclaration", "scope": 1067, "src": "4033:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 784, "name": "int", "nodeType": "ElementaryTypeName", "src": "4033:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 799, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 786, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4047:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 787, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4054:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4047:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 790, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4065:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 789, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4061:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4061:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4047:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 793, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4072:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4047:29:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 796, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4083:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 795, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4079:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 797, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4079:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4047:40:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "4033:54:5" }, { "expression": { "argumentTypes": null, "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 800, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4097:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 801, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4108:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "33", "id": 802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4118:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "src": "4108:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4097:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 805, "nodeType": "ExpressionStatement", "src": "4097:22:5" }, { "expression": { "argumentTypes": null, "id": 820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 806, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4129:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 807, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4139:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 808, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4149:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4139:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 811, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4160:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 810, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4156:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4156:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4139:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 814, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4167:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4139:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 817, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4178:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4174:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 818, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4174:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4139:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4129:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 821, "nodeType": "ExpressionStatement", "src": "4129:53:5" }, { "expression": { "argumentTypes": null, "id": 826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 822, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4192:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 823, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4203:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "35", "id": 824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4213:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", "typeString": "int_const 5" }, "value": "5" }, "src": "4203:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4192:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 827, "nodeType": "ExpressionStatement", "src": "4192:22:5" }, { "expression": { "argumentTypes": null, "id": 842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 828, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4224:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 837, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 829, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4234:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 830, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4244:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4234:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 833, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4255:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 832, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4251:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 834, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4251:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4234:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 836, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4262:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4234:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 839, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4273:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 838, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4269:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4269:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4234:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4224:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 843, "nodeType": "ExpressionStatement", "src": "4224:53:5" }, { "expression": { "argumentTypes": null, "id": 848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 844, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4287:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 845, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4298:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "37", "id": 846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4308:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", "typeString": "int_const 7" }, "value": "7" }, "src": "4298:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4287:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 849, "nodeType": "ExpressionStatement", "src": "4287:22:5" }, { "expression": { "argumentTypes": null, "id": 864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 850, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4319:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 851, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4329:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 852, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4339:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4329:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 855, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4350:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 854, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4346:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 856, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4346:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4329:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 858, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4357:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4329:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 861, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4368:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 860, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4364:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 862, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4364:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4329:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4319:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 865, "nodeType": "ExpressionStatement", "src": "4319:53:5" }, { "expression": { "argumentTypes": null, "id": 870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 866, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4382:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 867, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4393:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "39", "id": 868, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4403:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" }, "value": "9" }, "src": "4393:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4382:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 871, "nodeType": "ExpressionStatement", "src": "4382:22:5" }, { "expression": { "argumentTypes": null, "id": 886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 872, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4414:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 881, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 875, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 873, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4424:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 874, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4434:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4424:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 877, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4445:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 876, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4441:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 878, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4441:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4424:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 880, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4452:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4424:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 883, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4463:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 882, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4459:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 884, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4459:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4424:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4414:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 887, "nodeType": "ExpressionStatement", "src": "4414:53:5" }, { "expression": { "argumentTypes": null, "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 888, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4477:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 889, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4488:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3131", "id": 890, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4498:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_11_by_1", "typeString": "int_const 11" }, "value": "11" }, "src": "4488:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4477:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 893, "nodeType": "ExpressionStatement", "src": "4477:23:5" }, { "expression": { "argumentTypes": null, "id": 908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 894, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4510:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 903, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 901, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 897, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 895, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4520:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 896, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4530:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4520:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 899, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4541:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 898, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4537:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 900, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4537:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4520:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 902, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4548:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4520:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 905, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4559:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 904, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4555:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 906, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4555:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4520:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4510:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 909, "nodeType": "ExpressionStatement", "src": "4510:53:5" }, { "expression": { "argumentTypes": null, "id": 914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 910, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4573:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 911, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4584:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3133", "id": 912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4594:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_13_by_1", "typeString": "int_const 13" }, "value": "13" }, "src": "4584:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4573:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 915, "nodeType": "ExpressionStatement", "src": "4573:23:5" }, { "expression": { "argumentTypes": null, "id": 930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 916, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4606:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 925, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 917, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4616:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 918, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4626:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4616:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 921, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4637:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 920, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4633:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4633:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4616:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 924, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4644:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4616:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 927, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4655:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 926, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4651:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4651:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4616:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4606:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 931, "nodeType": "ExpressionStatement", "src": "4606:53:5" }, { "expression": { "argumentTypes": null, "id": 936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 932, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4669:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 933, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4680:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3135", "id": 934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4690:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_15_by_1", "typeString": "int_const 15" }, "value": "15" }, "src": "4680:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4669:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 937, "nodeType": "ExpressionStatement", "src": "4669:23:5" }, { "expression": { "argumentTypes": null, "id": 952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 938, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4702:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 945, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 939, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4712:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 940, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4722:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4712:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 943, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4733:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 942, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4729:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 944, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4729:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4712:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 946, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4740:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4712:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 949, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4751:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 948, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4747:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4747:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4712:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4702:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 953, "nodeType": "ExpressionStatement", "src": "4702:53:5" }, { "expression": { "argumentTypes": null, "id": 958, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 954, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4765:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 955, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4776:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3137", "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4786:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_17_by_1", "typeString": "int_const 17" }, "value": "17" }, "src": "4776:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4765:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 959, "nodeType": "ExpressionStatement", "src": "4765:23:5" }, { "expression": { "argumentTypes": null, "id": 974, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 960, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4798:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 973, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 961, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4808:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 962, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4818:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4808:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 965, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4829:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 964, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4825:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4825:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4808:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 968, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4836:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4808:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 971, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4847:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 970, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4843:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 972, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4843:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4808:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4798:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 975, "nodeType": "ExpressionStatement", "src": "4798:53:5" }, { "expression": { "argumentTypes": null, "id": 980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 976, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4861:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 977, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4872:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3139", "id": 978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4882:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_19_by_1", "typeString": "int_const 19" }, "value": "19" }, "src": "4872:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4861:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 981, "nodeType": "ExpressionStatement", "src": "4861:23:5" }, { "expression": { "argumentTypes": null, "id": 996, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 982, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4894:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 983, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4904:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 984, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4914:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4904:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 987, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4925:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 986, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4921:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4921:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4904:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 990, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4932:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4904:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 993, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4943:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 992, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4939:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4939:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4904:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4894:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 997, "nodeType": "ExpressionStatement", "src": "4894:53:5" }, { "expression": { "argumentTypes": null, "id": 1002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 998, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4957:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 999, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4968:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3231", "id": 1000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4978:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_21_by_1", "typeString": "int_const 21" }, "value": "21" }, "src": "4968:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4957:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1003, "nodeType": "ExpressionStatement", "src": "4957:23:5" }, { "expression": { "argumentTypes": null, "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1004, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4990:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1005, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5000:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1006, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "5010:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5000:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1009, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5021:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1008, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5017:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1010, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5017:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5000:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1012, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "5028:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5000:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1015, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5039:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1014, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5035:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5035:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5000:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4990:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1019, "nodeType": "ExpressionStatement", "src": "4990:53:5" }, { "expression": { "argumentTypes": null, "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1020, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "5053:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1023, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1021, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5064:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3233", "id": 1022, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5074:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_23_by_1", "typeString": "int_const 23" }, "value": "23" }, "src": "5064:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5053:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1025, "nodeType": "ExpressionStatement", "src": "5053:23:5" }, { "expression": { "argumentTypes": null, "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1026, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5086:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1027, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5096:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1028, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "5106:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5096:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1031, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5117:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1030, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5113:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1032, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5113:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5096:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1034, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "5124:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5096:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1037, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5135:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1036, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5131:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1038, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5131:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5096:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5086:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1041, "nodeType": "ExpressionStatement", "src": "5086:53:5" }, { "expression": { "argumentTypes": null, "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1042, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "5149:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1043, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5160:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3235", "id": 1044, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5170:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", "typeString": "int_const 25" }, "value": "25" }, "src": "5160:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5149:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1047, "nodeType": "ExpressionStatement", "src": "5149:23:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1048, "name": "ilog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 727, "src": "5190:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1050, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5202:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5198:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1051, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5198:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5190:16:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 1053, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5189:18:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1055, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5214:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1054, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5210:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1056, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5210:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5189:29:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1059, "name": "LOG2_E", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 340, "src": "5225:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1058, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5221:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5221:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5189:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "32", "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5235:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1063, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "5239:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5235:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5189:57:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 719, "id": 1066, "nodeType": "Return", "src": "5182:64:5" } ] }, "documentation": "@dev Returns natural logarithm value of given x\n @param x x\n @return ln(x)", "id": 1068, "implemented": true, "kind": "function", "modifiers": [], "name": "ln", "nodeType": "FunctionDefinition", "parameters": { "id": 716, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 715, "name": "x", "nodeType": "VariableDeclaration", "scope": 1068, "src": "3486:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 714, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3486:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3485:8:5" }, "returnParameters": { "id": 719, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 718, "name": "", "nodeType": "VariableDeclaration", "scope": 1068, "src": "3515:3:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 717, "name": "int", "nodeType": "ElementaryTypeName", "src": "3515:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "3514:5:5" }, "scope": 1458, "src": "3474:1779:5", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { "id": 1143, "nodeType": "Block", "src": "5423:373:5", "statements": [ { "expression": { "argumentTypes": null, "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1075, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5433:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "5438:3:5", "subExpression": { "argumentTypes": null, "hexValue": "3634", "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5439:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_64_by_1", "typeString": "int_const -64" } }, "src": "5433:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1079, "nodeType": "ExpressionStatement", "src": "5433:8:5" }, { "assignments": [ 1081 ], "declarations": [ { "constant": false, "id": 1081, "name": "hi", "nodeType": "VariableDeclaration", "scope": 1143, "src": "5451:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1080, "name": "int", "nodeType": "ElementaryTypeName", "src": "5451:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 1083, "initialValue": { "argumentTypes": null, "hexValue": "313933", "id": 1082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5460:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_193_by_1", "typeString": "int_const 193" }, "value": "193" }, "nodeType": "VariableDeclarationStatement", "src": "5451:12:5" }, { "assignments": [ 1085 ], "declarations": [ { "constant": false, "id": 1085, "name": "mid", "nodeType": "VariableDeclaration", "scope": 1143, "src": "5566:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1084, "name": "int", "nodeType": "ElementaryTypeName", "src": "5566:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 1092, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1088, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1086, "name": "hi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1081, "src": "5577:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1087, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5582:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5577:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 1089, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5576:9:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5589:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5576:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "5566:24:5" }, { "body": { "id": 1141, "nodeType": "Block", "src": "5622:168:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1099, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5640:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5646:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5640:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1102, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1070, "src": "5651:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "5661:4:5", "subExpression": { "argumentTypes": null, "id": 1104, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5662:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1103, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5656:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 1106, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5656:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5651:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1108, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5669:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5651:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5640:32:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1111, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5676:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1112, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5683:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5676:8:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1114, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1070, "src": "5688:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1116, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5698:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1115, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5693:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5693:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5688:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1119, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5705:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5688:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5676:32:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5640:68:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "id": 1129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1127, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5737:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1128, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5742:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5737:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1130, "nodeType": "ExpressionStatement", "src": "5737:8:5" }, "id": 1131, "nodeType": "IfStatement", "src": "5636:109:5", "trueBody": { "expression": { "argumentTypes": null, "id": 1125, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1123, "name": "hi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1081, "src": "5710:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1124, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5715:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5710:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1126, "nodeType": "ExpressionStatement", "src": "5710:8:5" } }, { "expression": { "argumentTypes": null, "id": 1139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1132, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5759:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1133, "name": "hi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1081, "src": "5766:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1134, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5771:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5766:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 1136, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5765:9:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5778:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5765:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5759:20:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1140, "nodeType": "ExpressionStatement", "src": "5759:20:5" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1093, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5608:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5613:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5608:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 1096, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5607:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1097, "name": "hi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1081, "src": "5618:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5607:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1142, "nodeType": "WhileStatement", "src": "5600:190:5" } ] }, "documentation": "@dev Returns base 2 logarithm value of given x\n @param x x\n @return logarithmic value", "id": 1144, "implemented": true, "kind": "function", "modifiers": [], "name": "floorLog2", "nodeType": "FunctionDefinition", "parameters": { "id": 1071, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1070, "name": "x", "nodeType": "VariableDeclaration", "scope": 1144, "src": "5386:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1069, "name": "uint", "nodeType": "ElementaryTypeName", "src": "5386:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5385:8:5" }, "returnParameters": { "id": 1074, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1073, "name": "lo", "nodeType": "VariableDeclaration", "scope": 1144, "src": "5415:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1072, "name": "int", "nodeType": "ElementaryTypeName", "src": "5415:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "5414:8:5" }, "scope": 1458, "src": "5367:429:5", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { "id": 1190, "nodeType": "Block", "src": "5983:156:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1153, "name": "nums", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "6001:4:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, "id": 1154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6001:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1155, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6015:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6001:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1152, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "5993:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5993:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1158, "nodeType": "ExpressionStatement", "src": "5993:24:5" }, { "expression": { "argumentTypes": null, "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1159, "name": "maxNum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1150, "src": "6027:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", "typeString": "int_const -578...(70 digits omitted)...9968" }, "id": 1163, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1161, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "6036:2:5", "subExpression": { "argumentTypes": null, "hexValue": "32", "id": 1160, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6037:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_2_by_1", "typeString": "int_const -2" } }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "323535", "id": 1162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6042:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "255" }, "src": "6036:9:5", "typeDescriptions": { "typeIdentifier": "t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", "typeString": "int_const -578...(70 digits omitted)...9968" } }, "src": "6027:18:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1165, "nodeType": "ExpressionStatement", "src": "6027:18:5" }, { "body": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1177, "name": "nums", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "6098:4:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, "id": 1179, "indexExpression": { "argumentTypes": null, "id": 1178, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, "src": "6103:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6098:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 1180, "name": "maxNum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1150, "src": "6108:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "6098:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1188, "nodeType": "IfStatement", "src": "6094:38:5", "trueBody": { "expression": { "argumentTypes": null, "id": 1186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1182, "name": "maxNum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1150, "src": "6116:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1183, "name": "nums", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "6125:4:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, "id": 1185, "indexExpression": { "argumentTypes": null, "id": 1184, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, "src": "6130:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6125:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "6116:16:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1187, "nodeType": "ExpressionStatement", "src": "6116:16:5" } }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1170, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, "src": "6072:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1171, "name": "nums", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "6076:4:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6076:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6072:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1189, "initializationExpression": { "assignments": [ 1167 ], "declarations": [ { "constant": false, "id": 1167, "name": "i", "nodeType": "VariableDeclaration", "scope": 1189, "src": "6060:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1166, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6060:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1169, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 1168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6069:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "6060:10:5" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "6089:3:5", "subExpression": { "argumentTypes": null, "id": 1174, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, "src": "6089:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1176, "nodeType": "ExpressionStatement", "src": "6089:3:5" }, "nodeType": "ForStatement", "src": "6055:77:5" } ] }, "documentation": "@dev Returns maximum of an array\n @param nums Numbers to look through\n @return Maximum number", "id": 1191, "implemented": true, "kind": "function", "modifiers": [], "name": "max", "nodeType": "FunctionDefinition", "parameters": { "id": 1148, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1147, "name": "nums", "nodeType": "VariableDeclaration", "scope": 1191, "src": "5931:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 1145, "name": "int", "nodeType": "ElementaryTypeName", "src": "5931:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1146, "length": null, "nodeType": "ArrayTypeName", "src": "5931:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "value": null, "visibility": "internal" } ], "src": "5930:19:5" }, "returnParameters": { "id": 1151, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1150, "name": "maxNum", "nodeType": "VariableDeclaration", "scope": 1191, "src": "5971:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1149, "name": "int", "nodeType": "ElementaryTypeName", "src": "5971:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "5970:12:5" }, "scope": 1458, "src": "5918:221:5", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { "id": 1206, "nodeType": "Block", "src": "6374:34:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1200, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1193, "src": "6391:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1201, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1195, "src": "6395:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6391:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 1203, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1193, "src": "6400:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6391:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1199, "id": 1205, "nodeType": "Return", "src": "6384:17:5" } ] }, "documentation": "@dev Returns whether an add operation causes an overflow\n @param a First addend\n @param b Second addend\n @return Did no overflow occur?", "id": 1207, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToAdd", "nodeType": "FunctionDefinition", "parameters": { "id": 1196, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1193, "name": "a", "nodeType": "VariableDeclaration", "scope": 1207, "src": "6329:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1192, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6329:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1195, "name": "b", "nodeType": "VariableDeclaration", "scope": 1207, "src": "6337:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1194, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6337:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6328:16:5" }, "returnParameters": { "id": 1199, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1198, "name": "", "nodeType": "VariableDeclaration", "scope": 1207, "src": "6368:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1197, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6368:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6367:6:5" }, "scope": 1458, "src": "6310:98:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1220, "nodeType": "Block", "src": "6644:30:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1216, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1209, "src": "6661:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 1217, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1211, "src": "6666:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6661:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1215, "id": 1219, "nodeType": "Return", "src": "6654:13:5" } ] }, "documentation": "@dev Returns whether a subtraction operation causes an underflow\n @param a Minuend\n @param b Subtrahend\n @return Did no underflow occur?", "id": 1221, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToSub", "nodeType": "FunctionDefinition", "parameters": { "id": 1212, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1209, "name": "a", "nodeType": "VariableDeclaration", "scope": 1221, "src": "6599:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1208, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6599:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1211, "name": "b", "nodeType": "VariableDeclaration", "scope": 1221, "src": "6607:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1210, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6607:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6598:16:5" }, "returnParameters": { "id": 1215, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1214, "name": "", "nodeType": "VariableDeclaration", "scope": 1221, "src": "6638:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1213, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6638:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6637:6:5" }, "scope": 1458, "src": "6580:94:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1242, "nodeType": "Block", "src": "6913:48:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1230, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1225, "src": "6930:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6935:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6930:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1233, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1223, "src": "6940:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1234, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1225, "src": "6944:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6940:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 1236, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1225, "src": "6948:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6940:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 1238, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1223, "src": "6953:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6940:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6930:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1229, "id": 1241, "nodeType": "Return", "src": "6923:31:5" } ] }, "documentation": "@dev Returns whether a multiply operation causes an overflow\n @param a First factor\n @param b Second factor\n @return Did no overflow occur?", "id": 1243, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToMul", "nodeType": "FunctionDefinition", "parameters": { "id": 1226, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1223, "name": "a", "nodeType": "VariableDeclaration", "scope": 1243, "src": "6868:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1222, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6868:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1225, "name": "b", "nodeType": "VariableDeclaration", "scope": 1243, "src": "6876:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1224, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6876:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6867:16:5" }, "returnParameters": { "id": 1229, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1228, "name": "", "nodeType": "VariableDeclaration", "scope": 1243, "src": "6907:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1227, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6907:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6906:6:5" }, "scope": 1458, "src": "6849:112:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1263, "nodeType": "Block", "src": "7155:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1254, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1245, "src": "7183:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1255, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1247, "src": "7186:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1253, "name": "safeToAdd", "nodeType": "Identifier", "overloadedDeclarations": [ 1207, 1338 ], "referencedDeclaration": 1207, "src": "7173:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7173:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1252, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "7165:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1257, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7165:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1258, "nodeType": "ExpressionStatement", "src": "7165:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1259, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1245, "src": "7206:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1260, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1247, "src": "7210:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7206:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1251, "id": 1262, "nodeType": "Return", "src": "7199:12:5" } ] }, "documentation": "@dev Returns sum if no overflow occurred\n @param a First addend\n @param b Second addend\n @return Sum", "id": 1264, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 1248, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1245, "name": "a", "nodeType": "VariableDeclaration", "scope": 1264, "src": "7110:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1244, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7110:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1247, "name": "b", "nodeType": "VariableDeclaration", "scope": 1264, "src": "7118:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1246, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7118:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7109:16:5" }, "returnParameters": { "id": 1251, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1250, "name": "", "nodeType": "VariableDeclaration", "scope": 1264, "src": "7149:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1249, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7149:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7148:6:5" }, "scope": 1458, "src": "7097:121:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1284, "nodeType": "Block", "src": "7418:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1275, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1266, "src": "7446:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1276, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1268, "src": "7449:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1274, "name": "safeToSub", "nodeType": "Identifier", "overloadedDeclarations": [ 1221, 1370 ], "referencedDeclaration": 1221, "src": "7436:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7436:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1273, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "7428:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1278, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7428:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1279, "nodeType": "ExpressionStatement", "src": "7428:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1280, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1266, "src": "7469:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1281, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1268, "src": "7473:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7469:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1272, "id": 1283, "nodeType": "Return", "src": "7462:12:5" } ] }, "documentation": "@dev Returns difference if no overflow occurred\n @param a Minuend\n @param b Subtrahend\n @return Difference", "id": 1285, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 1269, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1266, "name": "a", "nodeType": "VariableDeclaration", "scope": 1285, "src": "7373:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1265, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7373:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1268, "name": "b", "nodeType": "VariableDeclaration", "scope": 1285, "src": "7381:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1267, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7381:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7372:16:5" }, "returnParameters": { "id": 1272, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1271, "name": "", "nodeType": "VariableDeclaration", "scope": 1285, "src": "7412:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1270, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7412:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7411:6:5" }, "scope": 1458, "src": "7360:121:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1305, "nodeType": "Block", "src": "7683:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1296, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1287, "src": "7711:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1297, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1289, "src": "7714:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1295, "name": "safeToMul", "nodeType": "Identifier", "overloadedDeclarations": [ 1243, 1394 ], "referencedDeclaration": 1243, "src": "7701:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7701:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "7693:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7693:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1300, "nodeType": "ExpressionStatement", "src": "7693:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1301, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1287, "src": "7734:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1302, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1289, "src": "7738:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7734:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1293, "id": 1304, "nodeType": "Return", "src": "7727:12:5" } ] }, "documentation": "@dev Returns product if no overflow occurred\n @param a First factor\n @param b Second factor\n @return Product", "id": 1306, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 1290, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1287, "name": "a", "nodeType": "VariableDeclaration", "scope": 1306, "src": "7638:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1286, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7638:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1289, "name": "b", "nodeType": "VariableDeclaration", "scope": 1306, "src": "7646:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1288, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7646:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7637:16:5" }, "returnParameters": { "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1292, "name": "", "nodeType": "VariableDeclaration", "scope": 1306, "src": "7677:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1291, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7677:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7676:6:5" }, "scope": 1458, "src": "7625:121:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1337, "nodeType": "Block", "src": "7979:70:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1315, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1310, "src": "7997:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8002:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7997:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1318, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1308, "src": "8007:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1319, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1310, "src": "8011:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8007:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 1321, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1308, "src": "8016:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8007:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7997:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1324, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7996:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1325, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1310, "src": "8023:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8027:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8023:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1328, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1308, "src": "8032:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1329, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1310, "src": "8036:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8032:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1331, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1308, "src": "8040:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8032:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8023:18:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1334, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8022:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7996:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1314, "id": 1336, "nodeType": "Return", "src": "7989:53:5" } ] }, "documentation": "@dev Returns whether an add operation causes an overflow\n @param a First addend\n @param b Second addend\n @return Did no overflow occur?", "id": 1338, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToAdd", "nodeType": "FunctionDefinition", "parameters": { "id": 1311, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1308, "name": "a", "nodeType": "VariableDeclaration", "scope": 1338, "src": "7936:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1307, "name": "int", "nodeType": "ElementaryTypeName", "src": "7936:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1310, "name": "b", "nodeType": "VariableDeclaration", "scope": 1338, "src": "7943:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1309, "name": "int", "nodeType": "ElementaryTypeName", "src": "7943:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "7935:14:5" }, "returnParameters": { "id": 1314, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1313, "name": "", "nodeType": "VariableDeclaration", "scope": 1338, "src": "7973:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1312, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7973:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "7972:6:5" }, "scope": 1458, "src": "7917:132:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1369, "nodeType": "Block", "src": "8283:70:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1347, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1342, "src": "8301:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8306:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8301:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1350, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "8311:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1351, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1342, "src": "8315:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8311:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 1353, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "8320:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8311:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8301:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1356, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8300:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1357, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1342, "src": "8327:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8331:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8327:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1360, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "8336:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1361, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1342, "src": "8340:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8336:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 1363, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "8344:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8336:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8327:18:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1366, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8326:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8300:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1346, "id": 1368, "nodeType": "Return", "src": "8293:53:5" } ] }, "documentation": "@dev Returns whether a subtraction operation causes an underflow\n @param a Minuend\n @param b Subtrahend\n @return Did no underflow occur?", "id": 1370, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToSub", "nodeType": "FunctionDefinition", "parameters": { "id": 1343, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1340, "name": "a", "nodeType": "VariableDeclaration", "scope": 1370, "src": "8240:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1339, "name": "int", "nodeType": "ElementaryTypeName", "src": "8240:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1342, "name": "b", "nodeType": "VariableDeclaration", "scope": 1370, "src": "8247:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1341, "name": "int", "nodeType": "ElementaryTypeName", "src": "8247:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "8239:14:5" }, "returnParameters": { "id": 1346, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1345, "name": "", "nodeType": "VariableDeclaration", "scope": 1370, "src": "8277:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1344, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8277:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8276:6:5" }, "scope": 1458, "src": "8221:132:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1393, "nodeType": "Block", "src": "8590:52:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1379, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1374, "src": "8608:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8613:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8608:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1382, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8607:8:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1383, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1372, "src": "8620:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1384, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1374, "src": "8624:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8620:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 1386, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1374, "src": "8628:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8620:9:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 1388, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1372, "src": "8633:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8620:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1390, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8619:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8607:28:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1378, "id": 1392, "nodeType": "Return", "src": "8600:35:5" } ] }, "documentation": "@dev Returns whether a multiply operation causes an overflow\n @param a First factor\n @param b Second factor\n @return Did no overflow occur?", "id": 1394, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToMul", "nodeType": "FunctionDefinition", "parameters": { "id": 1375, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1372, "name": "a", "nodeType": "VariableDeclaration", "scope": 1394, "src": "8547:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1371, "name": "int", "nodeType": "ElementaryTypeName", "src": "8547:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1374, "name": "b", "nodeType": "VariableDeclaration", "scope": 1394, "src": "8554:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1373, "name": "int", "nodeType": "ElementaryTypeName", "src": "8554:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "8546:14:5" }, "returnParameters": { "id": 1378, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1377, "name": "", "nodeType": "VariableDeclaration", "scope": 1394, "src": "8584:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1376, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8584:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8583:6:5" }, "scope": 1458, "src": "8528:114:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1414, "nodeType": "Block", "src": "8833:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1405, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "8861:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "argumentTypes": null, "id": 1406, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "8864:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1404, "name": "safeToAdd", "nodeType": "Identifier", "overloadedDeclarations": [ 1207, 1338 ], "referencedDeclaration": 1338, "src": "8851:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_bool_$", "typeString": "function (int256,int256) pure returns (bool)" } }, "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8851:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1403, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "8843:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1408, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8843:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1409, "nodeType": "ExpressionStatement", "src": "8843:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1412, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1410, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "8884:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1411, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "8888:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8884:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 1402, "id": 1413, "nodeType": "Return", "src": "8877:12:5" } ] }, "documentation": "@dev Returns sum if no overflow occurred\n @param a First addend\n @param b Second addend\n @return Sum", "id": 1415, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 1399, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1396, "name": "a", "nodeType": "VariableDeclaration", "scope": 1415, "src": "8791:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1395, "name": "int", "nodeType": "ElementaryTypeName", "src": "8791:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1398, "name": "b", "nodeType": "VariableDeclaration", "scope": 1415, "src": "8798:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1397, "name": "int", "nodeType": "ElementaryTypeName", "src": "8798:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "8790:14:5" }, "returnParameters": { "id": 1402, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1401, "name": "", "nodeType": "VariableDeclaration", "scope": 1415, "src": "8828:3:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1400, "name": "int", "nodeType": "ElementaryTypeName", "src": "8828:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "8827:5:5" }, "scope": 1458, "src": "8778:118:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1435, "nodeType": "Block", "src": "9093:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1426, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1417, "src": "9121:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "argumentTypes": null, "id": 1427, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1419, "src": "9124:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1425, "name": "safeToSub", "nodeType": "Identifier", "overloadedDeclarations": [ 1221, 1370 ], "referencedDeclaration": 1370, "src": "9111:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_bool_$", "typeString": "function (int256,int256) pure returns (bool)" } }, "id": 1428, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9111:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1424, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "9103:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1429, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9103:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1430, "nodeType": "ExpressionStatement", "src": "9103:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1431, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1417, "src": "9144:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1432, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1419, "src": "9148:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "9144:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 1423, "id": 1434, "nodeType": "Return", "src": "9137:12:5" } ] }, "documentation": "@dev Returns difference if no overflow occurred\n @param a Minuend\n @param b Subtrahend\n @return Difference", "id": 1436, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 1420, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1417, "name": "a", "nodeType": "VariableDeclaration", "scope": 1436, "src": "9051:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1416, "name": "int", "nodeType": "ElementaryTypeName", "src": "9051:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1419, "name": "b", "nodeType": "VariableDeclaration", "scope": 1436, "src": "9058:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1418, "name": "int", "nodeType": "ElementaryTypeName", "src": "9058:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "9050:14:5" }, "returnParameters": { "id": 1423, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1422, "name": "", "nodeType": "VariableDeclaration", "scope": 1436, "src": "9088:3:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1421, "name": "int", "nodeType": "ElementaryTypeName", "src": "9088:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "9087:5:5" }, "scope": 1458, "src": "9038:118:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1456, "nodeType": "Block", "src": "9355:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1447, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1438, "src": "9383:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "argumentTypes": null, "id": 1448, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1440, "src": "9386:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1446, "name": "safeToMul", "nodeType": "Identifier", "overloadedDeclarations": [ 1243, 1394 ], "referencedDeclaration": 1394, "src": "9373:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_bool_$", "typeString": "function (int256,int256) pure returns (bool)" } }, "id": 1449, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9373:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1445, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "9365:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9365:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1451, "nodeType": "ExpressionStatement", "src": "9365:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1452, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1438, "src": "9406:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1453, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1440, "src": "9410:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "9406:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 1444, "id": 1455, "nodeType": "Return", "src": "9399:12:5" } ] }, "documentation": "@dev Returns product if no overflow occurred\n @param a First factor\n @param b Second factor\n @return Product", "id": 1457, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 1441, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1438, "name": "a", "nodeType": "VariableDeclaration", "scope": 1457, "src": "9313:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1437, "name": "int", "nodeType": "ElementaryTypeName", "src": "9313:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1440, "name": "b", "nodeType": "VariableDeclaration", "scope": 1457, "src": "9320:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1439, "name": "int", "nodeType": "ElementaryTypeName", "src": "9320:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "9312:14:5" }, "returnParameters": { "id": 1444, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1443, "name": "", "nodeType": "VariableDeclaration", "scope": 1457, "src": "9350:3:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1442, "name": "int", "nodeType": "ElementaryTypeName", "src": "9350:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "9349:5:5" }, "scope": 1458, "src": "9300:118:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], "scope": 1459, "src": "200:9220:5" } ], "src": "0:9421:5" }, "legacyAST": { "absolutePath": "@gnosis.pm/util-contracts/contracts/Math.sol", "exportedSymbols": { "GnosisMath": [ 1458 ] }, "id": 1459, "nodeType": "SourceUnit", "nodes": [ { "id": 331, "literals": [ "solidity", "^", "0.5", ".2" ], "nodeType": "PragmaDirective", "src": "0:23:5" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": "@title Math library - Allows calculation of logarithmic and exponential functions\n @author Alan Lu - \n @author Stefan George - ", "fullyImplemented": true, "id": 1458, "linearizedBaseContracts": [ 1458 ], "name": "GnosisMath", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "id": 334, "name": "ONE", "nodeType": "VariableDeclaration", "scope": 1458, "src": "304:46:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 332, "name": "uint", "nodeType": "ElementaryTypeName", "src": "304:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "30783130303030303030303030303030303030", "id": 333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "331:19:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18446744073709551616_by_1", "typeString": "int_const 18446744073709551616" }, "value": "0x10000000000000000" }, "visibility": "public" }, { "constant": true, "id": 337, "name": "LN2", "nodeType": "VariableDeclaration", "scope": 1458, "src": "356:45:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 335, "name": "uint", "nodeType": "ElementaryTypeName", "src": "356:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "307862313732313766376431636637396163", "id": 336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "383:18:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12786308645202655660_by_1", "typeString": "int_const 12786308645202655660" }, "value": "0xb17217f7d1cf79ac" }, "visibility": "public" }, { "constant": true, "id": 340, "name": "LOG2_E", "nodeType": "VariableDeclaration", "scope": 1458, "src": "407:49:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 338, "name": "uint", "nodeType": "ElementaryTypeName", "src": "407:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "30783137313534373635326238326665313737", "id": 339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "437:19:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_26613026195688644983_by_1", "typeString": "int_const 26613026195688644983" }, "value": "0x171547652b82fe177" }, "visibility": "public" }, { "body": { "id": 712, "nodeType": "Block", "src": "657:2714:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 348, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "794:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "hexValue": "32343534393731323539383738393039383836363739", "id": 349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "799:22:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2454971259878909886679_by_1", "typeString": "int_const 2454971259878909886679" }, "value": "2454971259878909886679" }, "src": "794:27:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 347, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "786:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 351, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "786:36:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 352, "nodeType": "ExpressionStatement", "src": "786:36:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 353, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "946:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 355, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "950:22:5", "subExpression": { "argumentTypes": null, "hexValue": "383138333233373533323932393639393632323237", "id": 354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "951:21:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_818323753292969962227_by_1", "typeString": "int_const 818323753292969962227" }, "value": "818323753292969962227" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_818323753292969962227_by_1", "typeString": "int_const -818323753292969962227" } }, "src": "946:26:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 359, "nodeType": "IfStatement", "src": "942:40:5", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "30", "id": 357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "981:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 346, "id": 358, "nodeType": "Return", "src": "974:8:5" } }, { "expression": { "argumentTypes": null, "id": 370, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 360, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1032:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 361, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1036:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 363, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1044:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 362, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1040:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1040:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1036:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 367, "name": "LN2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 337, "src": "1055:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 366, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1051:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1051:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1036:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1032:27:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 371, "nodeType": "ExpressionStatement", "src": "1032:27:5" }, { "assignments": [ 373 ], "declarations": [ { "constant": false, "id": 373, "name": "shift", "nodeType": "VariableDeclaration", "scope": 712, "src": "1195:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 372, "name": "int", "nodeType": "ElementaryTypeName", "src": "1195:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 374, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "1195:9:5" }, { "assignments": [ 376 ], "declarations": [ { "constant": false, "id": 376, "name": "z", "nodeType": "VariableDeclaration", "scope": 712, "src": "1214:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 375, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1214:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 377, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "1214:6:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 380, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 378, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1234:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1239:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1234:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 423, "nodeType": "Block", "src": "1329:92:5", "statements": [ { "expression": { "argumentTypes": null, "id": 408, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 400, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "1343:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 407, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 401, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1351:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 403, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1359:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 402, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1355:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1355:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1351:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 406, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1366:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "1351:16:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1343:24:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 409, "nodeType": "ExpressionStatement", "src": "1343:24:5" }, { "expression": { "argumentTypes": null, "id": 421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 410, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "1381:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 411, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1385:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 418, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "1396:2:5", "subExpression": { "argumentTypes": null, "id": 413, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1397:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 416, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1405:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1401:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1401:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1396:13:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 412, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1391:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 419, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1391:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1385:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1381:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 422, "nodeType": "ExpressionStatement", "src": "1381:29:5" } ] }, "id": 424, "nodeType": "IfStatement", "src": "1230:191:5", "trueBody": { "id": 399, "nodeType": "Block", "src": "1242:81:5", "statements": [ { "expression": { "argumentTypes": null, "id": 387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 381, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "1256:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 382, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1264:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 384, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1272:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 383, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1268:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 385, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1268:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1264:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1256:20:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 388, "nodeType": "ExpressionStatement", "src": "1256:20:5" }, { "expression": { "argumentTypes": null, "id": 397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 389, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "1290:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 391, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 342, "src": "1299:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 393, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1307:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 392, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1303:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1303:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1299:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 390, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1294:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 396, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1294:18:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1290:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 398, "nodeType": "ExpressionStatement", "src": "1290:22:5" } ] } }, { "assignments": [ 426 ], "declarations": [ { "constant": false, "id": 426, "name": "zpow", "nodeType": "VariableDeclaration", "scope": 712, "src": "1956:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 425, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1956:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 428, "initialValue": { "argumentTypes": null, "id": 427, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "1968:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1956:13:5" }, { "assignments": [ 430 ], "declarations": [ { "constant": false, "id": 430, "name": "result", "nodeType": "VariableDeclaration", "scope": 712, "src": "1979:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 429, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1979:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 432, "initialValue": { "argumentTypes": null, "id": 431, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "1993:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1979:17:5" }, { "expression": { "argumentTypes": null, "id": 439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 433, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2006:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 438, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307862313732313766376431636637396162", "id": 434, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2016:18:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12786308645202655659_by_1", "typeString": "int_const 12786308645202655659" }, "value": "0xb17217f7d1cf79ab" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 435, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2037:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2016:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 437, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2044:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2016:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2006:41:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 440, "nodeType": "ExpressionStatement", "src": "2006:41:5" }, { "expression": { "argumentTypes": null, "id": 447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 441, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2057:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 442, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2064:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 443, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2071:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2064:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 445, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2075:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2064:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2057:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 448, "nodeType": "ExpressionStatement", "src": "2057:21:5" }, { "expression": { "argumentTypes": null, "id": 455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 449, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2088:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307833643766376266663035386231643530", "id": 450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2098:18:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4431396893595737424_by_1", "typeString": "int_const 4431396893595737424" }, "value": "0x3d7f7bff058b1d50" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 451, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2119:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2098:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 453, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2126:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2098:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2088:41:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 456, "nodeType": "ExpressionStatement", "src": "2088:41:5" }, { "expression": { "argumentTypes": null, "id": 463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 457, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2139:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 458, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2146:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 459, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2153:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2146:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 461, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2157:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2146:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2139:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 464, "nodeType": "ExpressionStatement", "src": "2139:21:5" }, { "expression": { "argumentTypes": null, "id": 471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 465, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2170:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 468, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078653335383436623832353035666335", "id": 466, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2180:17:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1023870087579328453_by_1", "typeString": "int_const 1023870087579328453" }, "value": "0xe35846b82505fc5" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 467, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2200:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2180:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 469, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2207:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2180:30:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2170:40:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 472, "nodeType": "ExpressionStatement", "src": "2170:40:5" }, { "expression": { "argumentTypes": null, "id": 479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 473, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2220:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 474, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2227:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 475, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2234:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2227:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 477, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2238:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2227:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2220:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 480, "nodeType": "ExpressionStatement", "src": "2220:21:5" }, { "expression": { "argumentTypes": null, "id": 487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 481, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2251:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078323736353536646637343963656535", "id": 482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2261:17:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_177423166116318949_by_1", "typeString": "int_const 177423166116318949" }, "value": "0x276556df749cee5" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 483, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2281:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2261:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 485, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2288:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2261:30:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2251:40:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 488, "nodeType": "ExpressionStatement", "src": "2251:40:5" }, { "expression": { "argumentTypes": null, "id": 495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 489, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2301:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 490, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2308:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 491, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2315:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2308:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 493, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2319:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2308:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2301:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 496, "nodeType": "ExpressionStatement", "src": "2301:21:5" }, { "expression": { "argumentTypes": null, "id": 503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 497, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2332:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "30783537363166663965323939636334", "id": 498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2342:16:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_24596073471909060_by_1", "typeString": "int_const 24596073471909060" }, "value": "0x5761ff9e299cc4" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 499, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2361:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2342:23:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 501, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2368:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2342:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2332:39:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 504, "nodeType": "ExpressionStatement", "src": "2332:39:5" }, { "expression": { "argumentTypes": null, "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 505, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2381:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 506, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2388:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 507, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2395:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2388:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 509, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2399:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2388:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2381:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 512, "nodeType": "ExpressionStatement", "src": "2381:21:5" }, { "expression": { "argumentTypes": null, "id": 519, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 513, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2412:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307861313834383937633336336333", "id": 514, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2422:15:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2841449829983171_by_1", "typeString": "int_const 2841449829983171" }, "value": "0xa184897c363c3" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 515, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2440:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2422:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 517, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2447:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2422:28:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2412:38:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 520, "nodeType": "ExpressionStatement", "src": "2412:38:5" }, { "expression": { "argumentTypes": null, "id": 527, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 521, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2460:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 522, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2467:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 523, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2474:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2467:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 525, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2478:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2467:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2460:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 528, "nodeType": "ExpressionStatement", "src": "2460:21:5" }, { "expression": { "argumentTypes": null, "id": 535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 529, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2491:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078666665356665326334353836", "id": 530, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2501:14:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_281363276907910_by_1", "typeString": "int_const 281363276907910" }, "value": "0xffe5fe2c4586" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 531, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2518:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2501:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 533, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2525:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2501:27:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2491:37:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 536, "nodeType": "ExpressionStatement", "src": "2491:37:5" }, { "expression": { "argumentTypes": null, "id": 543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 537, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2538:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 538, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2545:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 539, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2552:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2545:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 541, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2556:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2545:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2538:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 544, "nodeType": "ExpressionStatement", "src": "2538:21:5" }, { "expression": { "argumentTypes": null, "id": 551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 545, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2569:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078313632633032323361356338", "id": 546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2579:14:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_24378270262728_by_1", "typeString": "int_const 24378270262728" }, "value": "0x162c0223a5c8" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 547, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2596:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2579:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 549, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2603:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2579:27:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2569:37:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 552, "nodeType": "ExpressionStatement", "src": "2569:37:5" }, { "expression": { "argumentTypes": null, "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 553, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2616:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 554, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2623:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 555, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2630:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2623:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 557, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2634:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2623:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2616:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 560, "nodeType": "ExpressionStatement", "src": "2616:21:5" }, { "expression": { "argumentTypes": null, "id": 567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 561, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2647:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 566, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "30783162353235336433393565", "id": 562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2657:13:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1877525477726_by_1", "typeString": "int_const 1877525477726" }, "value": "0x1b5253d395e" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 563, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2673:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2657:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 565, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2680:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2657:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2647:36:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 568, "nodeType": "ExpressionStatement", "src": "2647:36:5" }, { "expression": { "argumentTypes": null, "id": 575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 569, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2693:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 570, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2700:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 571, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2707:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2700:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 573, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2711:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2700:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2693:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 576, "nodeType": "ExpressionStatement", "src": "2693:21:5" }, { "expression": { "argumentTypes": null, "id": 583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 577, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2724:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307831653463663531353862", "id": 578, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2734:12:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_130140149131_by_1", "typeString": "int_const 130140149131" }, "value": "0x1e4cf5158b" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 579, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2749:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2734:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 581, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2756:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2734:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2724:35:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 584, "nodeType": "ExpressionStatement", "src": "2724:35:5" }, { "expression": { "argumentTypes": null, "id": 591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 585, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2769:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 586, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2776:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 587, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2783:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2776:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 589, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2787:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2776:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2769:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 592, "nodeType": "ExpressionStatement", "src": "2769:21:5" }, { "expression": { "argumentTypes": null, "id": 599, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 593, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2800:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078316538636163373335", "id": 594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2810:11:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8200570677_by_1", "typeString": "int_const 8200570677" }, "value": "0x1e8cac735" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 595, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2824:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2810:18:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 597, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2831:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2810:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2800:34:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 600, "nodeType": "ExpressionStatement", "src": "2800:34:5" }, { "expression": { "argumentTypes": null, "id": 607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 601, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2844:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 602, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2851:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 603, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2858:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2851:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 605, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2862:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2851:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2844:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 608, "nodeType": "ExpressionStatement", "src": "2844:21:5" }, { "expression": { "argumentTypes": null, "id": 615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 609, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2875:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "30783163336264363530", "id": 610, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2885:10:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_473683536_by_1", "typeString": "int_const 473683536" }, "value": "0x1c3bd650" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 611, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2898:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2885:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 613, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2905:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2885:23:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2875:33:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 616, "nodeType": "ExpressionStatement", "src": "2875:33:5" }, { "expression": { "argumentTypes": null, "id": 623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 617, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2918:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 618, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2925:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 619, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "2932:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2925:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 621, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2936:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2925:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2918:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 624, "nodeType": "ExpressionStatement", "src": "2918:21:5" }, { "expression": { "argumentTypes": null, "id": 631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 625, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "2949:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307831383136313933", "id": 626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2959:9:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25256339_by_1", "typeString": "int_const 25256339" }, "value": "0x1816193" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 627, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2971:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2959:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 629, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "2978:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2959:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2949:32:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 632, "nodeType": "ExpressionStatement", "src": "2949:32:5" }, { "expression": { "argumentTypes": null, "id": 639, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 633, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2991:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 634, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "2998:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 635, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "3005:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2998:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 637, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3009:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2998:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2991:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 640, "nodeType": "ExpressionStatement", "src": "2991:21:5" }, { "expression": { "argumentTypes": null, "id": 647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 641, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3022:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078313331343936", "id": 642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3032:8:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1250454_by_1", "typeString": "int_const 1250454" }, "value": "0x131496" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 643, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3043:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3032:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 645, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3050:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3032:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3022:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 648, "nodeType": "ExpressionStatement", "src": "3022:31:5" }, { "expression": { "argumentTypes": null, "id": 655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 649, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3063:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 654, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 650, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3070:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 651, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "3077:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3070:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 653, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3081:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3070:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3063:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 656, "nodeType": "ExpressionStatement", "src": "3063:21:5" }, { "expression": { "argumentTypes": null, "id": 663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 657, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3094:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "307865316237", "id": 658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3104:6:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57783_by_1", "typeString": "int_const 57783" }, "value": "0xe1b7" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 659, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3113:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3104:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 661, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3120:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3104:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3094:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 664, "nodeType": "ExpressionStatement", "src": "3094:29:5" }, { "expression": { "argumentTypes": null, "id": 671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 665, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3133:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 666, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3140:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 667, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 376, "src": "3147:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3140:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 669, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3151:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3140:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3133:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 672, "nodeType": "ExpressionStatement", "src": "3133:21:5" }, { "expression": { "argumentTypes": null, "id": 679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 673, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3164:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3078396337", "id": 674, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3174:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2503_by_1", "typeString": "int_const 2503" }, "value": "0x9c7" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 675, "name": "zpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 426, "src": "3182:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3174:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 677, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3189:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3174:18:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3164:28:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 680, "nodeType": "ExpressionStatement", "src": "3164:28:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 681, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "3206:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3215:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3206:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 705, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3346:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "id": 707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "3357:6:5", "subExpression": { "argumentTypes": null, "id": 706, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "3358:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 708, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3356:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3346:18:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 346, "id": 710, "nodeType": "Return", "src": "3339:25:5" }, "id": 711, "nodeType": "IfStatement", "src": "3202:162:5", "trueBody": { "id": 704, "nodeType": "Block", "src": "3218:115:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 684, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3236:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "323536", "id": 685, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3247:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "256" }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 686, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "3253:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3247:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 688, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3246:13:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3236:23:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3262:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3236:27:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 699, "nodeType": "IfStatement", "src": "3232:54:5", "trueBody": { "expression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", "typeString": "int_const 1157...(70 digits omitted)...9935" }, "id": 696, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", "typeString": "int_const 1157...(70 digits omitted)...9936" }, "id": 694, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "32", "id": 692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3273:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "323536", "id": 693, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3278:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "256" }, "src": "3273:8:5", "typeDescriptions": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1", "typeString": "int_const 1157...(70 digits omitted)...9936" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 695, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3284:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3273:12:5", "typeDescriptions": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", "typeString": "int_const 1157...(70 digits omitted)...9935" } } ], "id": 697, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3272:14:5", "typeDescriptions": { "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", "typeString": "int_const 1157...(70 digits omitted)...9935" } }, "functionReturnParameters": 346, "id": 698, "nodeType": "Return", "src": "3265:21:5" } }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 700, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 430, "src": "3307:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "argumentTypes": null, "id": 701, "name": "shift", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "3317:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3307:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 346, "id": 703, "nodeType": "Return", "src": "3300:22:5" } ] } } ] }, "documentation": "@dev Returns natural exponential function value of given x\n @param x x\n @return e**x", "id": 713, "implemented": true, "kind": "function", "modifiers": [], "name": "exp", "nodeType": "FunctionDefinition", "parameters": { "id": 343, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 342, "name": "x", "nodeType": "VariableDeclaration", "scope": 713, "src": "623:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 341, "name": "int", "nodeType": "ElementaryTypeName", "src": "623:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "622:7:5" }, "returnParameters": { "id": 346, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 345, "name": "", "nodeType": "VariableDeclaration", "scope": 713, "src": "651:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 344, "name": "uint", "nodeType": "ElementaryTypeName", "src": "651:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "650:6:5" }, "scope": 1458, "src": "610:2761:5", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { "id": 1067, "nodeType": "Block", "src": "3520:1733:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 721, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 715, "src": "3538:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3542:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3538:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 720, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "3530:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3530:14:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 725, "nodeType": "ExpressionStatement", "src": "3530:14:5" }, { "assignments": [ 727 ], "declarations": [ { "constant": false, "id": 727, "name": "ilog2", "nodeType": "VariableDeclaration", "scope": 1067, "src": "3598:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 726, "name": "int", "nodeType": "ElementaryTypeName", "src": "3598:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 731, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 729, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 715, "src": "3620:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 728, "name": "floorLog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1144, "src": "3610:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_int256_$", "typeString": "function (uint256) pure returns (int256)" } }, "id": 730, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3610:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "3598:24:5" }, { "assignments": [ 733 ], "declarations": [ { "constant": false, "id": 733, "name": "z", "nodeType": "VariableDeclaration", "scope": 1067, "src": "3632:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 732, "name": "int", "nodeType": "ElementaryTypeName", "src": "3632:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 734, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "3632:5:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 737, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 735, "name": "ilog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 727, "src": "3651:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 736, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3659:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3651:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 749, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 733, "src": "3703:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 751, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 715, "src": "3711:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 753, "name": "ilog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 727, "src": "3721:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 752, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3716:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 754, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3716:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3711:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3707:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 756, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3707:21:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3703:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 758, "nodeType": "ExpressionStatement", "src": "3703:25:5" }, "id": 759, "nodeType": "IfStatement", "src": "3647:81:5", "trueBody": { "expression": { "argumentTypes": null, "id": 747, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 738, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 733, "src": "3662:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 740, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 715, "src": "3670:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "3680:6:5", "subExpression": { "argumentTypes": null, "id": 742, "name": "ilog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 727, "src": "3681:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 741, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3675:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3675:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3670:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 739, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3666:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 746, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3666:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3662:26:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 748, "nodeType": "ExpressionStatement", "src": "3662:26:5" } }, { "assignments": [ 761 ], "declarations": [ { "constant": false, "id": 761, "name": "term", "nodeType": "VariableDeclaration", "scope": 1067, "src": "3942:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 760, "name": "int", "nodeType": "ElementaryTypeName", "src": "3942:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 779, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 762, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 733, "src": "3954:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 764, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3962:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 763, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3958:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 765, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3958:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3954:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 767, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3953:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 769, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3974:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 768, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3970:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3970:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3953:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 776, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 772, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 733, "src": "3982:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 774, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "3990:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 773, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3986:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3986:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3982:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 777, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3981:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3953:42:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "3942:53:5" }, { "assignments": [ 781 ], "declarations": [ { "constant": false, "id": 781, "name": "halflnz", "nodeType": "VariableDeclaration", "scope": 1067, "src": "4005:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 780, "name": "int", "nodeType": "ElementaryTypeName", "src": "4005:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 783, "initialValue": { "argumentTypes": null, "id": 782, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4019:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "4005:18:5" }, { "assignments": [ 785 ], "declarations": [ { "constant": false, "id": 785, "name": "termpow", "nodeType": "VariableDeclaration", "scope": 1067, "src": "4033:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 784, "name": "int", "nodeType": "ElementaryTypeName", "src": "4033:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 799, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 786, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4047:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 787, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4054:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4047:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 790, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4065:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 789, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4061:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4061:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4047:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 793, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4072:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4047:29:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 796, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4083:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 795, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4079:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 797, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4079:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4047:40:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "4033:54:5" }, { "expression": { "argumentTypes": null, "id": 804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 800, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4097:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 801, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4108:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "33", "id": 802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4118:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "src": "4108:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4097:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 805, "nodeType": "ExpressionStatement", "src": "4097:22:5" }, { "expression": { "argumentTypes": null, "id": 820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 806, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4129:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 807, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4139:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 808, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4149:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4139:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 811, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4160:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 810, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4156:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4156:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4139:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 814, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4167:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4139:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 817, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4178:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4174:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 818, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4174:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4139:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4129:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 821, "nodeType": "ExpressionStatement", "src": "4129:53:5" }, { "expression": { "argumentTypes": null, "id": 826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 822, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4192:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 823, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4203:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "35", "id": 824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4213:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", "typeString": "int_const 5" }, "value": "5" }, "src": "4203:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4192:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 827, "nodeType": "ExpressionStatement", "src": "4192:22:5" }, { "expression": { "argumentTypes": null, "id": 842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 828, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4224:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 837, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 829, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4234:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 830, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4244:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4234:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 833, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4255:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 832, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4251:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 834, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4251:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4234:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 836, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4262:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4234:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 839, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4273:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 838, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4269:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4269:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4234:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4224:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 843, "nodeType": "ExpressionStatement", "src": "4224:53:5" }, { "expression": { "argumentTypes": null, "id": 848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 844, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4287:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 845, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4298:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "37", "id": 846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4308:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", "typeString": "int_const 7" }, "value": "7" }, "src": "4298:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4287:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 849, "nodeType": "ExpressionStatement", "src": "4287:22:5" }, { "expression": { "argumentTypes": null, "id": 864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 850, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4319:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 851, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4329:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 852, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4339:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4329:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 855, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4350:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 854, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4346:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 856, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4346:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4329:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 858, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4357:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4329:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 861, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4368:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 860, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4364:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 862, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4364:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4329:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4319:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 865, "nodeType": "ExpressionStatement", "src": "4319:53:5" }, { "expression": { "argumentTypes": null, "id": 870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 866, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4382:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 867, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4393:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "39", "id": 868, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4403:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" }, "value": "9" }, "src": "4393:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4382:22:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 871, "nodeType": "ExpressionStatement", "src": "4382:22:5" }, { "expression": { "argumentTypes": null, "id": 886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 872, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4414:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 881, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 875, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 873, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4424:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 874, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4434:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4424:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 877, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4445:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 876, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4441:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 878, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4441:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4424:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 880, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4452:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4424:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 883, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4463:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 882, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4459:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 884, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4459:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4424:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4414:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 887, "nodeType": "ExpressionStatement", "src": "4414:53:5" }, { "expression": { "argumentTypes": null, "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 888, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4477:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 889, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4488:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3131", "id": 890, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4498:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_11_by_1", "typeString": "int_const 11" }, "value": "11" }, "src": "4488:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4477:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 893, "nodeType": "ExpressionStatement", "src": "4477:23:5" }, { "expression": { "argumentTypes": null, "id": 908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 894, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4510:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 903, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 901, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 897, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 895, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4520:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 896, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4530:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4520:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 899, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4541:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 898, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4537:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 900, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4537:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4520:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 902, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4548:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4520:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 905, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4559:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 904, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4555:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 906, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4555:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4520:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4510:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 909, "nodeType": "ExpressionStatement", "src": "4510:53:5" }, { "expression": { "argumentTypes": null, "id": 914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 910, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4573:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 911, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4584:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3133", "id": 912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4594:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_13_by_1", "typeString": "int_const 13" }, "value": "13" }, "src": "4584:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4573:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 915, "nodeType": "ExpressionStatement", "src": "4573:23:5" }, { "expression": { "argumentTypes": null, "id": 930, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 916, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4606:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 929, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 925, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 917, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4616:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 918, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4626:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4616:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 921, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4637:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 920, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4633:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4633:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4616:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 924, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4644:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4616:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 927, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4655:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 926, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4651:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4651:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4616:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4606:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 931, "nodeType": "ExpressionStatement", "src": "4606:53:5" }, { "expression": { "argumentTypes": null, "id": 936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 932, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4669:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 933, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4680:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3135", "id": 934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4690:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_15_by_1", "typeString": "int_const 15" }, "value": "15" }, "src": "4680:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4669:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 937, "nodeType": "ExpressionStatement", "src": "4669:23:5" }, { "expression": { "argumentTypes": null, "id": 952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 938, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4702:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 945, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 939, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4712:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 940, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4722:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4712:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 943, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4733:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 942, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4729:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 944, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4729:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4712:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 946, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4740:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4712:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 949, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4751:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 948, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4747:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4747:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4712:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4702:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 953, "nodeType": "ExpressionStatement", "src": "4702:53:5" }, { "expression": { "argumentTypes": null, "id": 958, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 954, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4765:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 955, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4776:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3137", "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4786:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_17_by_1", "typeString": "int_const 17" }, "value": "17" }, "src": "4776:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4765:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 959, "nodeType": "ExpressionStatement", "src": "4765:23:5" }, { "expression": { "argumentTypes": null, "id": 974, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 960, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4798:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 973, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 961, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4808:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 962, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4818:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4808:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 965, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4829:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 964, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4825:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4825:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4808:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 968, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4836:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4808:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 971, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4847:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 970, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4843:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 972, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4843:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4808:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4798:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 975, "nodeType": "ExpressionStatement", "src": "4798:53:5" }, { "expression": { "argumentTypes": null, "id": 980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 976, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4861:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 977, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4872:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3139", "id": 978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4882:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_19_by_1", "typeString": "int_const 19" }, "value": "19" }, "src": "4872:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4861:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 981, "nodeType": "ExpressionStatement", "src": "4861:23:5" }, { "expression": { "argumentTypes": null, "id": 996, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 982, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4894:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 983, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4904:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 984, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4914:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4904:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 987, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4925:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 986, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4921:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4921:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4904:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 990, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "4932:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4904:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 993, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "4943:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 992, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4939:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4939:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4904:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4894:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 997, "nodeType": "ExpressionStatement", "src": "4894:53:5" }, { "expression": { "argumentTypes": null, "id": 1002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 998, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "4957:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 999, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4968:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3231", "id": 1000, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4978:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_21_by_1", "typeString": "int_const 21" }, "value": "21" }, "src": "4968:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4957:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1003, "nodeType": "ExpressionStatement", "src": "4957:23:5" }, { "expression": { "argumentTypes": null, "id": 1018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1004, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "4990:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1005, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5000:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1006, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "5010:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5000:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1009, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5021:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1008, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5017:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1010, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5017:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5000:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1012, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "5028:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5000:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1015, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5039:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1014, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5035:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5035:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5000:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "4990:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1019, "nodeType": "ExpressionStatement", "src": "4990:53:5" }, { "expression": { "argumentTypes": null, "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1020, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "5053:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1023, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1021, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5064:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3233", "id": 1022, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5074:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_23_by_1", "typeString": "int_const 23" }, "value": "23" }, "src": "5064:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5053:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1025, "nodeType": "ExpressionStatement", "src": "5053:23:5" }, { "expression": { "argumentTypes": null, "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1026, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5086:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1027, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5096:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1028, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "5106:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5096:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1031, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5117:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1030, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5113:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1032, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5113:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5096:25:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1034, "name": "term", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 761, "src": "5124:4:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5096:32:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1037, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5135:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1036, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5131:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1038, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5131:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5096:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5086:53:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1041, "nodeType": "ExpressionStatement", "src": "5086:53:5" }, { "expression": { "argumentTypes": null, "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1042, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "5149:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1043, "name": "termpow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 785, "src": "5160:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "3235", "id": 1044, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5170:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", "typeString": "int_const 25" }, "value": "25" }, "src": "5160:12:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5149:23:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1047, "nodeType": "ExpressionStatement", "src": "5149:23:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1048, "name": "ilog2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 727, "src": "5190:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1050, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5202:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5198:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1051, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5198:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5190:16:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 1053, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5189:18:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1055, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5214:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1054, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5210:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1056, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5210:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5189:29:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1059, "name": "LOG2_E", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 340, "src": "5225:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1058, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5221:3:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": "int" }, "id": 1060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5221:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5189:43:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "32", "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5235:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1063, "name": "halflnz", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 781, "src": "5239:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5235:11:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5189:57:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 719, "id": 1066, "nodeType": "Return", "src": "5182:64:5" } ] }, "documentation": "@dev Returns natural logarithm value of given x\n @param x x\n @return ln(x)", "id": 1068, "implemented": true, "kind": "function", "modifiers": [], "name": "ln", "nodeType": "FunctionDefinition", "parameters": { "id": 716, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 715, "name": "x", "nodeType": "VariableDeclaration", "scope": 1068, "src": "3486:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 714, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3486:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "3485:8:5" }, "returnParameters": { "id": 719, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 718, "name": "", "nodeType": "VariableDeclaration", "scope": 1068, "src": "3515:3:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 717, "name": "int", "nodeType": "ElementaryTypeName", "src": "3515:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "3514:5:5" }, "scope": 1458, "src": "3474:1779:5", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { "id": 1143, "nodeType": "Block", "src": "5423:373:5", "statements": [ { "expression": { "argumentTypes": null, "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1075, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5433:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "5438:3:5", "subExpression": { "argumentTypes": null, "hexValue": "3634", "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5439:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_64_by_1", "typeString": "int_const -64" } }, "src": "5433:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1079, "nodeType": "ExpressionStatement", "src": "5433:8:5" }, { "assignments": [ 1081 ], "declarations": [ { "constant": false, "id": 1081, "name": "hi", "nodeType": "VariableDeclaration", "scope": 1143, "src": "5451:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1080, "name": "int", "nodeType": "ElementaryTypeName", "src": "5451:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 1083, "initialValue": { "argumentTypes": null, "hexValue": "313933", "id": 1082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5460:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_193_by_1", "typeString": "int_const 193" }, "value": "193" }, "nodeType": "VariableDeclarationStatement", "src": "5451:12:5" }, { "assignments": [ 1085 ], "declarations": [ { "constant": false, "id": 1085, "name": "mid", "nodeType": "VariableDeclaration", "scope": 1143, "src": "5566:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1084, "name": "int", "nodeType": "ElementaryTypeName", "src": "5566:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "id": 1092, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1088, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1086, "name": "hi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1081, "src": "5577:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1087, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5582:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5577:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 1089, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5576:9:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5589:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5576:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", "src": "5566:24:5" }, { "body": { "id": 1141, "nodeType": "Block", "src": "5622:168:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1099, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5640:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5646:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5640:7:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1102, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1070, "src": "5651:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "5661:4:5", "subExpression": { "argumentTypes": null, "id": 1104, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5662:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1103, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5656:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 1106, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5656:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5651:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1108, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5669:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5651:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5640:32:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1111, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5676:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1112, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5683:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "5676:8:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1114, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1070, "src": "5688:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1116, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5698:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1115, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5693:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5693:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5688:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1119, "name": "ONE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 334, "src": "5705:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5688:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5676:32:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5640:68:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "id": 1129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1127, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5737:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1128, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5742:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5737:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1130, "nodeType": "ExpressionStatement", "src": "5737:8:5" }, "id": 1131, "nodeType": "IfStatement", "src": "5636:109:5", "trueBody": { "expression": { "argumentTypes": null, "id": 1125, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1123, "name": "hi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1081, "src": "5710:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1124, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5715:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5710:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1126, "nodeType": "ExpressionStatement", "src": "5710:8:5" } }, { "expression": { "argumentTypes": null, "id": 1139, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1132, "name": "mid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1085, "src": "5759:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1133, "name": "hi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1081, "src": "5766:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1134, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5771:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5766:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 1136, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5765:9:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5778:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5765:14:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5759:20:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1140, "nodeType": "ExpressionStatement", "src": "5759:20:5" } ] }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1093, "name": "lo", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1073, "src": "5608:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1094, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5613:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5608:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 1096, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5607:8:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1097, "name": "hi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1081, "src": "5618:2:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "5607:13:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1142, "nodeType": "WhileStatement", "src": "5600:190:5" } ] }, "documentation": "@dev Returns base 2 logarithm value of given x\n @param x x\n @return logarithmic value", "id": 1144, "implemented": true, "kind": "function", "modifiers": [], "name": "floorLog2", "nodeType": "FunctionDefinition", "parameters": { "id": 1071, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1070, "name": "x", "nodeType": "VariableDeclaration", "scope": 1144, "src": "5386:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1069, "name": "uint", "nodeType": "ElementaryTypeName", "src": "5386:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5385:8:5" }, "returnParameters": { "id": 1074, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1073, "name": "lo", "nodeType": "VariableDeclaration", "scope": 1144, "src": "5415:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1072, "name": "int", "nodeType": "ElementaryTypeName", "src": "5415:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "5414:8:5" }, "scope": 1458, "src": "5367:429:5", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { "id": 1190, "nodeType": "Block", "src": "5983:156:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1153, "name": "nums", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "6001:4:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, "id": 1154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6001:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1155, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6015:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6001:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1152, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "5993:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5993:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1158, "nodeType": "ExpressionStatement", "src": "5993:24:5" }, { "expression": { "argumentTypes": null, "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1159, "name": "maxNum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1150, "src": "6027:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", "typeString": "int_const -578...(70 digits omitted)...9968" }, "id": 1163, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1161, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "6036:2:5", "subExpression": { "argumentTypes": null, "hexValue": "32", "id": 1160, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6037:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_2_by_1", "typeString": "int_const -2" } }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "323535", "id": 1162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6042:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "255" }, "src": "6036:9:5", "typeDescriptions": { "typeIdentifier": "t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", "typeString": "int_const -578...(70 digits omitted)...9968" } }, "src": "6027:18:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1165, "nodeType": "ExpressionStatement", "src": "6027:18:5" }, { "body": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1177, "name": "nums", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "6098:4:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, "id": 1179, "indexExpression": { "argumentTypes": null, "id": 1178, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, "src": "6103:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6098:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 1180, "name": "maxNum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1150, "src": "6108:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "6098:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1188, "nodeType": "IfStatement", "src": "6094:38:5", "trueBody": { "expression": { "argumentTypes": null, "id": 1186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1182, "name": "maxNum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1150, "src": "6116:6:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1183, "name": "nums", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "6125:4:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, "id": 1185, "indexExpression": { "argumentTypes": null, "id": 1184, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, "src": "6130:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6125:7:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "6116:16:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1187, "nodeType": "ExpressionStatement", "src": "6116:16:5" } }, "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1170, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, "src": "6072:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1171, "name": "nums", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1147, "src": "6076:4:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[] memory" } }, "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6076:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6072:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1189, "initializationExpression": { "assignments": [ 1167 ], "declarations": [ { "constant": false, "id": 1167, "name": "i", "nodeType": "VariableDeclaration", "scope": 1189, "src": "6060:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1166, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6060:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1169, "initialValue": { "argumentTypes": null, "hexValue": "30", "id": 1168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6069:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "6060:10:5" }, "loopExpression": { "expression": { "argumentTypes": null, "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "6089:3:5", "subExpression": { "argumentTypes": null, "id": 1174, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1167, "src": "6089:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1176, "nodeType": "ExpressionStatement", "src": "6089:3:5" }, "nodeType": "ForStatement", "src": "6055:77:5" } ] }, "documentation": "@dev Returns maximum of an array\n @param nums Numbers to look through\n @return Maximum number", "id": 1191, "implemented": true, "kind": "function", "modifiers": [], "name": "max", "nodeType": "FunctionDefinition", "parameters": { "id": 1148, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1147, "name": "nums", "nodeType": "VariableDeclaration", "scope": 1191, "src": "5931:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_memory_ptr", "typeString": "int256[]" }, "typeName": { "baseType": { "id": 1145, "name": "int", "nodeType": "ElementaryTypeName", "src": "5931:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 1146, "length": null, "nodeType": "ArrayTypeName", "src": "5931:5:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr", "typeString": "int256[]" } }, "value": null, "visibility": "internal" } ], "src": "5930:19:5" }, "returnParameters": { "id": 1151, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1150, "name": "maxNum", "nodeType": "VariableDeclaration", "scope": 1191, "src": "5971:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1149, "name": "int", "nodeType": "ElementaryTypeName", "src": "5971:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "5970:12:5" }, "scope": 1458, "src": "5918:221:5", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { "id": 1206, "nodeType": "Block", "src": "6374:34:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1200, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1193, "src": "6391:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1201, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1195, "src": "6395:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6391:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 1203, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1193, "src": "6400:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6391:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1199, "id": 1205, "nodeType": "Return", "src": "6384:17:5" } ] }, "documentation": "@dev Returns whether an add operation causes an overflow\n @param a First addend\n @param b Second addend\n @return Did no overflow occur?", "id": 1207, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToAdd", "nodeType": "FunctionDefinition", "parameters": { "id": 1196, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1193, "name": "a", "nodeType": "VariableDeclaration", "scope": 1207, "src": "6329:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1192, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6329:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1195, "name": "b", "nodeType": "VariableDeclaration", "scope": 1207, "src": "6337:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1194, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6337:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6328:16:5" }, "returnParameters": { "id": 1199, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1198, "name": "", "nodeType": "VariableDeclaration", "scope": 1207, "src": "6368:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1197, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6368:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6367:6:5" }, "scope": 1458, "src": "6310:98:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1220, "nodeType": "Block", "src": "6644:30:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1216, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1209, "src": "6661:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 1217, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1211, "src": "6666:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6661:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1215, "id": 1219, "nodeType": "Return", "src": "6654:13:5" } ] }, "documentation": "@dev Returns whether a subtraction operation causes an underflow\n @param a Minuend\n @param b Subtrahend\n @return Did no underflow occur?", "id": 1221, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToSub", "nodeType": "FunctionDefinition", "parameters": { "id": 1212, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1209, "name": "a", "nodeType": "VariableDeclaration", "scope": 1221, "src": "6599:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1208, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6599:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1211, "name": "b", "nodeType": "VariableDeclaration", "scope": 1221, "src": "6607:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1210, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6607:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6598:16:5" }, "returnParameters": { "id": 1215, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1214, "name": "", "nodeType": "VariableDeclaration", "scope": 1221, "src": "6638:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1213, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6638:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6637:6:5" }, "scope": 1458, "src": "6580:94:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1242, "nodeType": "Block", "src": "6913:48:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1230, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1225, "src": "6930:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6935:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6930:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1233, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1223, "src": "6940:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1234, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1225, "src": "6944:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6940:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 1236, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1225, "src": "6948:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6940:9:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 1238, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1223, "src": "6953:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6940:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6930:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1229, "id": 1241, "nodeType": "Return", "src": "6923:31:5" } ] }, "documentation": "@dev Returns whether a multiply operation causes an overflow\n @param a First factor\n @param b Second factor\n @return Did no overflow occur?", "id": 1243, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToMul", "nodeType": "FunctionDefinition", "parameters": { "id": 1226, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1223, "name": "a", "nodeType": "VariableDeclaration", "scope": 1243, "src": "6868:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1222, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6868:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1225, "name": "b", "nodeType": "VariableDeclaration", "scope": 1243, "src": "6876:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1224, "name": "uint", "nodeType": "ElementaryTypeName", "src": "6876:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "6867:16:5" }, "returnParameters": { "id": 1229, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1228, "name": "", "nodeType": "VariableDeclaration", "scope": 1243, "src": "6907:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1227, "name": "bool", "nodeType": "ElementaryTypeName", "src": "6907:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "6906:6:5" }, "scope": 1458, "src": "6849:112:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1263, "nodeType": "Block", "src": "7155:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1254, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1245, "src": "7183:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1255, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1247, "src": "7186:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1253, "name": "safeToAdd", "nodeType": "Identifier", "overloadedDeclarations": [ 1207, 1338 ], "referencedDeclaration": 1207, "src": "7173:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7173:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1252, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "7165:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1257, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7165:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1258, "nodeType": "ExpressionStatement", "src": "7165:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1259, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1245, "src": "7206:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1260, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1247, "src": "7210:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7206:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1251, "id": 1262, "nodeType": "Return", "src": "7199:12:5" } ] }, "documentation": "@dev Returns sum if no overflow occurred\n @param a First addend\n @param b Second addend\n @return Sum", "id": 1264, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 1248, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1245, "name": "a", "nodeType": "VariableDeclaration", "scope": 1264, "src": "7110:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1244, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7110:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1247, "name": "b", "nodeType": "VariableDeclaration", "scope": 1264, "src": "7118:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1246, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7118:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7109:16:5" }, "returnParameters": { "id": 1251, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1250, "name": "", "nodeType": "VariableDeclaration", "scope": 1264, "src": "7149:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1249, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7149:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7148:6:5" }, "scope": 1458, "src": "7097:121:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1284, "nodeType": "Block", "src": "7418:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1275, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1266, "src": "7446:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1276, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1268, "src": "7449:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1274, "name": "safeToSub", "nodeType": "Identifier", "overloadedDeclarations": [ 1221, 1370 ], "referencedDeclaration": 1221, "src": "7436:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7436:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1273, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "7428:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1278, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7428:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1279, "nodeType": "ExpressionStatement", "src": "7428:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1280, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1266, "src": "7469:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1281, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1268, "src": "7473:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7469:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1272, "id": 1283, "nodeType": "Return", "src": "7462:12:5" } ] }, "documentation": "@dev Returns difference if no overflow occurred\n @param a Minuend\n @param b Subtrahend\n @return Difference", "id": 1285, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 1269, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1266, "name": "a", "nodeType": "VariableDeclaration", "scope": 1285, "src": "7373:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1265, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7373:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1268, "name": "b", "nodeType": "VariableDeclaration", "scope": 1285, "src": "7381:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1267, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7381:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7372:16:5" }, "returnParameters": { "id": 1272, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1271, "name": "", "nodeType": "VariableDeclaration", "scope": 1285, "src": "7412:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1270, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7412:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7411:6:5" }, "scope": 1458, "src": "7360:121:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1305, "nodeType": "Block", "src": "7683:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1296, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1287, "src": "7711:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1297, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1289, "src": "7714:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1295, "name": "safeToMul", "nodeType": "Identifier", "overloadedDeclarations": [ 1243, 1394 ], "referencedDeclaration": 1243, "src": "7701:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256,uint256) pure returns (bool)" } }, "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7701:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "7693:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7693:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1300, "nodeType": "ExpressionStatement", "src": "7693:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1301, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1287, "src": "7734:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1302, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1289, "src": "7738:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7734:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1293, "id": 1304, "nodeType": "Return", "src": "7727:12:5" } ] }, "documentation": "@dev Returns product if no overflow occurred\n @param a First factor\n @param b Second factor\n @return Product", "id": 1306, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 1290, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1287, "name": "a", "nodeType": "VariableDeclaration", "scope": 1306, "src": "7638:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1286, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7638:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1289, "name": "b", "nodeType": "VariableDeclaration", "scope": 1306, "src": "7646:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1288, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7646:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7637:16:5" }, "returnParameters": { "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1292, "name": "", "nodeType": "VariableDeclaration", "scope": 1306, "src": "7677:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1291, "name": "uint", "nodeType": "ElementaryTypeName", "src": "7677:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "7676:6:5" }, "scope": 1458, "src": "7625:121:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1337, "nodeType": "Block", "src": "7979:70:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1315, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1310, "src": "7997:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8002:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7997:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1318, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1308, "src": "8007:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1319, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1310, "src": "8011:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8007:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "id": 1321, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1308, "src": "8016:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8007:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7997:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1324, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7996:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1325, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1310, "src": "8023:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8027:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8023:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1328, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1308, "src": "8032:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1329, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1310, "src": "8036:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8032:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1331, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1308, "src": "8040:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8032:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8023:18:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1334, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8022:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7996:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1314, "id": 1336, "nodeType": "Return", "src": "7989:53:5" } ] }, "documentation": "@dev Returns whether an add operation causes an overflow\n @param a First addend\n @param b Second addend\n @return Did no overflow occur?", "id": 1338, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToAdd", "nodeType": "FunctionDefinition", "parameters": { "id": 1311, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1308, "name": "a", "nodeType": "VariableDeclaration", "scope": 1338, "src": "7936:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1307, "name": "int", "nodeType": "ElementaryTypeName", "src": "7936:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1310, "name": "b", "nodeType": "VariableDeclaration", "scope": 1338, "src": "7943:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1309, "name": "int", "nodeType": "ElementaryTypeName", "src": "7943:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "7935:14:5" }, "returnParameters": { "id": 1314, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1313, "name": "", "nodeType": "VariableDeclaration", "scope": 1338, "src": "7973:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1312, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7973:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "7972:6:5" }, "scope": 1458, "src": "7917:132:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1369, "nodeType": "Block", "src": "8283:70:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1349, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1347, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1342, "src": "8301:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8306:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8301:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1354, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1350, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "8311:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1351, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1342, "src": "8315:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8311:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 1353, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "8320:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8311:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8301:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1356, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8300:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1357, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1342, "src": "8327:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8331:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8327:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1360, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "8336:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1361, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1342, "src": "8340:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8336:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "id": 1363, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1340, "src": "8344:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8336:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8327:18:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1366, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8326:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8300:46:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1346, "id": 1368, "nodeType": "Return", "src": "8293:53:5" } ] }, "documentation": "@dev Returns whether a subtraction operation causes an underflow\n @param a Minuend\n @param b Subtrahend\n @return Did no underflow occur?", "id": 1370, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToSub", "nodeType": "FunctionDefinition", "parameters": { "id": 1343, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1340, "name": "a", "nodeType": "VariableDeclaration", "scope": 1370, "src": "8240:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1339, "name": "int", "nodeType": "ElementaryTypeName", "src": "8240:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1342, "name": "b", "nodeType": "VariableDeclaration", "scope": 1370, "src": "8247:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1341, "name": "int", "nodeType": "ElementaryTypeName", "src": "8247:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "8239:14:5" }, "returnParameters": { "id": 1346, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1345, "name": "", "nodeType": "VariableDeclaration", "scope": 1370, "src": "8277:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1344, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8277:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8276:6:5" }, "scope": 1458, "src": "8221:132:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1393, "nodeType": "Block", "src": "8590:52:5", "statements": [ { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1379, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1374, "src": "8608:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8613:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8608:6:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1382, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8607:8:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1383, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1372, "src": "8620:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1384, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1374, "src": "8624:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8620:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "id": 1386, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1374, "src": "8628:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8620:9:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 1388, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1372, "src": "8633:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8620:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1390, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "8619:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8607:28:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1378, "id": 1392, "nodeType": "Return", "src": "8600:35:5" } ] }, "documentation": "@dev Returns whether a multiply operation causes an overflow\n @param a First factor\n @param b Second factor\n @return Did no overflow occur?", "id": 1394, "implemented": true, "kind": "function", "modifiers": [], "name": "safeToMul", "nodeType": "FunctionDefinition", "parameters": { "id": 1375, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1372, "name": "a", "nodeType": "VariableDeclaration", "scope": 1394, "src": "8547:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1371, "name": "int", "nodeType": "ElementaryTypeName", "src": "8547:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1374, "name": "b", "nodeType": "VariableDeclaration", "scope": 1394, "src": "8554:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1373, "name": "int", "nodeType": "ElementaryTypeName", "src": "8554:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "8546:14:5" }, "returnParameters": { "id": 1378, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1377, "name": "", "nodeType": "VariableDeclaration", "scope": 1394, "src": "8584:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1376, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8584:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8583:6:5" }, "scope": 1458, "src": "8528:114:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1414, "nodeType": "Block", "src": "8833:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1405, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "8861:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "argumentTypes": null, "id": 1406, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "8864:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1404, "name": "safeToAdd", "nodeType": "Identifier", "overloadedDeclarations": [ 1207, 1338 ], "referencedDeclaration": 1338, "src": "8851:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_bool_$", "typeString": "function (int256,int256) pure returns (bool)" } }, "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8851:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1403, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "8843:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1408, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8843:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1409, "nodeType": "ExpressionStatement", "src": "8843:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1412, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1410, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1396, "src": "8884:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "id": 1411, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "8888:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "8884:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 1402, "id": 1413, "nodeType": "Return", "src": "8877:12:5" } ] }, "documentation": "@dev Returns sum if no overflow occurred\n @param a First addend\n @param b Second addend\n @return Sum", "id": 1415, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 1399, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1396, "name": "a", "nodeType": "VariableDeclaration", "scope": 1415, "src": "8791:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1395, "name": "int", "nodeType": "ElementaryTypeName", "src": "8791:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1398, "name": "b", "nodeType": "VariableDeclaration", "scope": 1415, "src": "8798:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1397, "name": "int", "nodeType": "ElementaryTypeName", "src": "8798:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "8790:14:5" }, "returnParameters": { "id": 1402, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1401, "name": "", "nodeType": "VariableDeclaration", "scope": 1415, "src": "8828:3:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1400, "name": "int", "nodeType": "ElementaryTypeName", "src": "8828:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "8827:5:5" }, "scope": 1458, "src": "8778:118:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1435, "nodeType": "Block", "src": "9093:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1426, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1417, "src": "9121:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "argumentTypes": null, "id": 1427, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1419, "src": "9124:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1425, "name": "safeToSub", "nodeType": "Identifier", "overloadedDeclarations": [ 1221, 1370 ], "referencedDeclaration": 1370, "src": "9111:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_bool_$", "typeString": "function (int256,int256) pure returns (bool)" } }, "id": 1428, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9111:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1424, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "9103:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1429, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9103:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1430, "nodeType": "ExpressionStatement", "src": "9103:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1431, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1417, "src": "9144:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1432, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1419, "src": "9148:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "9144:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 1423, "id": 1434, "nodeType": "Return", "src": "9137:12:5" } ] }, "documentation": "@dev Returns difference if no overflow occurred\n @param a Minuend\n @param b Subtrahend\n @return Difference", "id": 1436, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 1420, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1417, "name": "a", "nodeType": "VariableDeclaration", "scope": 1436, "src": "9051:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1416, "name": "int", "nodeType": "ElementaryTypeName", "src": "9051:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1419, "name": "b", "nodeType": "VariableDeclaration", "scope": 1436, "src": "9058:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1418, "name": "int", "nodeType": "ElementaryTypeName", "src": "9058:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "9050:14:5" }, "returnParameters": { "id": 1423, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1422, "name": "", "nodeType": "VariableDeclaration", "scope": 1436, "src": "9088:3:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1421, "name": "int", "nodeType": "ElementaryTypeName", "src": "9088:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "9087:5:5" }, "scope": 1458, "src": "9038:118:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { "id": 1456, "nodeType": "Block", "src": "9355:63:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1447, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1438, "src": "9383:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, { "argumentTypes": null, "id": 1448, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1440, "src": "9386:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 1446, "name": "safeToMul", "nodeType": "Identifier", "overloadedDeclarations": [ 1243, 1394 ], "referencedDeclaration": 1394, "src": "9373:9:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_bool_$", "typeString": "function (int256,int256) pure returns (bool)" } }, "id": 1449, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9373:15:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1445, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1581, 1582 ], "referencedDeclaration": 1581, "src": "9365:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9365:24:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1451, "nodeType": "ExpressionStatement", "src": "9365:24:5" }, { "expression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1452, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1438, "src": "9406:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "id": 1453, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1440, "src": "9410:1:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "9406:5:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 1444, "id": 1455, "nodeType": "Return", "src": "9399:12:5" } ] }, "documentation": "@dev Returns product if no overflow occurred\n @param a First factor\n @param b Second factor\n @return Product", "id": 1457, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 1441, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1438, "name": "a", "nodeType": "VariableDeclaration", "scope": 1457, "src": "9313:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1437, "name": "int", "nodeType": "ElementaryTypeName", "src": "9313:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1440, "name": "b", "nodeType": "VariableDeclaration", "scope": 1457, "src": "9320:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1439, "name": "int", "nodeType": "ElementaryTypeName", "src": "9320:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "9312:14:5" }, "returnParameters": { "id": 1444, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1443, "name": "", "nodeType": "VariableDeclaration", "scope": 1457, "src": "9350:3:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 1442, "name": "int", "nodeType": "ElementaryTypeName", "src": "9350:3:5", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": null, "visibility": "internal" } ], "src": "9349:5:5" }, "scope": 1458, "src": "9300:118:5", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], "scope": 1459, "src": "200:9220:5" } ], "src": "0:9421:5" }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.0.10", "updatedAt": "2019-06-03T08:59:02.114Z", "devdoc": { "author": "Alan Lu - Stefan George - ", "methods": { "exp(int256)": { "details": "Returns natural exponential function value of given x", "params": { "x": "x" }, "return": "e**x" }, "floorLog2(uint256)": { "details": "Returns base 2 logarithm value of given x", "params": { "x": "x" }, "return": "logarithmic value" }, "ln(uint256)": { "details": "Returns natural logarithm value of given x", "params": { "x": "x" }, "return": "ln(x)" }, "max(int256[])": { "details": "Returns maximum of an array", "params": { "nums": "Numbers to look through" }, "return": "Maximum number" } }, "title": "Math library - Allows calculation of logarithmic and exponential functions" }, "userdoc": { "methods": {} } }