-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompiled_sol.json
More file actions
1 lines (1 loc) · 89.9 KB
/
compiled_sol.json
File metadata and controls
1 lines (1 loc) · 89.9 KB
1
{"contracts": {"election.sol": {"Ballot": {"abi": [{"inputs": [{"internalType": "string[]", "name": "proposalNames", "type": "string[]"}], "stateMutability": "nonpayable", "type": "constructor"}, {"inputs": [], "name": "chairperson", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "to", "type": "address"}], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "voter", "type": "address"}], "name": "giveRightToVote", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "name": "proposals", "outputs": [{"internalType": "string", "name": "name", "type": "string"}, {"internalType": "uint256", "name": "voteCount", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposal", "type": "uint256"}], "name": "vote", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "", "type": "address"}], "name": "voters", "outputs": [{"internalType": "uint256", "name": "weight", "type": "uint256"}, {"internalType": "bool", "name": "voted", "type": "bool"}, {"internalType": "address", "name": "delegate", "type": "address"}, {"internalType": "uint256", "name": "vote", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "winnerName", "outputs": [{"internalType": "string", "name": "winnerName_", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "winningProposal", "outputs": [{"internalType": "uint256", "name": "winningProposal_", "type": "uint256"}], "stateMutability": "view", "type": "function"}], "evm": {"bytecode": {"generatedSources": [{"ast": {"nodeType": "YulBlock", "src": "0:4602:1", "statements": [{"body": {"nodeType": "YulBlock", "src": "146:507:1", "statements": [{"nodeType": "YulAssignment", "src": "156:99:1", "value": {"arguments": [{"arguments": [{"name": "length", "nodeType": "YulIdentifier", "src": "247:6:1"}], "functionName": {"name": "array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr", "nodeType": "YulIdentifier", "src": "180:66:1"}, "nodeType": "YulFunctionCall", "src": "180:74:1"}], "functionName": {"name": "allocateMemory", "nodeType": "YulIdentifier", "src": "165:14:1"}, "nodeType": "YulFunctionCall", "src": "165:90:1"}, "variableNames": [{"name": "array", "nodeType": "YulIdentifier", "src": "156:5:1"}]}, {"nodeType": "YulVariableDeclaration", "src": "264:16:1", "value": {"name": "array", "nodeType": "YulIdentifier", "src": "275:5:1"}, "variables": [{"name": "dst", "nodeType": "YulTypedName", "src": "268:3:1", "type": ""}]}, {"expression": {"arguments": [{"name": "array", "nodeType": "YulIdentifier", "src": "296:5:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "303:6:1"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "289:6:1"}, "nodeType": "YulFunctionCall", "src": "289:21:1"}, "nodeType": "YulExpressionStatement", "src": "289:21:1"}, {"nodeType": "YulAssignment", "src": "311:23:1", "value": {"arguments": [{"name": "array", "nodeType": "YulIdentifier", "src": "322:5:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "329:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "318:3:1"}, "nodeType": "YulFunctionCall", "src": "318:16:1"}, "variableNames": [{"name": "dst", "nodeType": "YulIdentifier", "src": "311:3:1"}]}, {"nodeType": "YulVariableDeclaration", "src": "343:17:1", "value": {"name": "offset", "nodeType": "YulIdentifier", "src": "354:6:1"}, "variables": [{"name": "src", "nodeType": "YulTypedName", "src": "347:3:1", "type": ""}]}, {"body": {"nodeType": "YulBlock", "src": "430:217:1", "statements": [{"nodeType": "YulVariableDeclaration", "src": "444:41:1", "value": {"arguments": [{"name": "offset", "nodeType": "YulIdentifier", "src": "466:6:1"}, {"arguments": [{"name": "src", "nodeType": "YulIdentifier", "src": "480:3:1"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "474:5:1"}, "nodeType": "YulFunctionCall", "src": "474:10:1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "462:3:1"}, "nodeType": "YulFunctionCall", "src": "462:23:1"}, "variables": [{"name": "elementPos", "nodeType": "YulTypedName", "src": "448:10:1", "type": ""}]}, {"expression": {"arguments": [{"name": "dst", "nodeType": "YulIdentifier", "src": "505:3:1"}, {"arguments": [{"name": "elementPos", "nodeType": "YulIdentifier", "src": "552:10:1"}, {"name": "end", "nodeType": "YulIdentifier", "src": "564:3:1"}], "functionName": {"name": "abi_decode_t_string_memory_ptr_fromMemory", "nodeType": "YulIdentifier", "src": "510:41:1"}, "nodeType": "YulFunctionCall", "src": "510:58:1"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "498:6:1"}, "nodeType": "YulFunctionCall", "src": "498:71:1"}, "nodeType": "YulExpressionStatement", "src": "498:71:1"}, {"nodeType": "YulAssignment", "src": "582:21:1", "value": {"arguments": [{"name": "dst", "nodeType": "YulIdentifier", "src": "593:3:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "598:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "589:3:1"}, "nodeType": "YulFunctionCall", "src": "589:14:1"}, "variableNames": [{"name": "dst", "nodeType": "YulIdentifier", "src": "582:3:1"}]}, {"nodeType": "YulAssignment", "src": "616:21:1", "value": {"arguments": [{"name": "src", "nodeType": "YulIdentifier", "src": "627:3:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "632:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "623:3:1"}, "nodeType": "YulFunctionCall", "src": "623:14:1"}, "variableNames": [{"name": "src", "nodeType": "YulIdentifier", "src": "616:3:1"}]}]}, "condition": {"arguments": [{"name": "i", "nodeType": "YulIdentifier", "src": "392:1:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "395:6:1"}], "functionName": {"name": "lt", "nodeType": "YulIdentifier", "src": "389:2:1"}, "nodeType": "YulFunctionCall", "src": "389:13:1"}, "nodeType": "YulForLoop", "post": {"nodeType": "YulBlock", "src": "403:18:1", "statements": [{"nodeType": "YulAssignment", "src": "405:14:1", "value": {"arguments": [{"name": "i", "nodeType": "YulIdentifier", "src": "414:1:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "417:1:1", "type": "", "value": "1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "410:3:1"}, "nodeType": "YulFunctionCall", "src": "410:9:1"}, "variableNames": [{"name": "i", "nodeType": "YulIdentifier", "src": "405:1:1"}]}]}, "pre": {"nodeType": "YulBlock", "src": "374:14:1", "statements": [{"nodeType": "YulVariableDeclaration", "src": "376:10:1", "value": {"kind": "number", "nodeType": "YulLiteral", "src": "385:1:1", "type": "", "value": "0"}, "variables": [{"name": "i", "nodeType": "YulTypedName", "src": "380:1:1", "type": ""}]}]}, "src": "370:277:1"}]}, "name": "abi_decode_available_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "offset", "nodeType": "YulTypedName", "src": "116:6:1", "type": ""}, {"name": "length", "nodeType": "YulTypedName", "src": "124:6:1", "type": ""}, {"name": "end", "nodeType": "YulTypedName", "src": "132:3:1", "type": ""}], "returnVariables": [{"name": "array", "nodeType": "YulTypedName", "src": "140:5:1", "type": ""}], "src": "23:630:1"}, {"body": {"nodeType": "YulBlock", "src": "754:258:1", "statements": [{"nodeType": "YulAssignment", "src": "764:74:1", "value": {"arguments": [{"arguments": [{"name": "length", "nodeType": "YulIdentifier", "src": "830:6:1"}], "functionName": {"name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "788:41:1"}, "nodeType": "YulFunctionCall", "src": "788:49:1"}], "functionName": {"name": "allocateMemory", "nodeType": "YulIdentifier", "src": "773:14:1"}, "nodeType": "YulFunctionCall", "src": "773:65:1"}, "variableNames": [{"name": "array", "nodeType": "YulIdentifier", "src": "764:5:1"}]}, {"expression": {"arguments": [{"name": "array", "nodeType": "YulIdentifier", "src": "854:5:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "861:6:1"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "847:6:1"}, "nodeType": "YulFunctionCall", "src": "847:21:1"}, "nodeType": "YulExpressionStatement", "src": "847:21:1"}, {"nodeType": "YulVariableDeclaration", "src": "877:27:1", "value": {"arguments": [{"name": "array", "nodeType": "YulIdentifier", "src": "892:5:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "899:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "888:3:1"}, "nodeType": "YulFunctionCall", "src": "888:16:1"}, "variables": [{"name": "dst", "nodeType": "YulTypedName", "src": "881:3:1", "type": ""}]}, {"body": {"nodeType": "YulBlock", "src": "942:16:1", "statements": [{"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "951:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "954:1:1", "type": "", "value": "0"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "944:6:1"}, "nodeType": "YulFunctionCall", "src": "944:12:1"}, "nodeType": "YulExpressionStatement", "src": "944:12:1"}]}, "condition": {"arguments": [{"arguments": [{"name": "src", "nodeType": "YulIdentifier", "src": "923:3:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "928:6:1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "919:3:1"}, "nodeType": "YulFunctionCall", "src": "919:16:1"}, {"name": "end", "nodeType": "YulIdentifier", "src": "937:3:1"}], "functionName": {"name": "gt", "nodeType": "YulIdentifier", "src": "916:2:1"}, "nodeType": "YulFunctionCall", "src": "916:25:1"}, "nodeType": "YulIf", "src": "913:2:1"}, {"expression": {"arguments": [{"name": "src", "nodeType": "YulIdentifier", "src": "989:3:1"}, {"name": "dst", "nodeType": "YulIdentifier", "src": "994:3:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "999:6:1"}], "functionName": {"name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "967:21:1"}, "nodeType": "YulFunctionCall", "src": "967:39:1"}, "nodeType": "YulExpressionStatement", "src": "967:39:1"}]}, "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "src", "nodeType": "YulTypedName", "src": "727:3:1", "type": ""}, {"name": "length", "nodeType": "YulTypedName", "src": "732:6:1", "type": ""}, {"name": "end", "nodeType": "YulTypedName", "src": "740:3:1", "type": ""}], "returnVariables": [{"name": "array", "nodeType": "YulTypedName", "src": "748:5:1", "type": ""}], "src": "659:353:1"}, {"body": {"nodeType": "YulBlock", "src": "1132:240:1", "statements": [{"body": {"nodeType": "YulBlock", "src": "1181:16:1", "statements": [{"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "1190:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1193:1:1", "type": "", "value": "0"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "1183:6:1"}, "nodeType": "YulFunctionCall", "src": "1183:12:1"}, "nodeType": "YulExpressionStatement", "src": "1183:12:1"}]}, "condition": {"arguments": [{"arguments": [{"arguments": [{"name": "offset", "nodeType": "YulIdentifier", "src": "1160:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1168:4:1", "type": "", "value": "0x1f"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "1156:3:1"}, "nodeType": "YulFunctionCall", "src": "1156:17:1"}, {"name": "end", "nodeType": "YulIdentifier", "src": "1175:3:1"}], "functionName": {"name": "slt", "nodeType": "YulIdentifier", "src": "1152:3:1"}, "nodeType": "YulFunctionCall", "src": "1152:27:1"}], "functionName": {"name": "iszero", "nodeType": "YulIdentifier", "src": "1145:6:1"}, "nodeType": "YulFunctionCall", "src": "1145:35:1"}, "nodeType": "YulIf", "src": "1142:2:1"}, {"nodeType": "YulVariableDeclaration", "src": "1206:27:1", "value": {"arguments": [{"name": "offset", "nodeType": "YulIdentifier", "src": "1226:6:1"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "1220:5:1"}, "nodeType": "YulFunctionCall", "src": "1220:13:1"}, "variables": [{"name": "length", "nodeType": "YulTypedName", "src": "1210:6:1", "type": ""}]}, {"nodeType": "YulAssignment", "src": "1242:124:1", "value": {"arguments": [{"arguments": [{"name": "offset", "nodeType": "YulIdentifier", "src": "1339:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1347:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "1335:3:1"}, "nodeType": "YulFunctionCall", "src": "1335:17:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "1354:6:1"}, {"name": "end", "nodeType": "YulIdentifier", "src": "1362:3:1"}], "functionName": {"name": "abi_decode_available_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory", "nodeType": "YulIdentifier", "src": "1251:83:1"}, "nodeType": "YulFunctionCall", "src": "1251:115:1"}, "variableNames": [{"name": "array", "nodeType": "YulIdentifier", "src": "1242:5:1"}]}]}, "name": "abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "offset", "nodeType": "YulTypedName", "src": "1110:6:1", "type": ""}, {"name": "end", "nodeType": "YulTypedName", "src": "1118:3:1", "type": ""}], "returnVariables": [{"name": "array", "nodeType": "YulTypedName", "src": "1126:5:1", "type": ""}], "src": "1034:338:1"}, {"body": {"nodeType": "YulBlock", "src": "1465:215:1", "statements": [{"body": {"nodeType": "YulBlock", "src": "1514:16:1", "statements": [{"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "1523:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1526:1:1", "type": "", "value": "0"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "1516:6:1"}, "nodeType": "YulFunctionCall", "src": "1516:12:1"}, "nodeType": "YulExpressionStatement", "src": "1516:12:1"}]}, "condition": {"arguments": [{"arguments": [{"arguments": [{"name": "offset", "nodeType": "YulIdentifier", "src": "1493:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1501:4:1", "type": "", "value": "0x1f"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "1489:3:1"}, "nodeType": "YulFunctionCall", "src": "1489:17:1"}, {"name": "end", "nodeType": "YulIdentifier", "src": "1508:3:1"}], "functionName": {"name": "slt", "nodeType": "YulIdentifier", "src": "1485:3:1"}, "nodeType": "YulFunctionCall", "src": "1485:27:1"}], "functionName": {"name": "iszero", "nodeType": "YulIdentifier", "src": "1478:6:1"}, "nodeType": "YulFunctionCall", "src": "1478:35:1"}, "nodeType": "YulIf", "src": "1475:2:1"}, {"nodeType": "YulVariableDeclaration", "src": "1539:27:1", "value": {"arguments": [{"name": "offset", "nodeType": "YulIdentifier", "src": "1559:6:1"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "1553:5:1"}, "nodeType": "YulFunctionCall", "src": "1553:13:1"}, "variables": [{"name": "length", "nodeType": "YulTypedName", "src": "1543:6:1", "type": ""}]}, {"nodeType": "YulAssignment", "src": "1575:99:1", "value": {"arguments": [{"arguments": [{"name": "offset", "nodeType": "YulIdentifier", "src": "1647:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1655:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "1643:3:1"}, "nodeType": "YulFunctionCall", "src": "1643:17:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "1662:6:1"}, {"name": "end", "nodeType": "YulIdentifier", "src": "1670:3:1"}], "functionName": {"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", "nodeType": "YulIdentifier", "src": "1584:58:1"}, "nodeType": "YulFunctionCall", "src": "1584:90:1"}, "variableNames": [{"name": "array", "nodeType": "YulIdentifier", "src": "1575:5:1"}]}]}, "name": "abi_decode_t_string_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "offset", "nodeType": "YulTypedName", "src": "1443:6:1", "type": ""}, {"name": "end", "nodeType": "YulTypedName", "src": "1451:3:1", "type": ""}], "returnVariables": [{"name": "array", "nodeType": "YulTypedName", "src": "1459:5:1", "type": ""}], "src": "1392:288:1"}, {"body": {"nodeType": "YulBlock", "src": "1798:328:1", "statements": [{"body": {"nodeType": "YulBlock", "src": "1844:16:1", "statements": [{"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "1853:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1856:1:1", "type": "", "value": "0"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "1846:6:1"}, "nodeType": "YulFunctionCall", "src": "1846:12:1"}, "nodeType": "YulExpressionStatement", "src": "1846:12:1"}]}, "condition": {"arguments": [{"arguments": [{"name": "dataEnd", "nodeType": "YulIdentifier", "src": "1819:7:1"}, {"name": "headStart", "nodeType": "YulIdentifier", "src": "1828:9:1"}], "functionName": {"name": "sub", "nodeType": "YulIdentifier", "src": "1815:3:1"}, "nodeType": "YulFunctionCall", "src": "1815:23:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1840:2:1", "type": "", "value": "32"}], "functionName": {"name": "slt", "nodeType": "YulIdentifier", "src": "1811:3:1"}, "nodeType": "YulFunctionCall", "src": "1811:32:1"}, "nodeType": "YulIf", "src": "1808:2:1"}, {"nodeType": "YulBlock", "src": "1870:249:1", "statements": [{"nodeType": "YulVariableDeclaration", "src": "1885:38:1", "value": {"arguments": [{"arguments": [{"name": "headStart", "nodeType": "YulIdentifier", "src": "1909:9:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1920:1:1", "type": "", "value": "0"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "1905:3:1"}, "nodeType": "YulFunctionCall", "src": "1905:17:1"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "1899:5:1"}, "nodeType": "YulFunctionCall", "src": "1899:24:1"}, "variables": [{"name": "offset", "nodeType": "YulTypedName", "src": "1889:6:1", "type": ""}]}, {"body": {"nodeType": "YulBlock", "src": "1970:16:1", "statements": [{"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "1979:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1982:1:1", "type": "", "value": "0"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "1972:6:1"}, "nodeType": "YulFunctionCall", "src": "1972:12:1"}, "nodeType": "YulExpressionStatement", "src": "1972:12:1"}]}, "condition": {"arguments": [{"name": "offset", "nodeType": "YulIdentifier", "src": "1942:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "1950:18:1", "type": "", "value": "0xffffffffffffffff"}], "functionName": {"name": "gt", "nodeType": "YulIdentifier", "src": "1939:2:1"}, "nodeType": "YulFunctionCall", "src": "1939:30:1"}, "nodeType": "YulIf", "src": "1936:2:1"}, {"nodeType": "YulAssignment", "src": "2000:109:1", "value": {"arguments": [{"arguments": [{"name": "headStart", "nodeType": "YulIdentifier", "src": "2081:9:1"}, {"name": "offset", "nodeType": "YulIdentifier", "src": "2092:6:1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "2077:3:1"}, "nodeType": "YulFunctionCall", "src": "2077:22:1"}, {"name": "dataEnd", "nodeType": "YulIdentifier", "src": "2101:7:1"}], "functionName": {"name": "abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory", "nodeType": "YulIdentifier", "src": "2010:66:1"}, "nodeType": "YulFunctionCall", "src": "2010:99:1"}, "variableNames": [{"name": "value0", "nodeType": "YulIdentifier", "src": "2000:6:1"}]}]}]}, "name": "abi_decode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "headStart", "nodeType": "YulTypedName", "src": "1768:9:1", "type": ""}, {"name": "dataEnd", "nodeType": "YulTypedName", "src": "1779:7:1", "type": ""}], "returnVariables": [{"name": "value0", "nodeType": "YulTypedName", "src": "1791:6:1", "type": ""}], "src": "1686:440:1"}, {"body": {"nodeType": "YulBlock", "src": "2172:243:1", "statements": [{"nodeType": "YulAssignment", "src": "2182:19:1", "value": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "2198:2:1", "type": "", "value": "64"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "2192:5:1"}, "nodeType": "YulFunctionCall", "src": "2192:9:1"}, "variableNames": [{"name": "memPtr", "nodeType": "YulIdentifier", "src": "2182:6:1"}]}, {"nodeType": "YulVariableDeclaration", "src": "2210:35:1", "value": {"arguments": [{"name": "memPtr", "nodeType": "YulIdentifier", "src": "2232:6:1"}, {"name": "size", "nodeType": "YulIdentifier", "src": "2240:4:1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "2228:3:1"}, "nodeType": "YulFunctionCall", "src": "2228:17:1"}, "variables": [{"name": "newFreePtr", "nodeType": "YulTypedName", "src": "2214:10:1", "type": ""}]}, {"body": {"nodeType": "YulBlock", "src": "2356:22:1", "statements": [{"expression": {"arguments": [], "functionName": {"name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "2358:16:1"}, "nodeType": "YulFunctionCall", "src": "2358:18:1"}, "nodeType": "YulExpressionStatement", "src": "2358:18:1"}]}, "condition": {"arguments": [{"arguments": [{"name": "newFreePtr", "nodeType": "YulIdentifier", "src": "2299:10:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2311:18:1", "type": "", "value": "0xffffffffffffffff"}], "functionName": {"name": "gt", "nodeType": "YulIdentifier", "src": "2296:2:1"}, "nodeType": "YulFunctionCall", "src": "2296:34:1"}, {"arguments": [{"name": "newFreePtr", "nodeType": "YulIdentifier", "src": "2335:10:1"}, {"name": "memPtr", "nodeType": "YulIdentifier", "src": "2347:6:1"}], "functionName": {"name": "lt", "nodeType": "YulIdentifier", "src": "2332:2:1"}, "nodeType": "YulFunctionCall", "src": "2332:22:1"}], "functionName": {"name": "or", "nodeType": "YulIdentifier", "src": "2293:2:1"}, "nodeType": "YulFunctionCall", "src": "2293:62:1"}, "nodeType": "YulIf", "src": "2290:2:1"}, {"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "2394:2:1", "type": "", "value": "64"}, {"name": "newFreePtr", "nodeType": "YulIdentifier", "src": "2398:10:1"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "2387:6:1"}, "nodeType": "YulFunctionCall", "src": "2387:22:1"}, "nodeType": "YulExpressionStatement", "src": "2387:22:1"}]}, "name": "allocateMemory", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "size", "nodeType": "YulTypedName", "src": "2156:4:1", "type": ""}], "returnVariables": [{"name": "memPtr", "nodeType": "YulTypedName", "src": "2165:6:1", "type": ""}], "src": "2132:283:1"}, {"body": {"nodeType": "YulBlock", "src": "2513:229:1", "statements": [{"body": {"nodeType": "YulBlock", "src": "2618:22:1", "statements": [{"expression": {"arguments": [], "functionName": {"name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "2620:16:1"}, "nodeType": "YulFunctionCall", "src": "2620:18:1"}, "nodeType": "YulExpressionStatement", "src": "2620:18:1"}]}, "condition": {"arguments": [{"name": "length", "nodeType": "YulIdentifier", "src": "2590:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2598:18:1", "type": "", "value": "0xffffffffffffffff"}], "functionName": {"name": "gt", "nodeType": "YulIdentifier", "src": "2587:2:1"}, "nodeType": "YulFunctionCall", "src": "2587:30:1"}, "nodeType": "YulIf", "src": "2584:2:1"}, {"nodeType": "YulAssignment", "src": "2650:25:1", "value": {"arguments": [{"name": "length", "nodeType": "YulIdentifier", "src": "2662:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2670:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "mul", "nodeType": "YulIdentifier", "src": "2658:3:1"}, "nodeType": "YulFunctionCall", "src": "2658:17:1"}, "variableNames": [{"name": "size", "nodeType": "YulIdentifier", "src": "2650:4:1"}]}, {"nodeType": "YulAssignment", "src": "2712:23:1", "value": {"arguments": [{"name": "size", "nodeType": "YulIdentifier", "src": "2724:4:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2730:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "2720:3:1"}, "nodeType": "YulFunctionCall", "src": "2720:15:1"}, "variableNames": [{"name": "size", "nodeType": "YulIdentifier", "src": "2712:4:1"}]}]}, "name": "array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "length", "nodeType": "YulTypedName", "src": "2497:6:1", "type": ""}], "returnVariables": [{"name": "size", "nodeType": "YulTypedName", "src": "2508:4:1", "type": ""}], "src": "2421:321:1"}, {"body": {"nodeType": "YulBlock", "src": "2815:265:1", "statements": [{"body": {"nodeType": "YulBlock", "src": "2920:22:1", "statements": [{"expression": {"arguments": [], "functionName": {"name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "2922:16:1"}, "nodeType": "YulFunctionCall", "src": "2922:18:1"}, "nodeType": "YulExpressionStatement", "src": "2922:18:1"}]}, "condition": {"arguments": [{"name": "length", "nodeType": "YulIdentifier", "src": "2892:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2900:18:1", "type": "", "value": "0xffffffffffffffff"}], "functionName": {"name": "gt", "nodeType": "YulIdentifier", "src": "2889:2:1"}, "nodeType": "YulFunctionCall", "src": "2889:30:1"}, "nodeType": "YulIf", "src": "2886:2:1"}, {"nodeType": "YulAssignment", "src": "2972:41:1", "value": {"arguments": [{"arguments": [{"name": "length", "nodeType": "YulIdentifier", "src": "2988:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "2996:4:1", "type": "", "value": "0x1f"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "2984:3:1"}, "nodeType": "YulFunctionCall", "src": "2984:17:1"}, {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "3007:4:1", "type": "", "value": "0x1f"}], "functionName": {"name": "not", "nodeType": "YulIdentifier", "src": "3003:3:1"}, "nodeType": "YulFunctionCall", "src": "3003:9:1"}], "functionName": {"name": "and", "nodeType": "YulIdentifier", "src": "2980:3:1"}, "nodeType": "YulFunctionCall", "src": "2980:33:1"}, "variableNames": [{"name": "size", "nodeType": "YulIdentifier", "src": "2972:4:1"}]}, {"nodeType": "YulAssignment", "src": "3050:23:1", "value": {"arguments": [{"name": "size", "nodeType": "YulIdentifier", "src": "3062:4:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3068:4:1", "type": "", "value": "0x20"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3058:3:1"}, "nodeType": "YulFunctionCall", "src": "3058:15:1"}, "variableNames": [{"name": "size", "nodeType": "YulIdentifier", "src": "3050:4:1"}]}]}, "name": "array_allocation_size_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "length", "nodeType": "YulTypedName", "src": "2799:6:1", "type": ""}], "returnVariables": [{"name": "size", "nodeType": "YulTypedName", "src": "2810:4:1", "type": ""}], "src": "2748:332:1"}, {"body": {"nodeType": "YulBlock", "src": "3131:32:1", "statements": [{"nodeType": "YulAssignment", "src": "3141:16:1", "value": {"name": "value", "nodeType": "YulIdentifier", "src": "3152:5:1"}, "variableNames": [{"name": "cleaned", "nodeType": "YulIdentifier", "src": "3141:7:1"}]}]}, "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "value", "nodeType": "YulTypedName", "src": "3113:5:1", "type": ""}], "returnVariables": [{"name": "cleaned", "nodeType": "YulTypedName", "src": "3123:7:1", "type": ""}], "src": "3086:77:1"}, {"body": {"nodeType": "YulBlock", "src": "3218:258:1", "statements": [{"nodeType": "YulVariableDeclaration", "src": "3228:10:1", "value": {"kind": "number", "nodeType": "YulLiteral", "src": "3237:1:1", "type": "", "value": "0"}, "variables": [{"name": "i", "nodeType": "YulTypedName", "src": "3232:1:1", "type": ""}]}, {"body": {"nodeType": "YulBlock", "src": "3297:63:1", "statements": [{"expression": {"arguments": [{"arguments": [{"name": "dst", "nodeType": "YulIdentifier", "src": "3322:3:1"}, {"name": "i", "nodeType": "YulIdentifier", "src": "3327:1:1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3318:3:1"}, "nodeType": "YulFunctionCall", "src": "3318:11:1"}, {"arguments": [{"arguments": [{"name": "src", "nodeType": "YulIdentifier", "src": "3341:3:1"}, {"name": "i", "nodeType": "YulIdentifier", "src": "3346:1:1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3337:3:1"}, "nodeType": "YulFunctionCall", "src": "3337:11:1"}], "functionName": {"name": "mload", "nodeType": "YulIdentifier", "src": "3331:5:1"}, "nodeType": "YulFunctionCall", "src": "3331:18:1"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "3311:6:1"}, "nodeType": "YulFunctionCall", "src": "3311:39:1"}, "nodeType": "YulExpressionStatement", "src": "3311:39:1"}]}, "condition": {"arguments": [{"name": "i", "nodeType": "YulIdentifier", "src": "3258:1:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "3261:6:1"}], "functionName": {"name": "lt", "nodeType": "YulIdentifier", "src": "3255:2:1"}, "nodeType": "YulFunctionCall", "src": "3255:13:1"}, "nodeType": "YulForLoop", "post": {"nodeType": "YulBlock", "src": "3269:19:1", "statements": [{"nodeType": "YulAssignment", "src": "3271:15:1", "value": {"arguments": [{"name": "i", "nodeType": "YulIdentifier", "src": "3280:1:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3283:2:1", "type": "", "value": "32"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3276:3:1"}, "nodeType": "YulFunctionCall", "src": "3276:10:1"}, "variableNames": [{"name": "i", "nodeType": "YulIdentifier", "src": "3271:1:1"}]}]}, "pre": {"nodeType": "YulBlock", "src": "3251:3:1", "statements": []}, "src": "3247:113:1"}, {"body": {"nodeType": "YulBlock", "src": "3394:76:1", "statements": [{"expression": {"arguments": [{"arguments": [{"name": "dst", "nodeType": "YulIdentifier", "src": "3444:3:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "3449:6:1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "3440:3:1"}, "nodeType": "YulFunctionCall", "src": "3440:16:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3458:1:1", "type": "", "value": "0"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "3433:6:1"}, "nodeType": "YulFunctionCall", "src": "3433:27:1"}, "nodeType": "YulExpressionStatement", "src": "3433:27:1"}]}, "condition": {"arguments": [{"name": "i", "nodeType": "YulIdentifier", "src": "3375:1:1"}, {"name": "length", "nodeType": "YulIdentifier", "src": "3378:6:1"}], "functionName": {"name": "gt", "nodeType": "YulIdentifier", "src": "3372:2:1"}, "nodeType": "YulFunctionCall", "src": "3372:13:1"}, "nodeType": "YulIf", "src": "3369:2:1"}]}, "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "src", "nodeType": "YulTypedName", "src": "3200:3:1", "type": ""}, {"name": "dst", "nodeType": "YulTypedName", "src": "3205:3:1", "type": ""}, {"name": "length", "nodeType": "YulTypedName", "src": "3210:6:1", "type": ""}], "src": "3169:307:1"}, {"body": {"nodeType": "YulBlock", "src": "3533:269:1", "statements": [{"nodeType": "YulAssignment", "src": "3543:22:1", "value": {"arguments": [{"name": "data", "nodeType": "YulIdentifier", "src": "3557:4:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3563:1:1", "type": "", "value": "2"}], "functionName": {"name": "div", "nodeType": "YulIdentifier", "src": "3553:3:1"}, "nodeType": "YulFunctionCall", "src": "3553:12:1"}, "variableNames": [{"name": "length", "nodeType": "YulIdentifier", "src": "3543:6:1"}]}, {"nodeType": "YulVariableDeclaration", "src": "3574:38:1", "value": {"arguments": [{"name": "data", "nodeType": "YulIdentifier", "src": "3604:4:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3610:1:1", "type": "", "value": "1"}], "functionName": {"name": "and", "nodeType": "YulIdentifier", "src": "3600:3:1"}, "nodeType": "YulFunctionCall", "src": "3600:12:1"}, "variables": [{"name": "outOfPlaceEncoding", "nodeType": "YulTypedName", "src": "3578:18:1", "type": ""}]}, {"body": {"nodeType": "YulBlock", "src": "3651:51:1", "statements": [{"nodeType": "YulAssignment", "src": "3665:27:1", "value": {"arguments": [{"name": "length", "nodeType": "YulIdentifier", "src": "3679:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3687:4:1", "type": "", "value": "0x7f"}], "functionName": {"name": "and", "nodeType": "YulIdentifier", "src": "3675:3:1"}, "nodeType": "YulFunctionCall", "src": "3675:17:1"}, "variableNames": [{"name": "length", "nodeType": "YulIdentifier", "src": "3665:6:1"}]}]}, "condition": {"arguments": [{"name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "3631:18:1"}], "functionName": {"name": "iszero", "nodeType": "YulIdentifier", "src": "3624:6:1"}, "nodeType": "YulFunctionCall", "src": "3624:26:1"}, "nodeType": "YulIf", "src": "3621:2:1"}, {"body": {"nodeType": "YulBlock", "src": "3754:42:1", "statements": [{"expression": {"arguments": [], "functionName": {"name": "panic_error_0x22", "nodeType": "YulIdentifier", "src": "3768:16:1"}, "nodeType": "YulFunctionCall", "src": "3768:18:1"}, "nodeType": "YulExpressionStatement", "src": "3768:18:1"}]}, "condition": {"arguments": [{"name": "outOfPlaceEncoding", "nodeType": "YulIdentifier", "src": "3718:18:1"}, {"arguments": [{"name": "length", "nodeType": "YulIdentifier", "src": "3741:6:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3749:2:1", "type": "", "value": "32"}], "functionName": {"name": "lt", "nodeType": "YulIdentifier", "src": "3738:2:1"}, "nodeType": "YulFunctionCall", "src": "3738:14:1"}], "functionName": {"name": "eq", "nodeType": "YulIdentifier", "src": "3715:2:1"}, "nodeType": "YulFunctionCall", "src": "3715:38:1"}, "nodeType": "YulIf", "src": "3712:2:1"}]}, "name": "extract_byte_array_length", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "data", "nodeType": "YulTypedName", "src": "3517:4:1", "type": ""}], "returnVariables": [{"name": "length", "nodeType": "YulTypedName", "src": "3526:6:1", "type": ""}], "src": "3482:320:1"}, {"body": {"nodeType": "YulBlock", "src": "3851:190:1", "statements": [{"nodeType": "YulAssignment", "src": "3861:33:1", "value": {"arguments": [{"name": "value", "nodeType": "YulIdentifier", "src": "3888:5:1"}], "functionName": {"name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "3870:17:1"}, "nodeType": "YulFunctionCall", "src": "3870:24:1"}, "variableNames": [{"name": "value", "nodeType": "YulIdentifier", "src": "3861:5:1"}]}, {"body": {"nodeType": "YulBlock", "src": "3984:22:1", "statements": [{"expression": {"arguments": [], "functionName": {"name": "panic_error_0x11", "nodeType": "YulIdentifier", "src": "3986:16:1"}, "nodeType": "YulFunctionCall", "src": "3986:18:1"}, "nodeType": "YulExpressionStatement", "src": "3986:18:1"}]}, "condition": {"arguments": [{"name": "value", "nodeType": "YulIdentifier", "src": "3909:5:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "3916:66:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}], "functionName": {"name": "eq", "nodeType": "YulIdentifier", "src": "3906:2:1"}, "nodeType": "YulFunctionCall", "src": "3906:77:1"}, "nodeType": "YulIf", "src": "3903:2:1"}, {"nodeType": "YulAssignment", "src": "4015:20:1", "value": {"arguments": [{"name": "value", "nodeType": "YulIdentifier", "src": "4026:5:1"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4033:1:1", "type": "", "value": "1"}], "functionName": {"name": "add", "nodeType": "YulIdentifier", "src": "4022:3:1"}, "nodeType": "YulFunctionCall", "src": "4022:13:1"}, "variableNames": [{"name": "ret", "nodeType": "YulIdentifier", "src": "4015:3:1"}]}]}, "name": "increment_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [{"name": "value", "nodeType": "YulTypedName", "src": "3837:5:1", "type": ""}], "returnVariables": [{"name": "ret", "nodeType": "YulTypedName", "src": "3847:3:1", "type": ""}], "src": "3808:233:1"}, {"body": {"nodeType": "YulBlock", "src": "4075:152:1", "statements": [{"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4092:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4095:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "4085:6:1"}, "nodeType": "YulFunctionCall", "src": "4085:88:1"}, "nodeType": "YulExpressionStatement", "src": "4085:88:1"}, {"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4189:1:1", "type": "", "value": "4"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4192:4:1", "type": "", "value": "0x11"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "4182:6:1"}, "nodeType": "YulFunctionCall", "src": "4182:15:1"}, "nodeType": "YulExpressionStatement", "src": "4182:15:1"}, {"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4213:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4216:4:1", "type": "", "value": "0x24"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "4206:6:1"}, "nodeType": "YulFunctionCall", "src": "4206:15:1"}, "nodeType": "YulExpressionStatement", "src": "4206:15:1"}]}, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", "src": "4047:180:1"}, {"body": {"nodeType": "YulBlock", "src": "4261:152:1", "statements": [{"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4278:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4281:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "4271:6:1"}, "nodeType": "YulFunctionCall", "src": "4271:88:1"}, "nodeType": "YulExpressionStatement", "src": "4271:88:1"}, {"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4375:1:1", "type": "", "value": "4"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4378:4:1", "type": "", "value": "0x22"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "4368:6:1"}, "nodeType": "YulFunctionCall", "src": "4368:15:1"}, "nodeType": "YulExpressionStatement", "src": "4368:15:1"}, {"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4399:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4402:4:1", "type": "", "value": "0x24"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "4392:6:1"}, "nodeType": "YulFunctionCall", "src": "4392:15:1"}, "nodeType": "YulExpressionStatement", "src": "4392:15:1"}]}, "name": "panic_error_0x22", "nodeType": "YulFunctionDefinition", "src": "4233:180:1"}, {"body": {"nodeType": "YulBlock", "src": "4447:152:1", "statements": [{"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4464:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4467:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "4457:6:1"}, "nodeType": "YulFunctionCall", "src": "4457:88:1"}, "nodeType": "YulExpressionStatement", "src": "4457:88:1"}, {"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4561:1:1", "type": "", "value": "4"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4564:4:1", "type": "", "value": "0x41"}], "functionName": {"name": "mstore", "nodeType": "YulIdentifier", "src": "4554:6:1"}, "nodeType": "YulFunctionCall", "src": "4554:15:1"}, "nodeType": "YulExpressionStatement", "src": "4554:15:1"}, {"expression": {"arguments": [{"kind": "number", "nodeType": "YulLiteral", "src": "4585:1:1", "type": "", "value": "0"}, {"kind": "number", "nodeType": "YulLiteral", "src": "4588:4:1", "type": "", "value": "0x24"}], "functionName": {"name": "revert", "nodeType": "YulIdentifier", "src": "4578:6:1"}, "nodeType": "YulFunctionCall", "src": "4578:15:1"}, "nodeType": "YulExpressionStatement", "src": "4578:15:1"}]}, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "4419:180:1"}]}, "contents": "{\n\n // string[]\n function abi_decode_available_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) dst := add(array, 0x20)\n let src := offset\n\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := add(offset, mload(src))\n mstore(dst, abi_decode_t_string_memory_ptr_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string[]\n function abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_array$_t_string_memory_ptr_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function array_allocation_size_t_array$_t_string_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul"}], "linkReferences": {}, "object": "60806040523480156200001157600080fd5b50604051620017cf380380620017cf83398181016040528101906200003791906200036b565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060005b8151811015620001af576002604051806040016040528084848151811062000133577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015181526020016000815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000190805190602001906200018c929190620001b7565b506020820151816001015550508080620001a690620004bc565b915050620000e2565b505062000597565b828054620001c59062000486565b90600052602060002090601f016020900481019282620001e9576000855562000235565b82601f106200020457805160ff191683800117855562000235565b8280016001018555821562000235579182015b828111156200023457825182559160200191906001019062000217565b5b50905062000244919062000248565b5090565b5b808211156200026357600081600090555060010162000249565b5090565b60006200027e6200027884620003e4565b620003b0565b9050808382526020820190508260005b85811015620002c25781518501620002a788826200033e565b8452602084019350602083019250506001810190506200028e565b5050509392505050565b6000620002e3620002dd8462000413565b620003b0565b905082815260208101848484011115620002fc57600080fd5b6200030984828562000450565b509392505050565b600082601f8301126200032357600080fd5b81516200033584826020860162000267565b91505092915050565b600082601f8301126200035057600080fd5b815162000362848260208601620002cc565b91505092915050565b6000602082840312156200037e57600080fd5b600082015167ffffffffffffffff8111156200039957600080fd5b620003a78482850162000311565b91505092915050565b6000604051905081810181811067ffffffffffffffff82111715620003da57620003d962000568565b5b8060405250919050565b600067ffffffffffffffff82111562000402576200040162000568565b5b602082029050602081019050919050565b600067ffffffffffffffff82111562000431576200043062000568565b5b601f19601f8301169050602081019050919050565b6000819050919050565b60005b838110156200047057808201518184015260208101905062000453565b8381111562000480576000848401525b50505050565b600060028204905060018216806200049f57607f821691505b60208210811415620004b657620004b562000539565b5b50919050565b6000620004c98262000446565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620004ff57620004fe6200050a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61122880620005a76000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063609ff1bd1161005b578063609ff1bd146101145780639e7b8d6114610132578063a3ec138d1461014e578063e2ba53f01461018157610088565b80630121b93f1461008d578063013cf08b146100a95780632e4176cf146100da5780635c19a95c146100f8575b600080fd5b6100a760048036038101906100a29190610bcb565b61019f565b005b6100c360048036038101906100be9190610bcb565b61030c565b6040516100d1929190610e7d565b60405180910390f35b6100e26103c8565b6040516100ef9190610e40565b60405180910390f35b610112600480360381019061010d9190610ba2565b6103ec565b005b61011c6107ae565b6040516101299190610f8d565b60405180910390f35b61014c60048036038101906101479190610ba2565b610882565b005b61016860048036038101906101639190610ba2565b610a39565b6040516101789493929190610fa8565b60405180910390f35b610189610a96565b6040516101969190610e5b565b60405180910390f35b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154141561022a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022190610ead565b60405180910390fd5b8060010160009054906101000a900460ff161561027c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027390610ecd565b60405180910390fd5b60018160010160006101000a81548160ff0219169083151502179055508181600201819055508060000154600283815481106102e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020160010160008282546103019190611009565b925050819055505050565b6002818154811061031c57600080fd5b906000526020600020906002020160009150905080600001805461033f906110da565b80601f016020809104026020016040519081016040528092919081815260200182805461036b906110da565b80156103b85780601f1061038d576101008083540402835291602001916103b8565b820191906000526020600020905b81548152906001019060200180831161039b57829003601f168201915b5050505050908060010154905082565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff1615610481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047890610eed565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156104f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e790610f6d565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066057600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561065b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065290610f2d565b60405180910390fd5b6104f1565b60018160010160006101000a81548160ff021916908315150217905550818160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff1615610789578160000154600282600201548154811061075d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600101600082825461077d9190611009565b925050819055506107a9565b81600001548160000160008282546107a19190611009565b925050819055505b505050565b6000806000905060005b60028054905081101561087d578160028281548110610800577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020160010154111561086a5760028181548110610852577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015491508092505b80806108759061110c565b9150506107b8565b505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610910576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090790610f0d565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16156109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790610f4d565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154146109ef57600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905084565b60606002610aa26107ae565b81548110610ad9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016000018054610af5906110da565b80601f0160208091040260200160405190810160405280929190818152602001828054610b21906110da565b8015610b6e5780601f10610b4357610100808354040283529160200191610b6e565b820191906000526020600020905b815481529060010190602001808311610b5157829003601f168201915b5050505050905090565b600081359050610b87816111c4565b92915050565b600081359050610b9c816111db565b92915050565b600060208284031215610bb457600080fd5b6000610bc284828501610b78565b91505092915050565b600060208284031215610bdd57600080fd5b6000610beb84828501610b8d565b91505092915050565b610bfd8161105f565b82525050565b610c0c81611071565b82525050565b6000610c1d82610fed565b610c278185610ff8565b9350610c378185602086016110a7565b610c40816111b3565b840191505092915050565b6000610c58601483610ff8565b91507f486173206e6f20726967687420746f20766f74650000000000000000000000006000830152602082019050919050565b6000610c98600e83610ff8565b91507f416c726561647920766f7465642e0000000000000000000000000000000000006000830152602082019050919050565b6000610cd8601283610ff8565b91507f596f7520616c726561647920766f7465642e00000000000000000000000000006000830152602082019050919050565b6000610d18602883610ff8565b91507f4f6e6c79206368616972706572736f6e2063616e20676976652072696768742060008301527f746f20766f74652e0000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610d7e601983610ff8565b91507f466f756e64206c6f6f7020696e2064656c65676174696f6e2e000000000000006000830152602082019050919050565b6000610dbe601883610ff8565b91507f54686520766f74657220616c726561647920766f7465642e00000000000000006000830152602082019050919050565b6000610dfe601e83610ff8565b91507f53656c662d64656c65676174696f6e20697320646973616c6c6f7765642e00006000830152602082019050919050565b610e3a8161109d565b82525050565b6000602082019050610e556000830184610bf4565b92915050565b60006020820190508181036000830152610e758184610c12565b905092915050565b60006040820190508181036000830152610e978185610c12565b9050610ea66020830184610e31565b9392505050565b60006020820190508181036000830152610ec681610c4b565b9050919050565b60006020820190508181036000830152610ee681610c8b565b9050919050565b60006020820190508181036000830152610f0681610ccb565b9050919050565b60006020820190508181036000830152610f2681610d0b565b9050919050565b60006020820190508181036000830152610f4681610d71565b9050919050565b60006020820190508181036000830152610f6681610db1565b9050919050565b60006020820190508181036000830152610f8681610df1565b9050919050565b6000602082019050610fa26000830184610e31565b92915050565b6000608082019050610fbd6000830187610e31565b610fca6020830186610c03565b610fd76040830185610bf4565b610fe46060830184610e31565b95945050505050565b600081519050919050565b600082825260208201905092915050565b60006110148261109d565b915061101f8361109d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561105457611053611155565b5b828201905092915050565b600061106a8261107d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156110c55780820151818401526020810190506110aa565b838111156110d4576000848401525b50505050565b600060028204905060018216806110f257607f821691505b6020821081141561110657611105611184565b5b50919050565b60006111178261109d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561114a57611149611155565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6111cd8161105f565b81146111d857600080fd5b50565b6111e48161109d565b81146111ef57600080fd5b5056fea26469706673582212207f84be46e7de88853c234a2ca0cee050c0662e6023c6d71de81ada6aae77099664736f6c63430008000033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x17CF CODESIZE SUB DUP1 PUSH3 0x17CF DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x36B JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x1AF JUMPI PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH3 0x133 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x18C SWAP3 SWAP2 SWAP1 PUSH3 0x1B7 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE POP POP DUP1 DUP1 PUSH3 0x1A6 SWAP1 PUSH3 0x4BC JUMP JUMPDEST SWAP2 POP POP PUSH3 0xE2 JUMP JUMPDEST POP POP PUSH3 0x597 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1C5 SWAP1 PUSH3 0x486 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1E9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x235 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x204 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x235 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x235 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x234 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x217 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x244 SWAP2 SWAP1 PUSH3 0x248 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x263 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x249 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x27E PUSH3 0x278 DUP5 PUSH3 0x3E4 JUMP JUMPDEST PUSH3 0x3B0 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH3 0x2C2 JUMPI DUP2 MLOAD DUP6 ADD PUSH3 0x2A7 DUP9 DUP3 PUSH3 0x33E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x28E JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2E3 PUSH3 0x2DD DUP5 PUSH3 0x413 JUMP JUMPDEST PUSH3 0x3B0 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x2FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x309 DUP5 DUP3 DUP6 PUSH3 0x450 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x323 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x335 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x267 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x350 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x362 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x2CC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x37E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x3A7 DUP5 DUP3 DUP6 ADD PUSH3 0x311 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x3DA JUMPI PUSH3 0x3D9 PUSH3 0x568 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x402 JUMPI PUSH3 0x401 PUSH3 0x568 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x431 JUMPI PUSH3 0x430 PUSH3 0x568 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x470 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x453 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x480 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x49F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x4B6 JUMPI PUSH3 0x4B5 PUSH3 0x539 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4C9 DUP3 PUSH3 0x446 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH3 0x4FF JUMPI PUSH3 0x4FE PUSH3 0x50A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1228 DUP1 PUSH3 0x5A7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x609FF1BD GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0xA3EC138D EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0xE2BA53F0 EQ PUSH2 0x181 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x121B93F EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x2E4176CF EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0xBCB JUMP JUMPDEST PUSH2 0x19F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0xBCB JUMP JUMPDEST PUSH2 0x30C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP3 SWAP2 SWAP1 PUSH2 0xE7D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x3EC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x7AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xF8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x147 SWAP2 SWAP1 PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x882 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0xA39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x178 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFA8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x189 PUSH2 0xA96 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x196 SWAP2 SWAP1 PUSH2 0xE5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x22A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x221 SWAP1 PUSH2 0xEAD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x27C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x273 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2E1 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x301 SWAP2 SWAP1 PUSH2 0x1009 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0x33F SWAP1 PUSH2 0x10DA JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x36B SWAP1 PUSH2 0x10DA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3B8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x38D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3B8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x39B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x481 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x478 SWAP1 PUSH2 0xEED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x4F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4E7 SWAP1 PUSH2 0xF6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x660 JUMPI PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x65B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x652 SWAP1 PUSH2 0xF2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4F1 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x789 JUMPI DUP2 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP3 PUSH1 0x2 ADD SLOAD DUP2 SLOAD DUP2 LT PUSH2 0x75D JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x77D SWAP2 SWAP1 PUSH2 0x1009 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x7A9 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD SLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x7A1 SWAP2 SWAP1 PUSH2 0x1009 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x87D JUMPI DUP2 PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x800 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD GT ISZERO PUSH2 0x86A JUMPI PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x852 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD SWAP2 POP DUP1 SWAP3 POP JUMPDEST DUP1 DUP1 PUSH2 0x875 SWAP1 PUSH2 0x110C JUMP JUMPDEST SWAP2 POP POP PUSH2 0x7B8 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x910 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x907 SWAP1 PUSH2 0xF0D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x9A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x997 SWAP1 PUSH2 0xF4D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ PUSH2 0x9EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 PUSH2 0xAA2 PUSH2 0x7AE JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xAD9 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD DUP1 SLOAD PUSH2 0xAF5 SWAP1 PUSH2 0x10DA JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB21 SWAP1 PUSH2 0x10DA JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB6E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB43 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB6E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB51 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB87 DUP2 PUSH2 0x11C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB9C DUP2 PUSH2 0x11DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBC2 DUP5 DUP3 DUP6 ADD PUSH2 0xB78 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBEB DUP5 DUP3 DUP6 ADD PUSH2 0xB8D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBFD DUP2 PUSH2 0x105F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xC0C DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC1D DUP3 PUSH2 0xFED JUMP JUMPDEST PUSH2 0xC27 DUP2 DUP6 PUSH2 0xFF8 JUMP JUMPDEST SWAP4 POP PUSH2 0xC37 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x10A7 JUMP JUMPDEST PUSH2 0xC40 DUP2 PUSH2 0x11B3 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC58 PUSH1 0x14 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP2 POP PUSH32 0x486173206E6F20726967687420746F20766F7465000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC98 PUSH1 0xE DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP2 POP PUSH32 0x416C726561647920766F7465642E000000000000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD8 PUSH1 0x12 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP2 POP PUSH32 0x596F7520616C726561647920766F7465642E0000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD18 PUSH1 0x28 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP2 POP PUSH32 0x4F6E6C79206368616972706572736F6E2063616E206769766520726967687420 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x746F20766F74652E000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7E PUSH1 0x19 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP2 POP PUSH32 0x466F756E64206C6F6F7020696E2064656C65676174696F6E2E00000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDBE PUSH1 0x18 DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP2 POP PUSH32 0x54686520766F74657220616C726561647920766F7465642E0000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDFE PUSH1 0x1E DUP4 PUSH2 0xFF8 JUMP JUMPDEST SWAP2 POP PUSH32 0x53656C662D64656C65676174696F6E20697320646973616C6C6F7765642E0000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE3A DUP2 PUSH2 0x109D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE55 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xBF4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE75 DUP2 DUP5 PUSH2 0xC12 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE97 DUP2 DUP6 PUSH2 0xC12 JUMP JUMPDEST SWAP1 POP PUSH2 0xEA6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE31 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xEC6 DUP2 PUSH2 0xC4B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xEE6 DUP2 PUSH2 0xC8B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF06 DUP2 PUSH2 0xCCB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF26 DUP2 PUSH2 0xD0B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF46 DUP2 PUSH2 0xD71 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF66 DUP2 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF86 DUP2 PUSH2 0xDF1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFA2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE31 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xFBD PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xE31 JUMP JUMPDEST PUSH2 0xFCA PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xC03 JUMP JUMPDEST PUSH2 0xFD7 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xBF4 JUMP JUMPDEST PUSH2 0xFE4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xE31 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1014 DUP3 PUSH2 0x109D JUMP JUMPDEST SWAP2 POP PUSH2 0x101F DUP4 PUSH2 0x109D JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x1054 JUMPI PUSH2 0x1053 PUSH2 0x1155 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x106A DUP3 PUSH2 0x107D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10C5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x10AA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x10D4 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x10F2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1106 JUMPI PUSH2 0x1105 PUSH2 0x1184 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1117 DUP3 PUSH2 0x109D JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x114A JUMPI PUSH2 0x1149 PUSH2 0x1155 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11CD DUP2 PUSH2 0x105F JUMP JUMPDEST DUP2 EQ PUSH2 0x11D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x11E4 DUP2 PUSH2 0x109D JUMP JUMPDEST DUP2 EQ PUSH2 0x11EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH32 0x84BE46E7DE88853C234A2CA0CEE050C0662E6023C6D71DE81ADA6AAE77099664 PUSH20 0x6F6C634300080000330000000000000000000000 ", "sourceMap": "147:4373:0:-:0;;;947:487;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1021:10;1007:11;;:24;;;;;;;;;;;;;;;;;;1070:1;1041:6;:19;1048:11;;;;;;;;;;;1041:19;;;;;;;;;;;;;;;:26;;:30;;;;1087:6;1082:346;1103:13;:20;1099:1;:24;1082:346;;;1307:9;1322:94;;;;;;;;1355:13;1369:1;1355:16;;;;;;;;;;;;;;;;;;;;;;1322:94;;;;1400:1;1322:94;;;1307:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1125:3;;;;;:::i;:::-;;;;1082:346;;;;947:487;147:4373;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;23:630:1:-;;165:90;180:74;247:6;180:74;:::i;:::-;165:90;:::i;:::-;156:99;;275:5;303:6;296:5;289:21;329:4;322:5;318:16;311:23;;354:6;385:1;370:277;395:6;392:1;389:13;370:277;;;480:3;474:10;466:6;462:23;510:58;564:3;552:10;510:58;:::i;:::-;505:3;498:71;598:4;593:3;589:14;582:21;;632:4;627:3;623:14;616:21;;430:217;417:1;414;410:9;405:14;;370:277;;;374:14;146:507;;;;;;;:::o;659:353::-;;773:65;788:49;830:6;788:49;:::i;:::-;773:65;:::i;:::-;764:74;;861:6;854:5;847:21;899:4;892:5;888:16;937:3;928:6;923:3;919:16;916:25;913:2;;;954:1;951;944:12;913:2;967:39;999:6;994:3;989;967:39;:::i;:::-;754:258;;;;;;:::o;1034:338::-;;1175:3;1168:4;1160:6;1156:17;1152:27;1142:2;;1193:1;1190;1183:12;1142:2;1226:6;1220:13;1251:115;1362:3;1354:6;1347:4;1339:6;1335:17;1251:115;:::i;:::-;1242:124;;1132:240;;;;;:::o;1392:288::-;;1508:3;1501:4;1493:6;1489:17;1485:27;1475:2;;1526:1;1523;1516:12;1475:2;1559:6;1553:13;1584:90;1670:3;1662:6;1655:4;1647:6;1643:17;1584:90;:::i;:::-;1575:99;;1465:215;;;;;:::o;1686:440::-;;1840:2;1828:9;1819:7;1815:23;1811:32;1808:2;;;1856:1;1853;1846:12;1808:2;1920:1;1909:9;1905:17;1899:24;1950:18;1942:6;1939:30;1936:2;;;1982:1;1979;1972:12;1936:2;2010:99;2101:7;2092:6;2081:9;2077:22;2010:99;:::i;:::-;2000:109;;1870:249;1798:328;;;;:::o;2132:283::-;;2198:2;2192:9;2182:19;;2240:4;2232:6;2228:17;2347:6;2335:10;2332:22;2311:18;2299:10;2296:34;2293:62;2290:2;;;2358:18;;:::i;:::-;2290:2;2398:10;2394:2;2387:22;2172:243;;;;:::o;2421:321::-;;2598:18;2590:6;2587:30;2584:2;;;2620:18;;:::i;:::-;2584:2;2670:4;2662:6;2658:17;2650:25;;2730:4;2724;2720:15;2712:23;;2513:229;;;:::o;2748:332::-;;2900:18;2892:6;2889:30;2886:2;;;2922:18;;:::i;:::-;2886:2;3007:4;3003:9;2996:4;2988:6;2984:17;2980:33;2972:41;;3068:4;3062;3058:15;3050:23;;2815:265;;;:::o;3086:77::-;;3152:5;3141:16;;3131:32;;;:::o;3169:307::-;3237:1;3247:113;3261:6;3258:1;3255:13;3247:113;;;3346:1;3341:3;3337:11;3331:18;3327:1;3322:3;3318:11;3311:39;3283:2;3280:1;3276:10;3271:15;;3247:113;;;3378:6;3375:1;3372:13;3369:2;;;3458:1;3449:6;3444:3;3440:16;3433:27;3369:2;3218:258;;;;:::o;3482:320::-;;3563:1;3557:4;3553:12;3543:22;;3610:1;3604:4;3600:12;3631:18;3621:2;;3687:4;3679:6;3675:17;3665:27;;3621:2;3749;3741:6;3738:14;3718:18;3715:38;3712:2;;;3768:18;;:::i;:::-;3712:2;3533:269;;;;:::o;3808:233::-;;3870:24;3888:5;3870:24;:::i;:::-;3861:33;;3916:66;3909:5;3906:77;3903:2;;;3986:18;;:::i;:::-;3903:2;4033:1;4026:5;4022:13;4015:20;;3851:190;;;:::o;4047:180::-;4095:77;4092:1;4085:88;4192:4;4189:1;4182:15;4216:4;4213:1;4206:15;4233:180;4281:77;4278:1;4271:88;4378:4;4375:1;4368:15;4402:4;4399:1;4392:15;4419:180;4467:77;4464:1;4457:88;4564:4;4561:1;4554:15;4588:4;4585:1;4578:15;147:4373:0;;;;;;;"}}, "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"proposalNames\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"chairperson\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"giveRightToVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"voteCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposal\",\"type\":\"uint256\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"voters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"voted\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vote\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"winnerName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"winnerName_\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"winningProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"winningProposal_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements voting process along with vote delegation\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Create a new ballot to choose one of 'proposalNames'.\",\"params\":{\"proposalNames\":\"names of proposals\"}},\"delegate(address)\":{\"details\":\"Delegate your vote to the voter 'to'.\",\"params\":{\"to\":\"address to which vote is delegated\"}},\"giveRightToVote(address)\":{\"details\":\"Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.\",\"params\":{\"voter\":\"address of voter\"}},\"vote(uint256)\":{\"details\":\"Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.\",\"params\":{\"proposal\":\"index of proposal in the proposals array\"}},\"winnerName()\":{\"details\":\"Calls winningProposal() function to get the index of the winner contained in the proposals array and then\",\"returns\":{\"winnerName_\":\"the name of the winner\"}},\"winningProposal()\":{\"details\":\"Computes the winning proposal taking all previous votes into account.\",\"returns\":{\"winningProposal_\":\"index of winning proposal in the proposals array\"}}},\"title\":\"Ballot\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"election.sol\":\"Ballot\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"election.sol\":{\"keccak256\":\"0x0ef74bae4295bfe724f2221ec213750d8f8ea423f4840032759a4150493f1078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dd7d37912605f51a7a870b81abdae650bf8cfffb3214166f780387a8a674a42\",\"dweb:/ipfs/QmcQdxatQm4uwYMmyfmdN5G5utWHBdxRPXaCEAjeM8ZNHm\"]}},\"version\":1}"}}}, "errors": [{"component": "general", "errorCode": "2462", "formattedMessage": "Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> election.sol:36:5:\n |\n36 | constructor(string[] memory proposalNames) public {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n", "message": "Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.", "severity": "warning", "sourceLocation": {"end": 1434, "file": "election.sol", "start": 947}, "type": "Warning"}], "sources": {"election.sol": {"id": 0}}}